‎2007 Jun 26 6:20 AM
hi
please send me sample coding and steps for BDC
1.BDC_OPEN_GROUP
2.BDC_INSERT
3.BDC_CLOSE_GROUP
‎2007 Jun 26 6:20 AM
Hi,
check out the following link it might help you
[Removed by the moderator.]
REPORT ZBDCMMRV.
TABLES: MARV.
Batch Input Name
PARAMETERS P-BTCHSN(12) DEFAULT 'MMRVCHANGE'.
Company Code
PARAMETERS P-BUKRS LIKE MARV-BUKRS.
Auto / Manual run the Batch Input Program
PARAMETERS P-RUN AS CHECKBOX DEFAULT 'X'.
INTERNAL TABLE FOR DATA
DATA: BEGIN OF ULTAB OCCURS 50,
BUKRS LIKE MARV-BUKRS, "Company Code
END OF ULTAB.
INTERNAL TABLE FOR BATCH INPUT DATA
DATA: BEGIN OF IPUTTAB OCCURS 50.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF IPUTTAB.
INTERNAL TABLE FOR BATCH INPUT ERROR MESSAGE.
DATA: BEGIN OF MESSTAB OCCURS 50.
INCLUDE STRUCTURE BDCMSGCOLL.
DATA: END OF MESSTAB.
DATA: C_TAXKM LIKE MG03STEUER-TAXKM VALUE '1',
W-LINE-NO TYPE I.
REFRESH ULTAB.
SELECT * FROM MARV WHERE BUKRS = P-BUKRS.
ULTAB-BUKRS = MARV-BUKRS.
APPEND ULTAB.
ENDSELECT.
CHECK WHETHER TABLE IS EMPTY
IF ULTAB[] is initial.
WRITE: / 'TABLE EMPTY'.
ENDIF.
Create Batch session
PERFORM CRE-BATCH-SESS.
LOOP TABLE TO CREATE SCREEN INPUT
SORT.
LOOP AT ULTAB.
REFRESH IPUTTAB.
PERFORM SCREEN1.
PERFORM SCREEN2.
PERFORM PRN_ULTAB.
PERFORM CLOSE-SESS.
ENDLOOP.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
END OF MAIN PROGRAM
FORM SCREEN1.
SCREEN #1: INITAL SCREEN FOR MAINTAINING SOURCE LIST
CLEAR IPUTTAB.
IPUTTAB-PROGRAM = 'SAPMM03Y'.
IPUTTAB-DYNPRO = '100'.
IPUTTAB-DYNBEGIN = 'X'.
APPEND IPUTTAB.
MMRV ENQUIRY BY COMPANY CODE
CLEAR IPUTTAB.
IPUTTAB-FNAM = 'MARV-BUKRS'.
IPUTTAB-FVAL = ULTAB-BUKRS.
APPEND IPUTTAB.
ENDFORM.
***********************************************************************
FORM : SCREEN1 *
***********************************************************************
FORM SCREEN2.
MODIFY SCREEN IN MMRV
CLEAR IPUTTAB.
IPUTTAB-PROGRAM = 'SAPMM03Y'.
IPUTTAB-DYNPRO = '110'.
IPUTTAB-DYNBEGIN = 'X'.
APPEND IPUTTAB.
UNTICK ALLOWED POSTING TO PREVIOUS PERIOD
CLEAR IPUTTAB.
IPUTTAB-FNAM = 'MARV-XRUEM'.
IPUTTAB-FVAL = ' '.
APPEND IPUTTAB.
DISALLOWED BACKPOSTING GENERALLY
CLEAR IPUTTAB.
IPUTTAB-FNAM = 'MARV-XRUEV'.
IPUTTAB-FVAL = 'X'.
APPEND IPUTTAB.
Specify that we are now done with this screen (Save it with F11)
CLEAR IPUTTAB.
IPUTTAB-FNAM = 'BDC_OKCODE'.
IPUTTAB-FVAL = '/11'.
APPEND IPUTTAB.
ENDFORM.
***********************************************************************
FORM : CLOSE-SESS *
DESCRIPTION : CLOSE THE SESSION *
***********************************************************************
FORM CLOSE-SESS.
closing the session.
IF P-RUN = 'X'.
Auto run the Batch Input Program
CALL TRANSACTION 'MMRV'
USING IPUTTAB
MODE 'E'
UPDATE 'S'
MESSAGES INTO MESSTAB.
ELSE.
Maual run the Batch Input Program
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'MMRV'
TABLES
DYNPROTAB = IPUTTAB.
ENDIF.
ENDFORM.
***********************************************************************
FORM : PRN-ULTAB *
DESCRIPTION : PRINT OK TABLE *
***********************************************************************
FORM PRN_ULTAB.
WRITE: / ULTAB-BUKRS.
W-LINE-NO = W-LINE-NO + 1.
WRITE: ' RECORD# ', W-LINE-NO.
ENDFORM.
***********************************************************************
FORM : CRE-BATCH-SESS *
DESCRIPTION : CREATE BATCH SESSION *
***********************************************************************
FORM CRE-BATCH-SESS.
Create BTCI session **
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = P-BTCHSN
USER = SY-UNAME
KEEP = 'X'.
ENDFORM.
**********please reward points if the information is helpful to you*************
‎2007 Jun 26 6:20 AM
Hi,
check out the following link it might help you
[Removed by the moderator.]
REPORT ZBDCMMRV.
TABLES: MARV.
Batch Input Name
PARAMETERS P-BTCHSN(12) DEFAULT 'MMRVCHANGE'.
Company Code
PARAMETERS P-BUKRS LIKE MARV-BUKRS.
Auto / Manual run the Batch Input Program
PARAMETERS P-RUN AS CHECKBOX DEFAULT 'X'.
INTERNAL TABLE FOR DATA
DATA: BEGIN OF ULTAB OCCURS 50,
BUKRS LIKE MARV-BUKRS, "Company Code
END OF ULTAB.
INTERNAL TABLE FOR BATCH INPUT DATA
DATA: BEGIN OF IPUTTAB OCCURS 50.
INCLUDE STRUCTURE BDCDATA.
DATA: END OF IPUTTAB.
INTERNAL TABLE FOR BATCH INPUT ERROR MESSAGE.
DATA: BEGIN OF MESSTAB OCCURS 50.
INCLUDE STRUCTURE BDCMSGCOLL.
DATA: END OF MESSTAB.
DATA: C_TAXKM LIKE MG03STEUER-TAXKM VALUE '1',
W-LINE-NO TYPE I.
REFRESH ULTAB.
SELECT * FROM MARV WHERE BUKRS = P-BUKRS.
ULTAB-BUKRS = MARV-BUKRS.
APPEND ULTAB.
ENDSELECT.
CHECK WHETHER TABLE IS EMPTY
IF ULTAB[] is initial.
WRITE: / 'TABLE EMPTY'.
ENDIF.
Create Batch session
PERFORM CRE-BATCH-SESS.
LOOP TABLE TO CREATE SCREEN INPUT
SORT.
LOOP AT ULTAB.
REFRESH IPUTTAB.
PERFORM SCREEN1.
PERFORM SCREEN2.
PERFORM PRN_ULTAB.
PERFORM CLOSE-SESS.
ENDLOOP.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
END OF MAIN PROGRAM
FORM SCREEN1.
SCREEN #1: INITAL SCREEN FOR MAINTAINING SOURCE LIST
CLEAR IPUTTAB.
IPUTTAB-PROGRAM = 'SAPMM03Y'.
IPUTTAB-DYNPRO = '100'.
IPUTTAB-DYNBEGIN = 'X'.
APPEND IPUTTAB.
MMRV ENQUIRY BY COMPANY CODE
CLEAR IPUTTAB.
IPUTTAB-FNAM = 'MARV-BUKRS'.
IPUTTAB-FVAL = ULTAB-BUKRS.
APPEND IPUTTAB.
ENDFORM.
***********************************************************************
FORM : SCREEN1 *
***********************************************************************
FORM SCREEN2.
MODIFY SCREEN IN MMRV
CLEAR IPUTTAB.
IPUTTAB-PROGRAM = 'SAPMM03Y'.
IPUTTAB-DYNPRO = '110'.
IPUTTAB-DYNBEGIN = 'X'.
APPEND IPUTTAB.
UNTICK ALLOWED POSTING TO PREVIOUS PERIOD
CLEAR IPUTTAB.
IPUTTAB-FNAM = 'MARV-XRUEM'.
IPUTTAB-FVAL = ' '.
APPEND IPUTTAB.
DISALLOWED BACKPOSTING GENERALLY
CLEAR IPUTTAB.
IPUTTAB-FNAM = 'MARV-XRUEV'.
IPUTTAB-FVAL = 'X'.
APPEND IPUTTAB.
Specify that we are now done with this screen (Save it with F11)
CLEAR IPUTTAB.
IPUTTAB-FNAM = 'BDC_OKCODE'.
IPUTTAB-FVAL = '/11'.
APPEND IPUTTAB.
ENDFORM.
***********************************************************************
FORM : CLOSE-SESS *
DESCRIPTION : CLOSE THE SESSION *
***********************************************************************
FORM CLOSE-SESS.
closing the session.
IF P-RUN = 'X'.
Auto run the Batch Input Program
CALL TRANSACTION 'MMRV'
USING IPUTTAB
MODE 'E'
UPDATE 'S'
MESSAGES INTO MESSTAB.
ELSE.
Maual run the Batch Input Program
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'MMRV'
TABLES
DYNPROTAB = IPUTTAB.
ENDIF.
ENDFORM.
***********************************************************************
FORM : PRN-ULTAB *
DESCRIPTION : PRINT OK TABLE *
***********************************************************************
FORM PRN_ULTAB.
WRITE: / ULTAB-BUKRS.
W-LINE-NO = W-LINE-NO + 1.
WRITE: ' RECORD# ', W-LINE-NO.
ENDFORM.
***********************************************************************
FORM : CRE-BATCH-SESS *
DESCRIPTION : CREATE BATCH SESSION *
***********************************************************************
FORM CRE-BATCH-SESS.
Create BTCI session **
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = P-BTCHSN
USER = SY-UNAME
KEEP = 'X'.
ENDFORM.
**********please reward points if the information is helpful to you*************
‎2007 Jun 26 6:22 AM
hi,
check the code.....
REPORT ZMM016
NO STANDARD PAGE HEADING LINE-SIZE 255.
&----
*& Internal Table Declaration
&----
DATA: BEGIN OF ITAB OCCURS 0,
MATNR(10),
LIFNR(10),
IDNLF(35), "Article Number Used by Vendor
END OF ITAB.
&----
*& Data Declaration
&----
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
----
Selection Screen
----
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT_001.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(20) TEXT_1_1.
PARAMETERS: P_FILE LIKE RLGRAP-FILENAME.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
----
Initialization Event
----
INITIALIZATION.
TEXT_001 = 'File path selection'.
TEXT_1_1 = 'File Path'.
----
At Selection Screen Event
----
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = P_FILE.
&----
*& Start of Selection
&----
START-OF-SELECTION.
PERFORM DATA_UPLOAD.
IF ITAB[] IS NOT INITIAL.
PERFORM OPEN_GROUP.
REFRESH BDCDATA.
PERFORM BDCDATA.
PERFORM CLOSE_GROUP.
ENDIF.
&----
*& Form BDCDATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDCDATA .
LOOP AT ITAB.
REFRESH BDCDATA.
PERFORM BDC_DYNPRO USING 'SAPLMGMW' '0100'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(03)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RMMW1-MATNR'
ITAB-MATNR.
PERFORM BDC_FIELD USING 'RMMW1-EKORG'
'1000'.
PERFORM BDC_FIELD USING 'RMMW1-LIFNR'
ITAB-LIFNR.
PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(03)'
'X'.
PERFORM BDC_DYNPRO USING 'SAPLMGMW' '4000'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_FIELD USING 'EINA-IDNLF'
ITAB-IDNLF.
PERFORM BDC_INSERT.
ENDLOOP.
ENDFORM. " BDCDATA
&----
*& Form DATA_UPLOAD
&----
text
----
--> p1 text
<-- p2 text
----
FORM DATA_UPLOAD.
DATA: LOC_FILENAME TYPE STRING.
LOC_FILENAME = P_FILE.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = LOC_FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = ITAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17.
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. " DATA_UPLOAD
&----
*& Form BDC_INSERT
&----
text
----
--> p1 text
<-- p2 text
----
FORM BDC_INSERT .
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = 'MM42'
TABLES
DYNPROTAB = BDCDATA.
ENDFORM. " BDC_INSERT
&----
*& Form CLOSE_GROUP
&----
text
----
--> p1 text
<-- p2 text
----
FORM CLOSE_GROUP .
CALL FUNCTION 'BDC_CLOSE_GROUP'.
CALL TRANSACTION 'SM35'.
ENDFORM. " CLOSE_GROUP
&----
*& Form OPEN_GROUP
&----
text
----
--> p1 text
<-- p2 text
----
FORM OPEN_GROUP .
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = 'MM42_PUR'
USER = SY-UNAME
KEEP = 'X'.
ENDFORM. " OPEN_GROUP
----
Start new screen *
----
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
----
Insert field *
----
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
Reward points if helpful,
Regards,
Imran
‎2007 Jun 26 6:31 AM
HI
refer this code.
REPORT zmmat_mast
NO STANDARD PAGE HEADING LINE-SIZE 200.
----
*Programmer : Niraj Visnoi *
[Removed by the moderator.]
----
TABLES :mara, marc.
----
INTERNAL TABLES *
----
DATA: BEGIN OF bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdcdata.
DATA:BEGIN OF itab_basic OCCURS 0,
matnr LIKE mara-matnr,
zzmatnr LIKE mara-matnr,
END OF itab_basic.
DATA:BEGIN OF itab_mrp OCCURS 0,
matnr LIKE mara-matnr,
werks LIKE marc-werks,
zzgpind LIKE marc-zzgpind,
zzdate(10) type C ,
END OF itab_mrp.
DATA: BEGIN OF tab_mara OCCURS 0.
INCLUDE STRUCTURE mara.
DATA: END OF tab_mara.
DATA: BEGIN OF tab_marc OCCURS 0.
INCLUDE STRUCTURE marc.
DATA: END OF tab_marc.
DATA: ertab_basic LIKE itab_basic OCCURS 0 WITH HEADER LINE.
DATA: ertab_mrp LIKE itab_mrp OCCURS 0 WITH HEADER LINE.
DATA : v_ctr TYPE i VALUE 1. "Ctr for no orecords
DATA : v_group(12) . "BDC Group Name
DATA : v_group_ctr(3) TYPE n . "BDC Group Counter
DATA : v_no_lines TYPE i.
DATA: v_grpname(10) TYPE c.
SELECTION-SCREEN BEGIN OF BLOCK dt-entry
WITH FRAME TITLE text-002.
selection-screen begin of line .
selection-screen comment 01(49) text-101.
parameters : p_basic radiobutton group r1.
selection-screen end of line.
selection-screen begin of line .
selection-screen comment 01(49) text-102.
parameters : p_mrp2 radiobutton group r1.
selection-screen end of line.
*
*PARAMETERS :
p_basic RADIOBUTTON GROUP r1,
p_mrp2 RADIOBUTTON GROUP r1.
SELECTION-SCREEN END OF BLOCK dt-entry.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK fl-info
WITH FRAME TITLE text-003.
PARAMETER : p_dlhead AS CHECKBOX . "DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK fl-info.
*
SELECTION-SCREEN SKIP 1.
PARAMETER : p_max TYPE i DEFAULT '5000' . "No of rec / session
SET PF-STATUS 'UPLOAD'.
AT USER-COMMAND .
IF sy-ucomm = 'UPLOAD' .
IF p_basic = 'X'.
IF NOT itab_basic[] IS INITIAL .
PERFORM bdc_upload_basic.
ENDIF.
WRITE:/10 'Please execute the session in SM35 to Upload the data'.
FORMAT INTENSIFIED OFF COLOR OFF .
REFRESH itab_basic . CLEAR itab_basic .
SET PF-STATUS space.
ENDIF.
IF p_mrp2 = 'X'.
IF NOT itab_mrp[] IS INITIAL .
PERFORM bdc_upload_mrp.
ENDIF..
WRITE:/10 'Please execute the session in SM35 to Upload the data'.
REFRESH itab_mrp . CLEAR itab_mrp .
SET PF-STATUS space.
ENDIF.
ENDIF.
START-OF-SELECTION.
IF p_basic = 'X'.
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = ' '
filename = 'C:\mm02_basic.txt '
filetype = 'DAT'
TABLES
data_tab = itab_basic.
IF p_dlhead EQ 'X'.
READ TABLE itab_basic INDEX 1.
DELETE itab_basic INDEX 1.
CLEAR itab_basic.
ENDIF.
PERFORM blank_data_validation.
ENDIF.
IF p_mrp2 = 'X'.
v_grpname = 'MRP2'.
CALL FUNCTION 'UPLOAD'
EXPORTING
CODEPAGE = ' '
filename = 'C:\mm02_mrp.txt '
filetype = 'DAT'
TABLES
data_tab = itab_mrp.
IF p_dlhead EQ 'X'.
READ TABLE itab_mrp INDEX 1.
DELETE itab_mrp INDEX 1.
CLEAR itab_mrp.
ENDIF.
PERFORM valid_plant_check.
ENDIF.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
PERFORM display_data.
END-OF-SELECTION.
*----
*
Start new screen
*
*----
*
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM.
*----
*
Insert field
*
*----
*
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM.
&----
*& Form blank_data_validation
&----
text
----
--> p1 text
<-- p2 text
----
FORM blank_data_validation.
LOOP AT itab_basic.
IF itab_basic-matnr IS INITIAL OR itab_basic-zzmatnr IS INITIAL.
MOVE-CORRESPONDING itab_basic TO ertab_basic .
APPEND ertab_basic . CLEAR ertab_basic .
DELETE itab_basic.
CLEAR itab_basic.
CONTINUE.
ENDIF.
SELECT SINGLE * INTO tab_mara FROM mara WHERE matnr = itab_basic-matnr
.
IF sy-subrc <> 0.
MOVE-CORRESPONDING itab_basic TO ertab_basic .
APPEND ertab_basic . CLEAR ertab_basic .
DELETE itab_basic.
CLEAR itab_basic.
CONTINUE.
ENDIF.
*
ENDLOOP.
ENDFORM. " dt_qty_validation
&----
*& Form CALL_BDC_CLOSE_GROUP
&----
text
----
--> p1 text
<-- p2 text
----
FORM call_bdc_close_group.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
not_open = 1
queue_error = 2.
IF sy-subrc NE 0.
WRITE: /5 'BDC CLOSE GROUP FAILED, return code = ', sy-subrc.
EXIT.
ENDIF.
ENDFORM. " CALL_BDC_CLOSE_GROUP
&----
*& Form CALL_BDC_INSERT
&----
text
----
-->P_0545 text
----
FORM call_bdc_insert USING v_tran_code.
DATA: xmode VALUE 'E'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
tcode = v_tran_code
TABLES
dynprotab = bdcdata
EXCEPTIONS
internal_error = 1
not_open = 2
queue_error = 3.
IF sy-subrc NE 0.
WRITE: /5 'BDC insert GROUP FAILED, return code = ', sy-subrc.
EXIT.
ENDIF.
ENDFORM. " CALL_BDC_INSERT
&----
*& Form display_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_data.
WRITE:/ 'Press','''Upload''',
'to create session with the following records'.
IF p_basic = 'X'.
PERFORM display_header.
FORMAT COLOR 2.
LOOP AT itab_basic.
WRITE :/2 itab_basic-matnr,'|',
23 itab_basic-zzmatnr,
54 '|'.
ENDIF.
ENDLOOP.
NEW-LINE.
ULINE (54).
ENDIF.
IF p_mrp2 = 'X'.
PERFORM display_header_mrp.
FORMAT COLOR 2.
LOOP AT itab_mrp.
WRITE :/2 itab_mrp-matnr,'|',
23 itab_mrp-werks,
33 '|',
37 itab_mrp-zzgpind,
49 '|',
52 itab_mrp-ZZDATE,
65 '|'.
ENDLOOP.
NEW-LINE.
ULINE (65).
FORMAT COLOR OFF.
SKIP 4.
WRITE 😕 'Records with Errors will not be Included in Session' .
PERFORM display_header_mrp.
FORMAT COLOR 2.
LOOP AT ertab_mrp.
IF NOT ertab_mrp IS INITIAL OR NOT ertab_mrp-matnr IS INITIAL.
WRITE :/2 ertab_mrp-matnr ,'|',
23 ertab_mrp-werks,
33 '|',
37 ertab_mrp-zzgpind,
49 '|' ,
52 ertab_mrp-zzdate,
65 '|'.
ENDIF.
ENDLOOP.
NEW-LINE.
ULINE (65).
ENDIF.
FORMAT COLOR OFF.
ENDFORM. " display_data
&----
*& Form BDC_UPLOAD_basic
&----
text
----
--> p1 text
<-- p2 text
----
FORM bdc_upload_basic.
*CLEAR itab_basic. REFRESH itab_basic.
CLEAR : v_ctr , v_no_lines .
IF NOT itab_basic[] IS INITIAL .
v_group_ctr = '1' .
CONCATENATE 'BASIC_' v_group_ctr INTO v_group .
PERFORM open_group USING v_group .
LOOP AT itab_basic .
IF v_ctr GE p_max .
PERFORM call_bdc_close_group .
v_group_ctr = v_group_ctr + 1 .
CLEAR v_group .
CONCATENATE 'BASIC_' v_group_ctr INTO v_group .
PERFORM open_group USING v_group .
v_ctr = 0 .
ENDIF.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RMMG1-MATNR'
itab_basic-matnr.
'DEEPAKTESTMAT'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(01)'
'X'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '4004'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARA-ZZMATNR'.
PERFORM bdc_field USING 'MARA-ZZMATNR'
itab_basic-zzmatnr.
'ADV#AM29F010-70JI'.
PERFORM call_bdc_insert USING 'MM02'.
CLEAR bdcdata . REFRESH bdcdata .
v_no_lines = v_no_lines + 1 .
v_ctr = v_ctr + 1.
ENDLOOP.
PERFORM call_bdc_close_group.
SKIP 10.
WRITE :/10 'Session by name BASIC* created' .
WRITE :/10 'Total No of records uploaded - ' , v_no_lines .
ENDIF.
ENDFORM. " BDC_UPLOAD
&----
*& Form display_header
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_header.
NEW-LINE.
set left scroll-boundary column 48.
FORMAT COLOR 1 INTENSIFIED ON.
ULINE (54).
WRITE :/' Avnet Material',
21'|' ,
23 'Green Product '
, 54 '|'.
NEW-LINE.
ULINE (54).
FORMAT COLOR OFF INTENSIFIED OFF.
ENDFORM.
&----
*& Form bdc_upload_mrp
&----
text
----
--> p1 text
<-- p2 text
----
FORM bdc_upload_mrp.
PERFORM call_bdc_open_group2.
CLEAR : v_ctr , v_no_lines .
IF NOT itab_mrp[] IS INITIAL .
v_group_ctr = '1' .
CONCATENATE 'MRP_' v_group_ctr INTO v_group .
PERFORM open_group USING v_group .
LOOP AT itab_mrp .
IF v_ctr GE p_max .
PERFORM call_bdc_close_group .
v_group_ctr = v_group_ctr + 1 .
CLEAR v_group .
CONCATENATE 'MRP2_' v_group_ctr INTO v_group .
PERFORM open_group USING v_group .
v_ctr = 0 .
ENDIF.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0060'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RMMG1-MATNR'
itab_mrp-matnr.
'DEEPAKTESTMAT'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0070'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(13)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'MSICHTAUSW-KZSEL(13)'
'X'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '0080'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RMMG1-WERKS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_field USING 'RMMG1-WERKS'
itab_mrp-werks.
'sg11'.
PERFORM bdc_dynpro USING 'SAPLMGMM' '4000'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARC-ZZGPIND'.
PERFORM bdc_field USING 'MARC-ZZGPIND'
itab_mrp-zzgpind.
'G'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARC-ZZDATE'.
PERFORM bdc_field USING 'MARC-ZZDATE'
itab_mrp-zzdate.
'G'.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
PERFORM call_bdc_insert USING 'MM02'.
CLEAR bdcdata . REFRESH bdcdata .
v_no_lines = v_no_lines + 1 .
v_ctr = v_ctr + 1.
ENDLOOP.
PERFORM call_bdc_close_group.
SKIP 10.
WRITE :/10 'Session by name MRP2* created' .
WRITE :/10 'Total No of records uploaded - ' , v_no_lines .
ENDIF.
ENDFORM. " bdc_upload_mrp
&----
*& Form display_header_mrp
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_header_mrp.
NEW-LINE.
set left scroll-boundary column 48.
FORMAT COLOR 1 INTENSIFIED ON.
ULINE (65).
WRITE :/' Avnet Material',
21'|' ,
23 'Plant ' ,
33 '|',
35 'Indicator',
49 '|',
52 'Date',
65 '|' .
NEW-LINE.
ULINE (65).
FORMAT COLOR OFF INTENSIFIED OFF.
ENDFORM. " display_header_mrp
&----
*& Form valid_plant_check
&----
text
----
--> p1 text
<-- p2 text
----
FORM valid_plant_check.
LOOP AT itab_mrp.
IF itab_mrp-matnr IS INITIAL OR itab_mrp-werks IS INITIAL OR
itab_mrp-zzgpind IS INITIAL.
MOVE-CORRESPONDING itab_mrp TO ertab_mrp .
APPEND ertab_mrp . CLEAR ertab_mrp .
DELETE itab_mrp.
CLEAR itab_mrp.
CONTINUE.
ENDIF.
SELECT SINGLE * INTO tab_marc FROM marc WHERE matnr = tab_marc-matnr
AND werks = itab_mrp-werks . .
IF sy-subrc = 0.
MOVE-CORRESPONDING itab_mrp TO ertab_mrp .
APPEND ertab_mrp . CLEAR ertab_mrp .
DELETE itab_mrp.
CLEAR itab_mrp.
CONTINUE.
ENDIF.
ENDLOOP.
ENDFORM. " valid_plant_check
----
FORM open_group *
----
........ *
----
FORM open_group USING p_grp .
open batchinput group
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = p_grp
user = sy-uname
keep = 'X'.
ENDFORM.
rewards all helpfull answers.
regards.
jay