You are on page 1of 11

*&---------------------------------------------------------------------*

*& Report ZJAL_MM_BDC_BC


*&

*
*

*&---------------------------------------------------------------------*
*&

*&

*&---------------------------------------------------------------------*

REPORT ZJAL_MM_BDC_BC .

*Data Declaration
DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA : MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : MSG_BODY LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE .
DATA : ITAB TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
DATA : ITAB2 TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
DATA : G_QID TYPE APQI-QID.
DATA : GROUP LIKE APQI-GROUPID VALUE 'ERR_BOM_PP',
USER LIKE APQI-USERID,
KEEP LIKE APQI-QERASE,
HOLDDATE LIKE APQI-STARTDATE.
FIELD-SYMBOLS : <L_FS> .

DATA : CNT1(2) TYPE N VALUE '1'.


DATA : CNT2(2) TYPE N VALUE '1'.

DATA : BEGIN OF ITAB11 OCCURS 0,


MATNR(18), "MAT NO
MTART(4), "MAT TYPE
CLASI(1), "CLASS

WERKS(4), "PLANT
LGORT(4), "STORG LOC
VKORG(4), "SALES ORG
VTWEG(2), "DIS CHAN
MAKTX(40), "DESC
MEINS(3), "UOM
MAKTL(9), "MAT GROUP
SPART(2), "DIVISON
MSTAE(2), "Cross-Plant Material Status
KZKFG(1), "CONFIG MAT
DWERK(4), "DELIVER PLANT
TAXKM1(1), "TAX1
TAXKM2(1), "TAX2
TAXKM3(1), "TAX3
TAXKM4(1), "TAX4
VERSG(1), "Mat STc Grp
KTGRM(2), "Acc Assgn Grp
MTPOS(4), "Item Cat
MTVFP(2), "Aval Check
TRAGR(4), "Transp Grp
LADGR(4), "Loading Grp
EKWSL(4), "PURCHASE VAL KEY
DISMM(2), "MRp Type
MINBE(17), "RECORDER PONT
DISPO(3), "MRP Contoller
DISLS(2), "Lot Size
MABST(17), "Max St level
BESKZ(1), "Proc Type
SOBSL(2), "Sp Proc Type
DZEIT(1), "In Produc Time

PLIFZ(3), "Planned Del Time


WEBAZ(1), "Goods Del Proc time
FHORI(3), "Schedule Key
STRGR(2), "Strategy
*

MTVFP(2), "Availibility Check


SBDKZ(1), "Ind/Coll
FEVOR(3), "Prod Sche
SFCPF(6), "Produc Prof
BKLAS(4), "Valuation Class
STPRS(13), "price

END OF ITAB11.

DATA : BEGIN OF ITAB12 OCCURS 0,


MATNR(18),
KLART(3),
CLASS(10),
END OF ITAB12.

DATA : BEGIN OF ITAB13 OCCURS 0,


MATNR(18),
KLART(3),
END OF ITAB13.

DATA : BEGIN OF ITAB14 OCCURS 0,


MATNR(18),
KLART(3),
CLASS(10),
END OF ITAB14.

DATA : CLASS(25) , KLART(25).

*Selection Screen
SELECTION-SCREEN: BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_INFILE LIKE RLGRAP-FILENAME OBLIGATORY,
P_ROW

TYPE I DEFAULT '2'.

PARAMETERS : P_MODE

TYPE MODE DEFAULT 'E' OBLIGATORY.

SELECTION-SCREEN END OF BLOCK BLK1.

*Input Help for file name


AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_INFILE.
PERFORM F_GET_FILE USING P_INFILE.

*Put data from excel to itab and itab2


AT SELECTION-SCREEN.

PERFORM READ_FILE USING P_INFILE.

START-OF-SELECTION.

*Put data into main internal tables


PERFORM MOVE_EXCEL_ITTABLE.

LOOP AT ITAB11.

TRANSLATE ITAB11-MTART TO UPPER CASE.

*first screen
PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'0060'.

PERFORM BDC_FIELD
MATNR'.

USING 'BDC_CURSOR'

'RMMG1-

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'=AUSW'.

PERFORM BDC_FIELD
MATNR.

USING 'RMMG1-MATNR'

ITAB11-

PERFORM BDC_FIELD

USING 'RMMG1-MBRSH'

'S'.

PERFORM BDC_FIELD

USING 'RMMG1-MTART'

ITAB11-MTART.

*select view screen


PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'0070'.

PERFORM BDC_FIELD
DYTXT(15)'.

USING 'BDC_CURSOR'

'MSICHTAUSW-

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'P+'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(02)'

'X'.

IF ITAB11-MTART = 'ZROH'.
PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(03)'

'X'.

ELSEIF ITAB11-MTART = 'ZFER' AND ITAB11-CLASI = 'X'.


PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(03)'

'X'.

ENDIF.
PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(04)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(05)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(06)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(09)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(12)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(13)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(14)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(15)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(16)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(17)'

'X'.

PERFORM BDC_DYNPRO
* PERFORM BDC_FIELD
DYTXT(05)'.

USING 'SAPLMGMM'
USING 'BDC_CURSOR'

'0070'.
'MSICHTAUSW-

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'P--'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(01)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(02)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(03)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(04)'

'X'.

PERFORM BDC_FIELD

USING 'MSICHTAUSW-KZSEL(05)'

'X'.

PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'0070'.

PERFORM BDC_FIELD
DYTXT(01)'.

USING 'BDC_CURSOR'

'MSICHTAUSW-

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'=ENTR'.

*popup screen
PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'0080'.

PERFORM BDC_FIELD
LGORT'.

USING 'BDC_CURSOR'

'RMMG1-

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'=ENTR'.

PERFORM BDC_FIELD
WERKS.

USING 'RMMG1-WERKS'

ITAB11-

PERFORM BDC_FIELD

USING 'RMMG1-LGORT'

ITAB11-LGORT.

PERFORM BDC_FIELD
VKORG.

USING 'RMMG1-VKORG'

ITAB11-

PERFORM BDC_FIELD
VTWEG.

USING 'RMMG1-VTWEG'

ITAB11-

*basic data 1
PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'4004'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD

USING 'MAKT-MAKTX'

ITAB11-MAKTX .

PERFORM BDC_FIELD

USING 'MARA-MEINS'

ITAB11-MEINS.

PERFORM BDC_FIELD

USING 'MARA-MATKL'

ITAB11-MAKTL.

PERFORM BDC_FIELD

USING 'MARA-SPART'

ITAB11-SPART.

PERFORM BDC_FIELD

USING 'MARA-MSTAE'

ITAB11-MSTAE.

PERFORM BDC_FIELD

USING 'MARA-MTPOS_MARA'

PERFORM BDC_FIELD

USING 'BDC_CURSOR'

'MARA-NTGEW'.

PERFORM BDC_FIELD
"not in table

USING 'MARA-BRGEW'

'1'.

PERFORM BDC_FIELD
"not in table

USING 'MARA-GEWEI'

'KG'.

PERFORM BDC_FIELD
"not in table

USING 'MARA-NTGEW'

'1'.

'NORM'.

*basic data 2
PERFORM BDC_DYNPRO

*
*

USING 'SAPLMGMM'

'4004'.

PERFORM BDC_FIELD

USING 'BDC_CURSOR'

'MARA-KZKFG'.

PERFORM BDC_FIELD

USING 'MARA-KZKFG'

ITAB11-KZKFG.

PERFORM BDC_FIELD
PERFORM BDC_FIELD

USING 'RMMZU-XLTYF(1)'
USING 'MARA-SATNR'

'X'.
'VARIANT-KG'.

*
PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

IF ITAB11-MTART = 'ZJRM'.

PERFORM BDC_FIELD

USING 'MARA-SATNR'

'VARIANT-KG'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

PERFORM BDC_DYNPRO

PERFORM BDC_FIELD
MNAME(01)'.

USING 'SAPLCEI0'

USING 'BDC_CURSOR'

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

PERFORM BDC_DYNPRO

PERFORM BDC_FIELD

USING 'SAPLMGMM'

USING 'BDC_OKCODE'

PERFORM BDC_DYNPRO

USING 'SAPLCLCA'

'=PB21'.

'0109'.

'RCTMS-

'/00'.

'=BACK'.

'/00'.

'4004'.

'/00'.

'0602'.

PERFORM BDC_FIELD

USING 'BDC_CURSOR'

'RMCLF-KLART'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'=ENTE'.

PERFORM BDC_FIELD

USING 'RMCLF-KLART'

PERFORM BDC_DYNPRO

USING 'SAPLCLFM'

'023'.

'0500'.

PERFORM BDC_FIELD
CLASS(01)'.

USING 'BDC_CURSOR'

'RMCLF-

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD

USING 'RMCLF-CLASS(01)'

PERFORM BDC_DYNPRO

USING 'SAPLCTMS'

'RM_JAL'.

'0109'.

PERFORM BDC_FIELD
MNAME(01)'.

USING 'BDC_CURSOR'

'RCTMS-

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'=BACK'.

USING 'SAPLCLFM'

'0500'.

PERFORM BDC_DYNPRO
PERFORM BDC_FIELD
CLASS(01)'.

USING 'BDC_CURSOR'

'RMCLF-

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'=WEI1'.

ELSE.

*
*

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

*
ENDIF.

*sales
PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'4000'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD

USING 'BDC_CURSOR'

'MAKT-MAKTX'.

PERFORM BDC_FIELD
DWERK.

USING 'MVKE-DWERK'

PERFORM BDC_FIELD

PERFORM BDC_DYNPRO

USING 'MVKE-SKTOF'

USING 'SAPLMGMM'

ITAB11'X'. "not in table

'4200'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD
TAXKM(02)'.

USING 'BDC_CURSOR'

'MG03STEUER-

PERFORM BDC_FIELD
TAXKM1.

USING 'MG03STEUER-TAXKM(01)'

ITAB11-

PERFORM BDC_FIELD
TAXKM2.

USING 'MG03STEUER-TAXKM(02)'

ITAB11-

PERFORM BDC_FIELD
TAXKM3.

USING 'MG03STEUER-TAXKM(03)'

ITAB11-

PERFORM BDC_FIELD
TAXKM4.

USING 'MG03STEUER-TAXKM(04)'

ITAB11-

PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'4000'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD

USING 'BDC_CURSOR'

'MAKT-MAKTX'.

*Sales2
PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'4000'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD

USING 'BDC_CURSOR'

'MVKE-MTPOS'.

PERFORM BDC_FIELD

USING 'MVKE-VERSG'

ITAB11-VERSG.

PERFORM BDC_FIELD

USING 'MVKE-KTGRM'

ITAB11-KTGRM.

PERFORM BDC_FIELD
"not in table
PERFORM BDC_FIELD

USING 'MARA-MTPOS_MARA'
USING 'MVKE-MTPOS'

'NORM'.
ITAB11-MTPOS.

*sales genral / plant


PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'4000'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD

USING 'BDC_CURSOR'

'MARC-MTVFP'.

PERFORM BDC_FIELD

USING 'MARC-MTVFP'

ITAB11-MTVFP.

PERFORM BDC_FIELD

USING 'MARA-TRAGR'

ITAB11-TRAGR.

PERFORM BDC_FIELD

USING 'MARC-LADGR'

ITAB11-LADGR.

IF ITAB11-MTART EQ 'ZFER' AND ITAB11-CLASI = 'X'.


PERFORM BDC_FIELD
ENDIF.

*purchasing

USING 'MARA-XCHPF'

'X'.

PERFORM BDC_DYNPRO

USING 'SAPLMGMM'

'4000'.

PERFORM BDC_FIELD

USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD

USING 'BDC_CURSOR'

'MAKT-MAKTX'.

IF ITAB11-MTART EQ 'ZJRM'.
PERFORM BDC_FIELD
ENDIF.

USING 'MARA-XCHPF'

'X'.

You might also like