Escolar Documentos
Profissional Documentos
Cultura Documentos
= 'C:\VENDOR.TXT'
= 'ASC'
= IT_DUMMY.
LOOP AT IT_DUMMY.
IF IT_DUMMY-DUMMY+0(2) = '11'.
IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
APPEND IT_XK01.
ELSE.
IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
APPEND IT_BANK.
ENDIF.
ENDLOOP.
LOOP AT
REFRESH
perform
perform
IT_XK01.
IT_BDCDATA.
bdc_dynpro
bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
perform bdc_dynpro
perform bdc_field
perform bdc_field
IT_BANK-KOINH.
IDX = IDX + 1.
ENDLOOP.
perform bdc_dynpro
perform bdc_field
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
REPORT ZML_BDC_SO
NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE BDCRECX1.
*******************************************
*file format
********************************************
*HOR 10001000
*S2130
*IM-17
100012
*IM-18
100023
*I100-100
100040
*# " one record completed
************************************************
*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS :
P_FILE TYPE LOCALFILE.
SELECTION-SCREEN END OF BLOCK B1.
*
TYPES : BEGIN OF T_FILE,
*
LINE(150) TYPE C,
*
END
OF T_FILE,
TT_FILE TYPE STANDARD TABLE OF T_FILE.
*
DATA : LW_FILE TYPE T_FILE,
LT_FILE TYPE TT_FILE,
V_FLAG
TYPE C,
*
LW_BDCDATA TYPE BDCDATA,
LT_BDCDATA TYPE STANDARD TABLE OF BDCDATA.
*
*************************************
* AT SLECTION SCREEN
*************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME
= ' '
IMPORTING
FILE_NAME
= P_FILE.
*
************************************************
* start-of-selection
***********************************************
START-OF-SELECTION.
PERFORM
FETCH_DATA
USING
P_FILE
CHANGING LT_FILE.
PERFORM OPEN_GROUP.
*
* for header data
*
LOOP AT LT_FILE INTO LW_FILE.
CASE LW_FILE-LINE+0(1).
WHEN 'H'.
PERFORM BDC_DYNPRO
USING 'SAPMV45A' '0101'.
PERFORM BDC_FIELD
USING 'BDC_CURSOR'
'VBAK-AUART'.
PERFORM BDC_FIELD
USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD
USING 'VBAK-AUART'
LW_FILE-LINE+1(4).
PERFORM BDC_FIELD
USING 'VBAK-VKORG'
LW_FILE-LINE+5(4).
PERFORM BDC_FIELD
USING 'VBAK-VTWEG'
LW_FILE-LINE+9(2).
PERFORM BDC_FIELD
USING 'VBAK-SPART'
LW_FILE-LINE+11(2).
*
*for customer data
*
WHEN 'S'.
PERFORM BDC_DYNPRO
USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD
USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD
USING 'BDC_CURSOR'
'KUAGV-KUNNR'.
PERFORM BDC_FIELD
USING 'KUAGV-KUNNR'
LW_FILE-LINE+1(10).
PERFORM BDC_FIELD
USING 'RV45A-KETDAT'
'12.02.2010'.
PERFORM BDC_FIELD
USING 'RV45A-KPRGBZ'
'D'.
PERFORM BDC_FIELD
USING 'VBKD-PRSDT'
'03.02.2010'.
* for first item
WHEN 'I'.
PERFORM BDC_DYNPRO
PERFORM BDC_FIELD
CASE V_FLAG.
WHEN SPACE.
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
V_FLAG = 'X'.
WHEN 'X'.
PERFORM BDC_FIELD
PERFORM BDC_FIELD
PERFORM BDC_FIELD
ENDCASE.
*
**
*before going to save
WHEN '#'.
PERFORM BDC_DYNPRO
PERFORM BDC_FIELD
on
CLEAR V_FLAG.
*
*now save
*
PERFORM BDC_TRANSACTION USING 'VA01'.
ENDCASE.
ENDLOOP.
PERFORM CLOSE_GROUP.
*&---------------------------------------------------------------------*
*&
Form FETCH_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
*
-->P_P_FILE text
*
<--P_LT_FILE text
*----------------------------------------------------------------------*
FORM FETCH_DATA USING
P_FILE
CHANGING LT_FILE TYPE TT_FILE.
*
REFRESH LT_FILE.
*
DATA : V_FILE TYPE STRING.
*
MOVE P_FILE TO V_FILE.
*
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME
= V_FILE
FILETYPE
= 'ASC'
TABLES
DATA_TAB
= LT_FILE
EXCEPTIONS
FILE_OPEN_ERROR
= 1
FILE_READ_ERROR
= 2
NO_BATCH
= 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE
= 5
NO_AUTHORITY
= 6
UNKNOWN_ERROR
= 7
BAD_DATA_FORMAT
= 8
HEADER_NOT_ALLOWED
= 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG
= 11
UNKNOWN_DP_ERROR
= 12
ACCESS_DENIED
= 13
DP_OUT_OF_MEMORY
= 14
DISK_FULL
= 15
DP_TIMEOUT
= 16
OTHERS
= 17.
IF SY-SUBRC <> 0.
" FETCH_DATA
**&--------------------------------------------------------------------*
**&
Form BDC_DYNPRO
**&--------------------------------------------------------------------*
**
text
**---------------------------------------------------------------------*
**
-->PROGRAM
text
**
-->DYNNR
text
**---------------------------------------------------------------------*
*FORM BDC_DYNPRO USING PROGRAM
*
DYNNR.
* LW_BDCDATA-PROGRAM
= PROGRAM.
* LW_BDCDATA-DYNNR
= DYNNR.
* LW_BDCDATA-DYNBEGIN = 'X'.
* APPEND LW_BDCDATA TO LT_BDCDATA.
* CLEAR LW_BDCDATA.
*
*
*ENDFORM.
" BDC_DYNPRO
*
*
**&--------------------------------------------------------------------*
**&
Form BDC_FIELD
**&--------------------------------------------------------------------*
**
text
**---------------------------------------------------------------------*
**
-->FNAM
text
**
-->FVAL
text
**---------------------------------------------------------------------*
*FORM BDC_FIELD USING FNAM
*
FVAL.
* LW_BDCDATA-FNAM = FNAM.
* LW_BDCDATA-FVAL = FVAL.
* APPEND LW_BDCDATA TO LT_BDCDATA.
* CLEAR LW_BDCDATA.
*ENDFORM.
" BDC_FIELD
*
**&--------------------------------------------------------------------*
**&
Form OPEN_GROUP
**&--------------------------------------------------------------------*
**
text
**---------------------------------------------------------------------*
*FORM OPEN_GROUP .
* CALL FUNCTION 'BDC_OPEN_GROUP'
*
EXPORTING
*
CLIENT
= SY-MANDT
*
GROUP
= FILLER12 " session name
*
KEEP
= FILLER1
" always x
*
USER
= SY-UNAME
*
EXCEPTIONS
*
CLIENT_INVALID
= 1
*
DESTINATION_INVALID = 2
*
GROUP_INVALID
= 3
*
GROUP_IS_LOCKED
= 4
*
HOLDDATE_INVALID
= 5
*
INTERNAL_ERROR
= 6
*
QUEUE_ERROR
= 7
*
RUNNING
= 8
*
SYSTEM_LOCK_ERROR = 9
*
USER_INVALID
= 10
*
OTHERS
= 11.
* IF SY-SUBRC <> 0.
*
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
* ENDIF.
*
*ENDFORM.
" OPEN_GROUP