05-02-2007 11:15 AM
hi
i want to make bdc programme to upload data.
how can i make.
thanks.
05-02-2007 11:23 AM
Hi,
Go SHDB and create a record and from this recording generate a program.
Create a flat file of ur data.
Then upload this data into internal table.
and assign this data in loop to program.
refer e.g. as follows:
REPORT ZSM_COLLECTIVE_INVOICING LINE-SIZE 280.
******************************************************************
* Removes billingblock ( VA02 ) for selected debit memo requests and
* moves the salesdocument number to VF01 and
* creates billing document (debit memo).
******************************************************************
TABLES: VBAK, "Sales document, header data
VBAP. "Sales document, item data
DATA: BEGIN OF G_VBELN OCCURS 0,
VBELN LIKE VBAK-VBELN,
END OF G_VBELN.
DATA: BEGIN OF BDC_TAB OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.
DATA: G_FEJL TYPE I. "Flag that is set fi there are found at least 1 sales document
SELECT-OPTIONS:
S_VBELN FOR VBAK-VBELN, "Sales document
S_AUDAT FOR VBAK-AUDAT, "Document date
S_AUART FOR VBAK-AUART DEFAULT 'ZDR'. "Sales document type
START-OF-SELECTION.
PERFORM GET_DATA.
CHECK G_FEJL = 1.
PERFORM WRITE_LIST.
TOP-OF-PAGE.
WRITE 'Selected salesdocuments for collective invoicing'
COLOR COL_HEADING.
ULINE.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'EKSEKVER'.
PERFORM REMOVE_BILLINGBLOCK.
PERFORM BILL_DOCUMENTS.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
TITEL = 'Collective invoicing'
TEXTLINE1 = 'Batch input mapper er dannet'
TEXTLINE2 = 'Mapperne hedder ZSM02'
START_COLUMN = 25
START_ROW = 6
EXCEPTIONS
OTHERS = 1.
LEAVE TO SCREEN 0.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
*******************************************************************
* F O R M G E T _ D A T A
*******************************************************************
FORM GET_DATA.
SELECT VBELN INTO CORRESPONDING FIELDS OF TABLE G_VBELN
FROM VBAK
WHERE AUART IN S_AUART AND
VBELN IN S_VBELN AND
AUDAT IN S_AUDAT.
IF SY-SUBRC > 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
* TITEL = ' '
TEXTLINE1 = 'No sales documents found'
* TEXTLINE2 = ' '
* START_COLUMN = 25
* START_ROW = 6
EXCEPTIONS
OTHERS = 1.
G_FEJL = 0.
ELSE.
G_FEJL = 1.
ENDIF.
ENDFORM.
*******************************************************************
* F O R M W R I T E _ L I S T
*******************************************************************
FORM WRITE_LIST.
SET PF-STATUS '001'.
LOOP AT G_VBELN.
WRITE : / G_VBELN-VBELN.
ENDLOOP.
ENDFORM.
*******************************************************************
* F O R M R E M O V E _ B I L L I N G B L O C K
* Removes billingblock from debitor memo request ( Transaction VA02 )
*******************************************************************
FORM REMOVE_BILLINGBLOCK.
PERFORM OPEN_GROUP.
REFRESH BDC_TAB.
CLEAR BDC_TAB.
LOOP AT G_VBELN.
* Selection screen
PERFORM BDC_NEWDYNPRO USING 'SAPMV45A'
'0102'.
PERFORM BDC_FIELD USING 'VBAK-VBELN'
G_VBELN-VBELN.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'UER1'.
* Screen 40001
PERFORM BDC_NEWDYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'SFSP'.
* Screen 0253 fast change of billingblock
PERFORM BDC_NEWDYNPRO USING 'SAPMV45A' '0253'.
PERFORM BDC_FIELD USING 'RV45A-S_FAKSK'
' '.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'SUEB'.
* Back to screen 4001
PERFORM BDC_NEWDYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'SICH'.
* Insert
PERFORM BDC_INSERT USING 'VA02'.
CLEAR BDC_TAB.
REFRESH BDC_TAB.
ENDLOOP.
PERFORM CLOSE_GROUP.
ENDFORM.
*******************************************************************
* F O R M B I L L _ D O C U M E N T S
* Create billing document ( Transaction VF01 )
*******************************************************************
FORM BILL_DOCUMENTS.
DATA: L_NLINE TYPE I, L_CLINE(3) TYPE N,
L_FIELDNAME(20) TYPE C.
PERFORM OPEN_GROUP.
REFRESH BDC_TAB.
CLEAR BDC_TAB.
CLEAR L_NLINE. CLEAR L_CLINE.
PERFORM BDC_NEWDYNPRO USING 'SAPMV60A' '0102'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'ENT1'.
LOOP AT G_VBELN.
L_NLINE = L_NLINE + 1.
IF L_NLINE > 16.
* The screentable is filled, go to next page
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=P+'.
ENDIF.
* Convert linenumber to text
MOVE L_NLINE TO L_CLINE.
CONCATENATE 'KOMFK-VBELN(' L_CLINE ')' INTO L_FIELDNAME.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
L_FIELDNAME.
PERFORM BDC_FIELD USING L_FIELDNAME
G_VBELN-VBELN.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'ENT2'.
ENDLOOP.
* Close screen 0102
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/11'.
* Insert
PERFORM BDC_INSERT USING 'VF01'.
CLEAR BDC_TAB.
REFRESH BDC_TAB.
PERFORM CLOSE_GROUP.
ENDFORM.
*******************************************************************
* F O R M B D C _ D Y N P R O
* Start a new screen
*******************************************************************
FORM BDC_NEWDYNPRO USING PROGRAM DYNPRO.
CLEAR BDC_TAB.
BDC_TAB-PROGRAM = PROGRAM.
BDC_TAB-DYNPRO = DYNPRO.
BDC_TAB-DYNBEGIN = 'X'.
APPEND BDC_TAB.
ENDFORM.
*******************************************************************
* F O R M B D C _ F I E L D
* Inserts a field
*******************************************************************
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDC_TAB.
BDC_TAB-FNAM = FNAM.
BDC_TAB-FVAL = FVAL.
APPEND BDC_TAB.
ENDFORM.
*******************************************************************
* F O R M O P E N _ G R O U P
*******************************************************************
FORM OPEN_GROUP.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
* DEST = FILLER8
GROUP = 'ZSM02'
* HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
* RECORD = FILLER1
* IMPORTING
* QID =
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.
ENDFORM.
*******************************************************************
* F O R M C L O S E _ G R O U P
*******************************************************************
FORM CLOSE_GROUP.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
ENDFORM.
FORM BDC_INSERT USING TCODE.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = TCODE
* POST_LOCAL = NOVBLOCAL
* PRINTING = NOPRINT
TABLES
DYNPROTAB = BDC_TAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
ENDFORM.
05-02-2007 11:18 AM
Hi,
Go to trasaction SHDB. Select new recording. Enter the name of transaction and record the transaction. After recording save it and click on program which automattically creates the BDC program for your trasaction.
Regards,
Kasi S
05-02-2007 11:22 AM
05-02-2007 11:22 AM
Hi,
Use tcode SHDB.Record the process and then replace the necessary coding.
Check this link.
05-02-2007 11:23 AM
Hi,
Go SHDB and create a record and from this recording generate a program.
Create a flat file of ur data.
Then upload this data into internal table.
and assign this data in loop to program.
refer e.g. as follows:
REPORT ZSM_COLLECTIVE_INVOICING LINE-SIZE 280.
******************************************************************
* Removes billingblock ( VA02 ) for selected debit memo requests and
* moves the salesdocument number to VF01 and
* creates billing document (debit memo).
******************************************************************
TABLES: VBAK, "Sales document, header data
VBAP. "Sales document, item data
DATA: BEGIN OF G_VBELN OCCURS 0,
VBELN LIKE VBAK-VBELN,
END OF G_VBELN.
DATA: BEGIN OF BDC_TAB OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.
DATA: G_FEJL TYPE I. "Flag that is set fi there are found at least 1 sales document
SELECT-OPTIONS:
S_VBELN FOR VBAK-VBELN, "Sales document
S_AUDAT FOR VBAK-AUDAT, "Document date
S_AUART FOR VBAK-AUART DEFAULT 'ZDR'. "Sales document type
START-OF-SELECTION.
PERFORM GET_DATA.
CHECK G_FEJL = 1.
PERFORM WRITE_LIST.
TOP-OF-PAGE.
WRITE 'Selected salesdocuments for collective invoicing'
COLOR COL_HEADING.
ULINE.
AT USER-COMMAND.
CASE SY-UCOMM.
WHEN 'EKSEKVER'.
PERFORM REMOVE_BILLINGBLOCK.
PERFORM BILL_DOCUMENTS.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
TITEL = 'Collective invoicing'
TEXTLINE1 = 'Batch input mapper er dannet'
TEXTLINE2 = 'Mapperne hedder ZSM02'
START_COLUMN = 25
START_ROW = 6
EXCEPTIONS
OTHERS = 1.
LEAVE TO SCREEN 0.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
*******************************************************************
* F O R M G E T _ D A T A
*******************************************************************
FORM GET_DATA.
SELECT VBELN INTO CORRESPONDING FIELDS OF TABLE G_VBELN
FROM VBAK
WHERE AUART IN S_AUART AND
VBELN IN S_VBELN AND
AUDAT IN S_AUDAT.
IF SY-SUBRC > 0.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
* TITEL = ' '
TEXTLINE1 = 'No sales documents found'
* TEXTLINE2 = ' '
* START_COLUMN = 25
* START_ROW = 6
EXCEPTIONS
OTHERS = 1.
G_FEJL = 0.
ELSE.
G_FEJL = 1.
ENDIF.
ENDFORM.
*******************************************************************
* F O R M W R I T E _ L I S T
*******************************************************************
FORM WRITE_LIST.
SET PF-STATUS '001'.
LOOP AT G_VBELN.
WRITE : / G_VBELN-VBELN.
ENDLOOP.
ENDFORM.
*******************************************************************
* F O R M R E M O V E _ B I L L I N G B L O C K
* Removes billingblock from debitor memo request ( Transaction VA02 )
*******************************************************************
FORM REMOVE_BILLINGBLOCK.
PERFORM OPEN_GROUP.
REFRESH BDC_TAB.
CLEAR BDC_TAB.
LOOP AT G_VBELN.
* Selection screen
PERFORM BDC_NEWDYNPRO USING 'SAPMV45A'
'0102'.
PERFORM BDC_FIELD USING 'VBAK-VBELN'
G_VBELN-VBELN.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'UER1'.
* Screen 40001
PERFORM BDC_NEWDYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'SFSP'.
* Screen 0253 fast change of billingblock
PERFORM BDC_NEWDYNPRO USING 'SAPMV45A' '0253'.
PERFORM BDC_FIELD USING 'RV45A-S_FAKSK'
' '.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'SUEB'.
* Back to screen 4001
PERFORM BDC_NEWDYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'SICH'.
* Insert
PERFORM BDC_INSERT USING 'VA02'.
CLEAR BDC_TAB.
REFRESH BDC_TAB.
ENDLOOP.
PERFORM CLOSE_GROUP.
ENDFORM.
*******************************************************************
* F O R M B I L L _ D O C U M E N T S
* Create billing document ( Transaction VF01 )
*******************************************************************
FORM BILL_DOCUMENTS.
DATA: L_NLINE TYPE I, L_CLINE(3) TYPE N,
L_FIELDNAME(20) TYPE C.
PERFORM OPEN_GROUP.
REFRESH BDC_TAB.
CLEAR BDC_TAB.
CLEAR L_NLINE. CLEAR L_CLINE.
PERFORM BDC_NEWDYNPRO USING 'SAPMV60A' '0102'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'ENT1'.
LOOP AT G_VBELN.
L_NLINE = L_NLINE + 1.
IF L_NLINE > 16.
* The screentable is filled, go to next page
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=P+'.
ENDIF.
* Convert linenumber to text
MOVE L_NLINE TO L_CLINE.
CONCATENATE 'KOMFK-VBELN(' L_CLINE ')' INTO L_FIELDNAME.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
L_FIELDNAME.
PERFORM BDC_FIELD USING L_FIELDNAME
G_VBELN-VBELN.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'ENT2'.
ENDLOOP.
* Close screen 0102
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/11'.
* Insert
PERFORM BDC_INSERT USING 'VF01'.
CLEAR BDC_TAB.
REFRESH BDC_TAB.
PERFORM CLOSE_GROUP.
ENDFORM.
*******************************************************************
* F O R M B D C _ D Y N P R O
* Start a new screen
*******************************************************************
FORM BDC_NEWDYNPRO USING PROGRAM DYNPRO.
CLEAR BDC_TAB.
BDC_TAB-PROGRAM = PROGRAM.
BDC_TAB-DYNPRO = DYNPRO.
BDC_TAB-DYNBEGIN = 'X'.
APPEND BDC_TAB.
ENDFORM.
*******************************************************************
* F O R M B D C _ F I E L D
* Inserts a field
*******************************************************************
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDC_TAB.
BDC_TAB-FNAM = FNAM.
BDC_TAB-FVAL = FVAL.
APPEND BDC_TAB.
ENDFORM.
*******************************************************************
* F O R M O P E N _ G R O U P
*******************************************************************
FORM OPEN_GROUP.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
* DEST = FILLER8
GROUP = 'ZSM02'
* HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
* RECORD = FILLER1
* IMPORTING
* QID =
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.
ENDFORM.
*******************************************************************
* F O R M C L O S E _ G R O U P
*******************************************************************
FORM CLOSE_GROUP.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
ENDFORM.
FORM BDC_INSERT USING TCODE.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = TCODE
* POST_LOCAL = NOVBLOCAL
* PRINTING = NOPRINT
TABLES
DYNPROTAB = BDC_TAB
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
ENDFORM.
05-02-2007 11:24 AM
05-02-2007 11:30 AM
Hi Laxman,
first upload ur flat file data into an internal table using FM
'gui_upload'.
using transaction SHDB u can record the transaction for which u want to write bdc.there is a option 'program' for writing whole recording code in the form of report.here u can made changes accoding to ur requirement.
TABLES : Z8MARA,Z8T001W,Z8MARC,Z8EMPMASTER.
DATA: BEGIN OF IT_MATPLANT OCCURS 0,
MATNO(18),
PLANT(5),
EMPID(4),
END OF IT_MATPLANT.
DATA: IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\Documents and Settings\hgoyal\Desktop\Z8MARC_DATA.txt'
FILETYPE = 'ASC'
tables
data_tab = IT_MATPLANT
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT_MATPLANT.
REFRESH IT_BDCDATA.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = 'Z8HG_MODULEPOOL4'.
IT_BDCDATA-DYNPRO = '101'.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = 'R_Z8MARC-Z8_MATNR'.
IT_BDCDATA-FVAL = IT_MATPLANT-MATNO.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = 'R_Z8MARC-Z8_WERKS'.
IT_BDCDATA-FVAL = IT_MATPLANT-PLANT.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = 'BDC_OKCODE'.
IT_BDCDATA-FVAL = 'CR01'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = 'Z8HG_MODULEPOOL4'.
IT_BDCDATA-DYNPRO = '101'.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = 'R_Z8MARC-Z8_EMPCODE'.
IT_BDCDATA-FVAL = IT_MATPLANT-EMPID.
APPEND IT_BDCDATA.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = 'BDC_OKCODE'.
IT_BDCDATA-FVAL = 'SAV1'.
APPEND IT_BDCDATA.
CALL TRANSACTION 'Z8HG2' USING IT_BDCDATA MODE 'N'.
ENDLOOP.
WRITE:/10 'ERROR DETAILS : '.
SKIP 1.
LOOP AT IT_ERROR_REPORT.
WRITE:/10 IT_ERROR_REPORT-MATNO ,30 IT_ERROR_REPORT-PLANT,60 IT_ERROR_REPORT-ERROR_VALUE.
ENDLOOP.
SKIP 2.
WRITE:/10 'ERRORED DATA : '.
SKIP 1.
loop at it_error.
write:/10 it_error.
endloop.
Reward points if helpful.
Regards,
Hemant
05-02-2007 11:30 AM
Hi,
Here is a sample bdc for uploading vendor master data (sourced from http://www.sap-img.com/abap/vendor-master-upload-program.htm):
report ZVEND_MST no standard page heading line-size
255.
*include bdcrecx1.
*parameters: dataset(132) lower case default
'c:vend.mst'.
*** DO NOT CHANGE - the generated data section - DO
NOT CHANGE ***
*
* If it is nessesary to change the data section use
the rules:
* 1.) Each definition of a field exists of two lines
* 2.) The first line shows exactly the comment
* '* data element: ' followed with the data
element
* which describes the field.
* If you don't have a data element use the
* comment without a data element name
* 3.) The second line shows the fieldname of the
* structure, the fieldname must consist of
* a fieldname and optional the character '_' and
* three numbers and the field length in brackets
* 4.) Each field must be type C.
*
*** Generated data section with specific formatting -
DO NOT CHANGE ***
data: begin of record,
* data element: LIF16
LIFNR_001(016),
* data element: BUKRS
BUKRS_002(004),
* data element: EKORG
EKORG_003(004),
* data element: KTOKK
KTOKK_004(004),
* data element: NAME1_GP
NAME1_005(035),
* data element: SORTL
SORTL_006(010),
* data element: LAND1_GP
LAND1_007(003),
* data element: SPRAS
SPRAS_008(002),
* data element: BSTWA
WAERS_009(005),
end of record.
*** End generated data section ***
DATA : ITAB TABLE OF RECORD WITH HEADER LINE.
start-of-selection.
*perform open_dataset using dataset.
*perform open_group.
*
*do.
*
*read dataset dataset into record.
*if sy-subrc <> 0. exit. endif.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:VENDOR.TXT'
"TEXT FILE
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = ITAB
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.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT ITAB.
*In Loop Change Record With ITAB
* like record-lifnr_001 with itab-lifnr_001
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-KTOKK'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
record-LIFNR_001.
perform bdc_field using 'RF02K-BUKRS'
record-BUKRS_002.
perform bdc_field using 'RF02K-EKORG'
record-EKORG_003.
perform bdc_field using 'RF02K-KTOKK'
record-KTOKK_004.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-SPRAS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
record-NAME1_005.
perform bdc_field using 'LFA1-SORTL'
record-SORTL_006.
perform bdc_field using 'LFA1-LAND1'
record-LAND1_007.
perform bdc_field using 'LFA1-SPRAS'
record-SPRAS_008.
perform bdc_dynpro using 'SAPMF02K' '0120'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02K' '0210'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-AKONT'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0215'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-ZTERM'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0220'.
perform bdc_field using 'BDC_CURSOR'
'LFB5-MAHNA'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFM1-WAERS'
record-WAERS_009.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
perform bdc_transaction using 'XK01'.
ENDLOOP.
05-02-2007 11:47 AM
Hi,
Go to transaction SHDB,
In that New Recording. There u have to give ur recording name and
transaction code for which u r going to create a program.
Then click Start Recording.
It will take u to the next screen.
Here u have to select those fields, which u r going to upload.
( Select those fields by giving some values, don't forgot to give
value for mandatory fields) than give enter, it wil take u to next
screen ( if ur transaction codes contain no. of screen) give values
for all the required fields and save it.
Than go to SM35 here u can find ur recording name.
select that one.
At top u can see some button, in that click program button.
i wil take u to next screen.
Their give ur prg name and
Transfer from recording radio button.
save it.
it wil take u to the program.
In prg u can find some commands get already exists.
I have send one sample prg.
In this the commands in Bold letters is given by me
and other commands are created because of that
recording, which we did above.
<b>In prg that internal table contains those fields
which we are going to upload.</b>
<b>You have to create one text file containing the fields
which u are going to upload and save it in desktop.</b>
REPORT zgroup_bdc
NO STANDARD PAGE HEADING LINE-SIZE 255.
INCLUDE bdcrecx1.
<b>DATA: BEGIN OF itab OCCURS 100,
bukrs(004), "LIKE rf02d-bukrs,
vkorg(004), " LIKE rf02d-vkorg,
vtweg(003), " LIKE rf02d-vtweg,
spart(003), " LIKE rf02d-spart,
ktokd(004), " LIKE rf02d-ktokd,
name1(035), " LIKE kna1-name1,
sortl(004), " LIKE kna1-sortl,
pfach(010), " LIKE kna1-pfach,
ort01(035), " LIKE kna1-ort01,
pstlz(010), " LIKE kna1-pstlz,
land1(003), " LIKE kna1-land1,
spras(002), " LIKE kna1-spras,
lzone(010), " LIKE kna1-lzone,
akont(010), " LIKE knb1-akont,
awahr(003), " LIKE knvv-awahr,
vsbed(002), " LIKE knvv-vsbed,
END OF itab.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\DOCUMENTS AND SETTINGS\DESKTOP\TEST1.TXT'
FILETYPE = 'ASC'
tables
data_tab = ITAB.
PERFORM open_group.
LOOP AT itab.</b>
*****************************FIRST SCREEN*************************
PERFORM bdc_dynpro USING 'SAPMF02D' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02D-KTOKD'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02D-BUKRS'
'0009'.
PERFORM bdc_field USING 'RF02D-VKORG'
'0001'.
PERFORM bdc_field USING 'RF02D-VTWEG'
'01'.
PERFORM bdc_field USING 'RF02D-SPART'
'01'.
PERFORM bdc_field USING 'RF02D-KTOKD'
'0001'.
*****************************SECOND SCREEN*************************
PERFORM bdc_dynpro USING 'SAPMF02D' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNA1-SPRAS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'KNA1-NAME1'
'Johnson'.
PERFORM bdc_field USING 'KNA1-SORTL'
'JOHN'.
PERFORM bdc_field USING 'KNA1-PFACH'
'600004'.
PERFORM bdc_field USING 'KNA1-ORT01'
'Chennai'.
PERFORM bdc_field USING 'KNA1-PSTLZ'
'600004'.
PERFORM bdc_field USING 'KNA1-LAND1'
'IN'.
PERFORM bdc_field USING 'KNA1-SPRAS'
'en'.
*****************************THIRD SCREEN*************************
PERFORM bdc_dynpro USING 'SAPMF02D' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNA1-LZONE'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_field USING 'KNA1-LZONE'
'412027'.
*****************************FOURTH SCREEN*************************
PERFORM bdc_dynpro USING 'SAPMF02D' '0125'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNA1-NIELS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0340'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02D-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0370'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02D-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_field USING 'KNA1-CIVVE'
'X'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0360'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNVK-NAMEV(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0210'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNB1-AKONT'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_field USING 'KNB1-AKONT'
'196000'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0215'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNB1-XPORE'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0220'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNB5-KNRMA'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0230'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNB1-VRSNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0610'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02D-KUNNR'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0310'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNVV-BZIRK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_field USING 'KNVV-AWAHR'
'100'.
PERFORM bdc_field USING 'KNVV-WAERS'
'EUR'.
PERFORM bdc_field USING 'KNVV-KALKS'
'1'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0315'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNVV-VSBED'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_field USING 'KNVV-KZAZU'
'X'.
PERFORM bdc_field USING 'KNVV-VSBED'
'ZB'.
PERFORM bdc_field USING 'KNVV-ANTLF'
'9'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0320'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNVV-PERFK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_dynpro USING 'SAPMF02D' '1350'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNVI-TAXKD(11)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=VW'.
PERFORM bdc_field USING 'KNVI-TAXKD(01)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(02)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(03)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(04)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(05)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(06)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(07)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(08)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(09)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(10)'
'1'.
PERFORM bdc_field USING 'KNVI-TAXKD(11)'
'1'.
PERFORM bdc_dynpro USING 'SAPMF02D' '0324'.
PERFORM bdc_field USING 'BDC_CURSOR'
'KNVP-PARVW(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_transaction USING 'XD01'.
ENDLOOP.
PERFORM close_group.