2007 May 08 8:40 AM
hi Everyone,
I have written a bdc for multiple line items for single header in PO.but i am getting multiple PO number for different line item.
Plz suggest how should i correct it.
report ZPURCHAGE1
no standard page heading line-size 255.
*include bdcrecx1.
*
*parameters: dataset(132) lower case.
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: t_bdc_data like bdcdata occurs 10 with header line.
data: begin of record2,
ebelp(005),
ematn(010),
menge(017),
name1(030),
spinf(001),
end of record2.
data: begin of record,
data element: BSART
BSART(004),
data element: MEPO_VENDOR
SUPERFIELD(051),
data element: EBDAT
BEDAT(010),
data element:
LIST(040),
data element: BSART
BSART_005(004),
data element: MEPO_VENDOR
SUPERFIELD_006(051),
data element: EBDAT
BEDAT_007(010),
data element: EKORG
EKORG(004),
data element: EKGRP
EKGRP(003),
data element: BUKRS
BUKRS(004),
data element:
LIST_011(040),
data element: BSART
BSART_012(004),
data element: MEPO_VENDOR
SUPERFIELD_013(051),
data element: EBDAT
BEDAT_014(010),
data element: EKORG
EKORG_015(004),
data element: EKGRP
EKGRP_016(003),
data element: BUKRS
BUKRS_017(004),
data element:
LIST_018(040),
data element: BSART
BSART_019(004),
data element: MEPO_VENDOR
SUPERFIELD_020(051),
data element: EBDAT
BEDAT_021(010),
data element: EKORG
EKORG_022(004),
data element: EKGRP
EKGRP_023(003),
data element: BUKRS
BUKRS_024(004),
data element: EBELP
EBELP(005),
data element: EMATNR
EMATN(018),
data element: BSTMG
MENGE(017),
data element: MEPO_EWERK
NAME1(030),
data element:
LIST_029(040),
data element: BSART
BSART_030(004),
data element: MEPO_VENDOR
SUPERFIELD_031(051),
data element: EBDAT
BEDAT_032(010),
data element: EKORG
EKORG_033(004),
data element: EKGRP
EKGRP_034(003),
data element: BUKRS
BUKRS_035(004),
data element:
LIST_036(040),
data element: INFUP
SPINF(001),
end of record.
data : itab like standard table of record with header line.
data: itab1 like standard table of record2 with header line.
End generated data section ***
start-of-selection.
*perform open_dataset using dataset.
*perform open_group.
*
*do.
*
*read dataset dataset into record.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = 'DAT'
TABLES
DATA_TAB = ITAB.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = 'DAT'
TABLES
DATA_TAB = itab1.
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 into record.
*if sy-subrc <> 0. exit. endif.
LOOP AT ITAB1 INTO RECORD2.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MEV4000BUTTON'.
perform bdc_field using 'BDC_CURSOR'
'MEPO_TOPLINE-SUPERFIELD'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'BDC_CURSOR'
'MEPO1222-BUKRS'.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MEV4001BUTTON'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'BDC_CURSOR'
'MEPO1222-BUKRS'.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
perform bdc_field using 'BDC_CURSOR'
'MEPO1211-NAME1(01)'.
perform bdc_field using 'MEPO1211-EBELP(01)'
record2-EBELP.
perform bdc_field using 'MEPO1211-EMATN(01)'
record2-EMATN.
perform bdc_field using 'MEPO1211-MENGE(01)'
record2-MENGE.
perform bdc_field using 'MEPO1211-NAME1(01)'
record2-NAME1.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MESAVE'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
perform bdc_field using 'BDC_CURSOR'
'MEPO1211-EEIND(01)'.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_field using 'MEPO1319-SPINF'
record2-SPINF.
*perform bdc_transaction using 'ME21N'.
CALL TRANSACTION 'ME21N' USING t_bdc_data
MODE 'A'
UPDATE 'S'.
clear t_bdc_data.
refresh t_bdc_data.
endloop.
endloop.
*perform close_group.
&----
*& Form bdc_dynpro
&----
text
----
-->P_0046 text
-->P_0047 text
----
FORM bdc_dynpro USING PROGRAM
DYNPRO.
CLEAR t_bdc_data.
t_bdc_data-PROGRAM = PROGRAM.
t_bdc_data-DYNPRO = DYNPRO.
t_bdc_data-DYNBEGIN = 'X'.
APPEND t_bdc_data.
ENDFORM. " bdc_dynpro
&----
*& Form bdc_field
&----
text
----
-->P_0051 text
-->P_0052 text
----
FORM bdc_field USING FNAM
FVAL.
CLEAR t_bdc_data.
t_bdc_data-FNAM = FNAM.
t_bdc_data-FVAL = FVAL.
APPEND t_bdc_data.
ENDFORM. " bdc_field
Mohit
hi Everyone,
I have written a bdc for multiple line items for single header in PO.but i am getting multiple PO number for different line item.
Plz suggest how should i correct it.
report ZPURCHAGE1
no standard page heading line-size 255.
*include bdcrecx1.
*
*parameters: dataset(132) lower case.
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: t_bdc_data like bdcdata occurs 10 with header line.
data: begin of record2,
ebelp(005),
ematn(010),
menge(017),
name1(030),
spinf(001),
end of record2.
data: begin of record,
data element: BSART
BSART(004),
data element: MEPO_VENDOR
SUPERFIELD(051),
data element: EBDAT
BEDAT(010),
data element:
LIST(040),
data element: BSART
BSART_005(004),
data element: MEPO_VENDOR
SUPERFIELD_006(051),
data element: EBDAT
BEDAT_007(010),
data element: EKORG
EKORG(004),
data element: EKGRP
EKGRP(003),
data element: BUKRS
BUKRS(004),
data element:
LIST_011(040),
data element: BSART
BSART_012(004),
data element: MEPO_VENDOR
SUPERFIELD_013(051),
data element: EBDAT
BEDAT_014(010),
data element: EKORG
EKORG_015(004),
data element: EKGRP
EKGRP_016(003),
data element: BUKRS
BUKRS_017(004),
data element:
LIST_018(040),
data element: BSART
BSART_019(004),
data element: MEPO_VENDOR
SUPERFIELD_020(051),
data element: EBDAT
BEDAT_021(010),
data element: EKORG
EKORG_022(004),
data element: EKGRP
EKGRP_023(003),
data element: BUKRS
BUKRS_024(004),
data element: EBELP
EBELP(005),
data element: EMATNR
EMATN(018),
data element: BSTMG
MENGE(017),
data element: MEPO_EWERK
NAME1(030),
data element:
LIST_029(040),
data element: BSART
BSART_030(004),
data element: MEPO_VENDOR
SUPERFIELD_031(051),
data element: EBDAT
BEDAT_032(010),
data element: EKORG
EKORG_033(004),
data element: EKGRP
EKGRP_034(003),
data element: BUKRS
BUKRS_035(004),
data element:
LIST_036(040),
data element: INFUP
SPINF(001),
end of record.
data : itab like standard table of record with header line.
data: itab1 like standard table of record2 with header line.
End generated data section ***
start-of-selection.
*perform open_dataset using dataset.
*perform open_group.
*
*do.
*
*read dataset dataset into record.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = 'DAT'
TABLES
DATA_TAB = ITAB.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = 'DAT'
TABLES
DATA_TAB = itab1.
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 into record.
*if sy-subrc <> 0. exit. endif.
LOOP AT ITAB1 INTO RECORD2.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MEV4000BUTTON'.
perform bdc_field using 'BDC_CURSOR'
'MEPO_TOPLINE-SUPERFIELD'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'BDC_CURSOR'
'MEPO1222-BUKRS'.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MEV4001BUTTON'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'BDC_CURSOR'
'MEPO1222-BUKRS'.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
perform bdc_field using 'BDC_CURSOR'
'MEPO1211-NAME1(01)'.
perform bdc_field using 'MEPO1211-EBELP(01)'
record2-EBELP.
perform bdc_field using 'MEPO1211-EMATN(01)'
record2-EMATN.
perform bdc_field using 'MEPO1211-MENGE(01)'
record2-MENGE.
perform bdc_field using 'MEPO1211-NAME1(01)'
record2-NAME1.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_dynpro using 'SAPLMEGUI' '0014'.
perform bdc_field using 'BDC_OKCODE'
'=MESAVE'.
perform bdc_field using 'MEPO_TOPLINE-BSART'
record-BSART.
perform bdc_field using 'MEPO_TOPLINE-SUPERFIELD'
record-SUPERFIELD.
perform bdc_field using 'MEPO_TOPLINE-BEDAT'
record-BEDAT.
perform bdc_field using 'MEPO1222-EKORG'
record-EKORG.
perform bdc_field using 'MEPO1222-EKGRP'
record-EKGRP.
perform bdc_field using 'MEPO1222-BUKRS'
record-BUKRS.
perform bdc_field using 'BDC_CURSOR'
'MEPO1211-EEIND(01)'.
*perform bdc_field using 'DYN_6000-LIST'
record-LIST.
perform bdc_field using 'MEPO1319-SPINF'
record2-SPINF.
*perform bdc_transaction using 'ME21N'.
CALL TRANSACTION 'ME21N' USING t_bdc_data
MODE 'A'
UPDATE 'S'.
clear t_bdc_data.
refresh t_bdc_data.
endloop.
endloop.
*perform close_group.
&----
*& Form bdc_dynpro
&----
text
----
-->P_0046 text
-->P_0047 text
----
FORM bdc_dynpro USING PROGRAM
DYNPRO.
CLEAR t_bdc_data.
t_bdc_data-PROGRAM = PROGRAM.
t_bdc_data-DYNPRO = DYNPRO.
t_bdc_data-DYNBEGIN = 'X'.
APPEND t_bdc_data.
ENDFORM. " bdc_dynpro
&----
*& Form bdc_field
&----
text
----
-->P_0051 text
-->P_0052 text
----
FORM bdc_field USING FNAM
FVAL.
CLEAR t_bdc_data.
t_bdc_data-FNAM = FNAM.
t_bdc_data-FVAL = FVAL.
APPEND t_bdc_data.
ENDFORM. " bdc_field
Mohit
2007 May 08 8:47 AM
Hi ,
try this :
ur existing codes:
.
.
.
*perform bdc_transaction using 'ME21N'.
CALL TRANSACTION 'ME21N' USING t_bdc_data
MODE 'A'
UPDATE 'S'.
clear t_bdc_data.
refresh t_bdc_data.
endloop.
endloop.proposed codes by me:
.
.
.
clear t_bdc_data.
endloop.
*perform bdc_transaction using 'ME21N'.
CALL TRANSACTION 'ME21N' USING t_bdc_data
MODE 'A'
UPDATE 'S'.
refresh t_bdc_data.
endloop.Message was edited by:
Jogdand M B
2007 May 08 9:07 AM
Hi
This is updating only one line item while my file contain more then one line item.