Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Problem In Recording MB1A Transaction through SHDB

Former Member
0 Kudos

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

3 REPLIES 3

marilyn_pratt
Active Contributor
0 Kudos

Many of the newer screens are not compatible with BDC.

Check the documentation under "Data Transfer".

Former Member
0 Kudos

Please check the documentation of the Tcode where it will give which transaction needs to be used under recording.

BR,

Ravi

Former Member
0 Kudos

best to do is use bapi <b>BAPI_GOODSMVT_CREATE</b> and see its documentation to get more info.

Regards

Prabhu