12-19-2006 4:56 AM
Hi Friends,
While Recording MB1A Transaction I am getting Codding Block Screen. Where as Whilr running MB1A transaction Normally we are not getting that screen.
For this reason we are not able to go to the next step. please do the need full.
Here i am sending the code.
*&---------------------------------------------------------------------*
*& Report YPH_CANCEL_REV *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT yph_cancel_rev .
*include bdcrecx1.
DATA : BEGIN OF BDC_TAB OCCURS 0.
INCLUDE STRUCTURE BDCDATA.
DATA : END OF BDC_TAB.
DATA : BEGIN OF MESSTAB OCCURS 0.
INCLUDE STRUCTURE BDCMSGCOLL.
DATA : END OF MESSTAB.
DATA : BEGIN OF itab OCCURS 0,
aufnr TYPE aufnr,
werks type werks_d,
lgort type lgort_d,
MTSNR type MTSNR1,
END OF itab,
begin of it_caufv occurs 0,
aufnr type aufnr,
rsnum type rsnum,
end of it_caufv,
begin of it_resb occurs 0,
rsnum type rsnum,
aufnr type aufnr,
xwaok type xwaok,
matnr type matnr,
enmng type enmng,
splkz type CHSPLIT,
rgekz type RGEKZ,
end of it_resb.
data dir2 type string.
PARAMETERS : dir1(50) TYPE c.
dir2 = dir1.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = dir2 "'C:order.txt'
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = itab.
loop at itab.
select aufnr rsnum from caufv into table it_caufv where lead_aufnr = itab-aufnr.
loop at it_caufv.
select rsnum aufnr xwaok matnr enmng splkz rgekz from resb into table it_resb where rsnum = it_caufv-rsnum.
loop at it_resb.
if it_resb-xwaok eq 'X'. " Movement Allowed
if it_resb-enmng > 0 . " Quantity With drawn
if it_resb-rgekz eq ' '. " Back Flush
*if it_resb-splkz eq ' '. " Batch Split
data: begin of record occurs 0,
* data element: BLDAT
BLDAT_001(010),
* data element: BUDAT
BUDAT_002(010),
* data element: MTSNR1
MTSNR_003(016),
* data element: BWARTWA
BWARTWA_004(003),
* data element: WERKS_D
WERKS_005(004),
* data element: LGORT_D
LGORT_006(004),
* data element:
XFULL_007(001),
* data element: WVERS2
WVERS2_008(001),
* data element: WERKS_D
WERKS_009(004),
* data element: AUFNR
AUFNR_01_010(012),
* data element: LGORT_D
LGORT_01_011(004),
* data element: LGORT_D
LGORT_02_012(004),
* data element: LGORT_D
LGORT_03_013(004),
* data element: LGORT_D
LGORT_04_014(004),
* data element: LGORT_D
LGORT_05_015(004),
* data element: ERFMG
ERFMG_016(017),
* data element: ERFME
ERFME_017(003),
* data element: LGORT_D
LGORT_018(004),
* data element: FMORE
FMORE_019(001),
end of record.
*** End generated data section ***
*start-of-selection.
*perform open_dataset using dataset.
**record-mtsnr_003 = 'REM'.
**record-bwartwa_004 = '262'.
**record-werks_009 = 'HPR1'.
**append record.
*loop at record.
PERFORM DYNPRO USING :
'X' 'SAPMM07M' '0400',
' ' 'BDC_CURSOR' 'RM07M-LGORT',
' ' 'BDC_OKCODE' '=NFAS',
' ' 'BDC_CURSOR' 'RM07M-MTSNR',
' ' 'RM07M-MTSNR' 'REM',
' ' 'BDC_CURSOR' 'RM07M-BWARTWA',
' ' 'RM07M-BWARTWA' '262',
' ' 'BDC_CURSOR' 'RM07M-WERKS',
' ' 'RM07M-WERKS' itab-werks,
' ' 'BDC_CURSOR' 'RM07M-LGORT',
' ' 'RM07M-LGORT' itab-lGORT,
'X' 'SAPMM07M' '1405',
' ' 'BDC_CURSOR' 'RM07M-AUFNR(01)',
' ' 'BDC_OKCODE' 'SS',
' ' 'BDC_CURSOR' 'RM07M-AUFNR(01)',
' ' 'RM07M-AUFNR(01)' it_caufv-aufnr,
*
'X' 'SAPMM07M' '0410',
' ' 'BDC_CURSOR' 'MSEG-ERFMG',
' ' 'BDC_OKCODE' '=BU',
' ' 'BDC_CURSOR' 'MSEG-LGORT',
' ' 'MSEG-LGORT' itab-lGORT,
'X' 'SAPLKACB' '2400',
' ' 'BDC_CURSOR' 'COBL-AUFNR',
' ' 'BDC_OKCODE' '=ENTE'.
* ' ' 'BDC_CURSOR' 'COBL-AUFNR',
* ' ' 'MSEG-LGORT' it_caufv-aufnr.
*
CALL TRANSACTION 'MB1A' USING BDC_TAB MODE 'A' UPDATE 'S'
MESSAGES INTO messtab.
if sy-subrc eq 0.
write 😕 'Suceess full',it_resb-aufnr, it_resb-matnr,it_resb-enmng.
else.
write 😕 'UN Suceess full',it_resb-aufnr, it_resb-matnr,it_resb-enmng.
endif.
*
*
* ' ' 'BDC_CURSOR' 'MKPF-BLDAT',
* ' ' 'EMPNO' record-BLDAT_001,
*
* ' ' 'BDC_CURSOR' 'MKPF-BUDAT',
* ' ' 'MKPF-BUDAT' record-BUDAT_002.
*
*perform bdc_field
*perform bdc_field using 'RM07M-WERKS'
* record-WERKS_005.
*perform bdc_field
*perform bdc_field using 'XFULL'
* record-XFULL_007.
*perform bdc_field using 'RM07M-WVERS2'
* record-WVERS2_008.
*perform bdc_dynpro using 'SAPMM07M' '1405'.
*perform bdc_field using 'BDC_CURSOR'
* 'RM07M-AUFNR(01)'.
*perform bdc_field using 'BDC_OKCODE'
* 'SS'.
*perform bdc_field using 'RM07M-WERKS'
* record-WERKS_009.
*perform bdc_field using 'RM07M-AUFNR(01)'
* record-AUFNR_01_010.
*perform bdc_field using 'RM07M-LGORT(01)'
* record-LGORT_01_011.
*perform bdc_field using 'RM07M-LGORT(02)'
* record-LGORT_02_012.
*perform bdc_field using 'RM07M-LGORT(03)'
* record-LGORT_03_013.
*perform bdc_field using 'RM07M-LGORT(04)'
* record-LGORT_04_014.
*perform bdc_field using 'RM07M-LGORT(05)'
* record-LGORT_05_015.
*perform bdc_dynpro using 'SAPMM07M' '0410'.
*perform bdc_field using 'BDC_CURSOR'
* 'MSEG-ERFMG'.
*perform bdc_field using 'BDC_OKCODE'
* '=BU'.
*perform bdc_field using 'MSEG-ERFMG'
* record-ERFMG_016.
*perform bdc_field using 'MSEG-ERFME'
* record-ERFME_017.
*perform bdc_field using 'MSEG-LGORT'
* record-LGORT_018.
*perform bdc_field using 'DKACB-FMORE'
* record-FMORE_019.
*perform bdc_dynpro using 'SAPLKACB' '0002'.
*perform bdc_field using 'BDC_CURSOR'
* 'COBL-AUFNR'.
*perform bdc_field using 'BDC_OKCODE'
* '=ENTE'.
*perform bdc_transaction using 'MB1A'.
*
*endloop.
*endif.
else.
write 😕 'Plan Order reverse Conformation',it_resb-aufnr, it_resb-matnr,it_resb-enmng.
endif.
else.
write 😕 'goods not issued',it_resb-aufnr, it_resb-matnr,it_resb-enmng.
endif.
endif.
endloop.
endloop.
endloop.
form DYNPRO using value(p_0238)
value(p_0239)
value(p_0240).
IF p_0238 = 'X'.
CLEAR bdc_tab.
MOVE: 'SAPMM07M' TO bdc_tab-program,
P_0240 TO bdc_tab-dynpro,
'X' TO bdc_tab-dynbegin.
APPEND bdc_tab.
ELSE.
CLEAR bdc_tab.
MOVE: P_0239 TO bdc_tab-fnam,
P_0240 TO bdc_tab-fval.
APPEND bdc_tab.
ENDIF.
endform. " DYNPRO
12-19-2006 5:03 AM
Many of the newer screens are not compatible with BDC.
Check the documentation under "Data Transfer".
12-19-2006 5:46 AM
Please check the documentation of the Tcode where it will give which transaction needs to be used under recording.
BR,
Ravi
12-19-2006 6:11 AM
best to do is use bapi <b>BAPI_GOODSMVT_CREATE</b> and see its documentation to get more info.
Regards
Prabhu