Application Development and Automation 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: 
Read only

BDC-CODING

Former Member
0 Likes
818

hi

please send me sample coding and steps for BDC

1.BDC_OPEN_GROUP

2.BDC_INSERT

3.BDC_CLOSE_GROUP

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
581

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*************

3 REPLIES 3
Read only

Former Member
0 Likes
582

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*************

Read only

Former Member
0 Likes
581

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

Read only

Former Member
0 Likes
581

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