‎2006 Dec 21 7:50 AM
Hi all,
I want to know that how we can upload the line items in bdc?
can you give me one example with coding.
so that i can......
thanks in advance.
madan.k
‎2006 Dec 21 7:52 AM
‎2006 Dec 21 7:52 AM
‎2006 Dec 21 8:15 AM
Check the following code it may help u.
REPORT z_nvk_bdc_tbl NO STANDARD PAGE HEADING LINE-SIZE 255.
*INCLUDE bdcrecx1.
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 OCCURS 0,
data element: LIF16
lifnr_001(016),
data element: BUKRS
bukrs_002(004),
data element: KTOKK
ktokk_003(004),
data element: ANRED
anred_004(015),
data element: NAME1_GP
name1_005(035),
data element: SORTL
sortl_006(010),
data element: LAND1_GP
land1_007(003),
data element: KUNNR
kunnr_008(010),
data element: BANKS
banks_01_009(003),
data element: BANKK
bankl_01_010(015),
data element: BANKN
bankn_01_011(018),
data element: AKONT
akont_012(010),
data element: FDGRV
fdgrv_013(010),
END OF record.
DATA: IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: V_BANKS(14), V_BANKL(14), V_BANKN(14), V_NUMC(2) TYPE N,
V_TABIX LIKE SY-TABIX.
End generated data section ***
START-OF-SELECTION.
perform upload_data.
PERFORM open_group.
SORT RECORD BY LIFNR_001.
LOOP AT RECORD.
V_TABIX = SY-TABIX.
AT NEW KUNNR_008.
REFRESH IT_BDC.
CLEAR V_NUMC.
PERFORM bdc_dynpro USING 'SAPMF02K' '0105'.
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-KTOKK'
record-ktokk_003.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-LAND1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-ANRED'
record-anred_004.
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_dynpro USING 'SAPMF02K' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-KUNNR'
record-kunnr_008.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKN(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
ENDAT.
V_NUMC = V_NUMC + 1.
CONCATENATE 'LFBK-BANKS(' V_NUMC ')' INTO V_BANKS.
CONCATENATE 'LFBK-BANKL(' V_NUMC ')' INTO V_BANKL.
CONCATENATE 'LFBK-BANKN(' V_NUMC ')' INTO V_BANKN.
PERFORM bdc_field USING V_BANKS
record-banks_01_009.
PERFORM bdc_field USING V_BANKL
record-bankl_01_010.
PERFORM bdc_field USING V_BANKN
record-bankn_01_011.
AT END OF KUNNR_008.
READ TABLE RECORD INDEX V_TABIX.
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-FDGRV'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=UPDA'.
PERFORM bdc_field USING 'LFB1-AKONT'
record-akont_012.
PERFORM bdc_field USING 'LFB1-FDGRV'
record-fdgrv_013.
PERFORM bdc_transaction USING 'FK01'.
ENDAT.
ENDLOOP.
PERFORM close_group.
----
Start new screen *
----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR IT_BDC.
IT_BDC-PROGRAM = PROGRAM.
IT_BDC-DYNPRO = DYNPRO.
IT_BDC-DYNBEGIN = 'X'.
APPEND IT_BDC.
ENDFORM.
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> ' '.
CLEAR IT_BDC.
IT_BDC-FNAM = FNAM.
IT_BDC-FVAL = FVAL.
APPEND IT_BDC.
ENDIF.
ENDFORM.
&----
*& Form upload_data
&----
form upload_data .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
CODEPAGE = ' '
FILENAME = 'c:\bank.txt'
FILETYPE = 'ASC'
HEADLEN = ' '
LINE_EXIT = ' '
TRUNCLEN = ' '
USER_FORM = ' '
USER_PROG = ' '
DAT_D_FORMAT = ' '
IMPORTING
FILELENGTH =
TABLES
data_tab = record
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
NO_AUTHORITY = 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. " upload_data
&----
*& Form open_group
&----
form open_group .
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
DEST = FILLER8
GROUP = 'Z_NVK_TBL'
HOLDDATE = FILLER8
KEEP = 'X'
USER = SY-UNAME
RECORD = FILLER1
PROG = SY-CPROG
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
.
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
&----
*& Form close_group
&----
form close_group .
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 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.
endform. " close_group
&----
*& Form bdc_transaction
&----
text
----
-->P_0209 text
----
form bdc_transaction using T_CODE.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = T_CODE
POST_LOCAL = NOVBLOCAL
PRINTING = NOPRINT
SIMUBATCH = ' '
CTUPARAMS = ' '
TABLES
dynprotab = IT_BDC
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7
.
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. " bdc_transaction
Regards