0% found this document useful (0 votes)
23 views

PRG File Hand Server Forms

This document contains the ABAP code for several subroutines or FORM routines used to manage file input/output operations and SAP document processing. The routines clear and refresh internal tables, validate input, retrieve and pass data between tables, call F4 help screens, transfer data to and from external files, and return the processed data.

Uploaded by

anwardwh5895
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
23 views

PRG File Hand Server Forms

This document contains the ABAP code for several subroutines or FORM routines used to manage file input/output operations and SAP document processing. The routines clear and refresh internal tables, validate input, retrieve and pass data between tables, call F4 help screens, transfer data to and from external files, and return the processed data.

Uploaded by

anwardwh5895
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 6

*&---------------------------------------------------------------------*

*& Include ZB14_FILE_HAND_SERVER_FORMS


*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form F_CLEAR_REFRESH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_clear_refresh .
CLEAR:wa_vbak,
wa_vbap,
gv_repid.
REFRESH:gt_vbak,
gt_vbap.
ENDFORM. " F_CLEAR_REFRESH
*&---------------------------------------------------------------------*
*& Form F_PASS_DEFAULT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_pass_default .
gv_repid = sy-repid.
ENDFORM. " F_PASS_DEFAULT
*&---------------------------------------------------------------------*
*& Form F_VALIDATE_SO
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_validate_so .
*Declaration of Local data
TYPES:BEGIN OF ltyp_vbeln,
vbeln TYPE vbak-vbeln,
END OF ltyp_vbeln.

DATA:lt_vbeln TYPE SORTED TABLE OF ltyp_vbeln WITH UNIQUE KEY vbeln.

SELECT vbeln
FROM vbak
INTO TABLE lt_vbeln
WHERE vbeln IN s_vbeln.
IF lt_vbeln[] IS INITIAL.
* Give an Error message
MESSAGE 'Please provide a valid Input' TYPE 'E'.
ENDIF.
ENDFORM. " F_VALIDATE_SO
*&---------------------------------------------------------------------*
*& Form F_GET_VBAK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_get_vbak .

SELECT vbeln
erdat
ernam
FROM vbak
INTO TABLE gt_vbak
WHERE vbeln IN s_vbeln.

ENDFORM. " F_GET_VBAK


*&---------------------------------------------------------------------*
*& Form F_GET_VBAP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_get_vbap .
IF NOT gt_vbak[] IS INITIAL.
SORT gt_vbak BY vbeln.
SELECT vbeln
posnr
matnr
FROM vbap
INTO TABLE gt_vbap
FOR ALL ENTRIES IN gt_vbak
WHERE vbeln EQ gt_vbak-vbeln.
IF NOT gt_vbap[] IS INITIAL.
SORT gt_vbap BY vbeln.
ENDIF.
ENDIF.
ENDFORM. " F_GET_VBAP
*&---------------------------------------------------------------------*
*& Form F_PATH_F4_HELP
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_path_f4_help .
* Declaraton of Local data
DATA:p_al_file TYPE dxfields-longpath."/sapdmc/lsfscreen-filename.
* * Search help for AL11
p_al_file = p_file.

**F4 help for file name on SAP application server


* CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
* EXPORTING
* directory = '.'
* IMPORTING
* serverfile = p_file
* EXCEPTIONS
* canceled_by_user = 1
* OTHERS = 2.
* IF sy-subrc <> 0.
* MESSAGE 'Error Message' TYPE 'I'.
* ENDIF.

CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'


EXPORTING
I_LOCATION_FLAG = 'A'
* I_SERVER = '?'
i_path = p_al_file
* FILEMASK = '*.*'
* FILEOPERATION = 'R'
IMPORTING
* O_LOCATION_FLAG =
* O_SERVER =
o_path = p_al_file
* ABEND_FLAG =
* EXCEPTIONS
* RFC_ERROR = 1
* ERROR_WITH_GUI = 2
* OTHERS = 3
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

p_file = p_al_file.
ENDFORM. " F_PATH_F4_HELP
*&---------------------------------------------------------------------*
*& Form F_VALIDATE_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_validate_file .
IF p_file EQ space.
MESSAGE text-028 TYPE 'E'.
ENDIF.
ENDFORM. " F_VALIDATE_FILE
*&---------------------------------------------------------------------*
*& Form F_GET_FINAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_get_final .
* Declaration of Local data
DATA:lt_download TYPE STANDARD TABLE OF typ_download,
lwa_download TYPE typ_download.

REFRESH:lt_download,
gt_final.

LOOP AT gt_vbap INTO wa_vbap.


MOVE-CORRESPONDING wa_vbap TO lwa_download.
READ TABLE gt_vbak INTO wa_vbak WITH KEY vbeln = wa_vbap-vbeln BINARY SEAR
CH.
MOVE-CORRESPONDING wa_vbak TO lwa_download.
* MODIFY lt_download FROM lwa_download TRANSPORTING vbeln erdat ernam.
APPEND lwa_download TO lt_download.
CLEAR:wa_vbap,
wa_vbak,
lwa_download.
ENDLOOP.
* Copy the data of lt_download into GT_FINAL
gt_final[] = lt_download[].
ENDFORM. " F_GET_FINAL
*&---------------------------------------------------------------------*
*& Form f_transfer_al11
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_transfer_al11 .
* declaration od Local data
DATA:lv_msg(50),
lv_line TYPE string.

CLEAR:lv_msg,
lv_line.
* Opens the file in 'WRITE' Mode
OPEN DATASET p_file FOR OUTPUT IN TEXT MODE
ENCODING DEFAULT MESSAGE lv_msg.
IF sy-subrc EQ 0.
CONCATENATE text-005
text-006
text-007
text-008
text-009
INTO lv_line
SEPARATED BY space.
TRANSFER lv_line TO p_file.
CLEAR lv_line.
LOOP AT gt_final INTO wa_final.
* Club the required data to be transferred into LV_LINE
CONCATENATE wa_final-vbeln
wa_final-erdat
wa_final-ernam
wa_final-posnr
wa_final-matnr
INTO lv_line SEPARATED BY space.
* Transferes the data into the opened file
TRANSFER lv_line TO p_file.
CLEAR:lv_line.
ENDLOOP.
* Closes the opened file
CLOSE DATASET p_file.
MESSAGE 'Data Transferred successfully' TYPE 'I'.

ELSE.
WRITE:/'File could not be opened because', lv_msg.
ENDIF.
ENDFORM. " f_transfer_al11
*&---------------------------------------------------------------------*
*& Form f_getdata_al11
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_getdata_al11 .
* declaration od Local data
DATA:lv_msg(50).

CLEAR:lv_msg.

REFRESH gt_final.
* Opens the file in 'READ' Mode
OPEN DATASET p_file FOR INPUT IN TEXT MODE
ENCODING DEFAULT MESSAGE lv_msg.
IF sy-subrc EQ 0.
DO.
* get the data from the opened file
READ DATASET p_file INTO wa_final.
IF sy-subrc EQ 0.
* Append the data into GT_FINAL
APPEND wa_final TO gt_final.
ELSE.
EXIT.
ENDIF.
ENDDO.
MESSAGE 'File uploaded successfully' TYPE 'I'.
ELSE.
WRITE:/'File could not be opened because', lv_msg.
ENDIF.

ENDFORM. " f_getdata_al11

You might also like