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 for tcode ca02 routing material assignment

Former Member
0 Likes
822

hi experts,

I need to develop bdc for CA02 routing material assignment using table control, can any one please provide me an sample object for developing .

thanks in advance

malini

2 REPLIES 2
Read only

Former Member
0 Likes
495

hi,

Sample code for BDC data uploading for 'CrQ1' transaction.

Check if this is helpful to u;

Rewards points if it is useful for u...........

REPORT z_minforecord

NO STANDARD PAGE HEADING LINE-SIZE 255.

*INCLUDE bdcrecx1.

TABLES: T100.

DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

                            • messages of call transaction**********************

DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

*Internal table declaration

DATA:BEGIN OF it_inforecord OCCURS 0,

lifnr LIKE eina-lifnr,

matnr LIKE eina-matnr,

ekorg LIKE eine-ekorg,

werks LIKE eine-werks,

aplfz TYPE n LENGTH 3,

norbm TYPE c LENGTH 13,

netpr TYPE c LENGTH 13,

ekgrp LIKE eine-ekgrp,

angnr LIKE eine-angnr,

angdt(10) type c, " LIKE eine-angdt,

END OF it_inforecord.

DATA : it_data TYPE TABLE OF alsmex_tabline INITIAL SIZE 0,

wa_data TYPE alsmex_tabline,

wa_inforecord LIKE LINE OF it_inforecord,

v_meins LIKE eina-meins,

v_meins1 LIKE eine-bprme.

PARAMETERS: p_file TYPE rlgrap-filename.

*at selection screen

*F4 help for file

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

field_name = 'P_FILE'

IMPORTING

file_name = p_file.

START-OF-SELECTION.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

EXPORTING

filename = p_file

i_begin_col = 3

i_begin_row = 9

i_end_col = 13

i_end_row = 9999

TABLES

intern = it_data

EXCEPTIONS

inconsistent_parameters = 1

upload_ole = 2

OTHERS = 3.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

*Move the data read from the file to the internal table

LOOP AT it_data INTO wa_data.

AT NEW row.

CLEAR wa_inforecord.

ENDAT.

CASE wa_data-col.

WHEN '001'.

MOVE wa_data-value TO wa_inforecord-lifnr.

WHEN '002'.

MOVE wa_data-value TO wa_inforecord-matnr.

WHEN '003'.

MOVE wa_data-value TO wa_inforecord-ekorg.

WHEN '004'.

MOVE wa_data-value TO wa_inforecord-werks.

WHEN '006'.

MOVE wa_data-value TO wa_inforecord-aplfz.

WHEN '007'.

MOVE wa_data-value TO wa_inforecord-norbm.

WHEN '008'.

MOVE wa_data-value TO wa_inforecord-netpr.

WHEN '009'.

MOVE wa_data-value TO wa_inforecord-ekgrp.

WHEN '010'.

MOVE wa_data-value TO wa_inforecord-angnr.

WHEN '011'.

MOVE wa_data-value TO wa_inforecord-angdt.

ENDCASE.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = wa_inforecord-ekgrp

IMPORTING

output = wa_inforecord-ekgrp.

  • CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

  • EXPORTING

  • input = v_angdt

  • IMPORTING

  • output = wa_inforecord-angdt.

AT END OF row.

APPEND wa_inforecord TO it_inforecord.

ENDAT.

CLEAR : wa_data.

  • CLEAR : v_angdt.

ENDLOOP.

  • PERFORM open_group.

LOOP AT it_inforecord.

READ TABLE it_inforecord INTO wa_inforecord.

IF sy-subrc = 0.

SELECT meins

FROM eina

INTO v_meins

WHERE matnr = wa_inforecord-matnr

AND lifnr = wa_inforecord-lifnr.

ENDSELECT.

ENDIF.

PERFORM bdc_dynpro USING 'SAPMM06I' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EINA-MATNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'EINA-LIFNR'

it_inforecord-lifnr.

PERFORM bdc_field USING 'EINA-MATNR'

it_inforecord-matnr.

PERFORM bdc_field USING 'EINE-EKORG'

it_inforecord-ekorg.

PERFORM bdc_field USING 'EINE-WERKS'

it_inforecord-werks.

PERFORM bdc_field USING 'RM06I-NORMB'

'X'.

PERFORM bdc_dynpro USING 'SAPMM06I' '0101'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EINA-MAHN1'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_dynpro USING 'SAPMM06I' '0102'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EINE-NETPR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'EINE-APLFZ'

it_inforecord-aplfz.

PERFORM bdc_field USING 'EINE-EKGRP'

it_inforecord-ekgrp.

PERFORM bdc_field USING 'EINE-NORBM'

it_inforecord-norbm.

PERFORM bdc_field USING 'EINE-NETPR'

it_inforecord-netpr.

PERFORM bdc_dynpro USING 'SAPMM06I' '0105'.

PERFORM bdc_field USING 'BDC_CURSOR'

'EINE-ANGDT'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'EINE-ANGNR'

it_inforecord-angnr.

if it_inforecord-angdt NE '0000000000'.

PERFORM bdc_field USING 'EINE-ANGDT'

it_inforecord-angdt.

Endif.

PERFORM bdc_dynpro USING 'SAPMM06I' '0103'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RM06I-LTEX1(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0100'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

PERFORM bdc_transaction USING 'ME11'.

CLEAR v_meins.

CLEAR v_meins1.

ENDLOOP.

  • PERFORM close_group.

----


  • open dataset *

----


FORM OPEN_DATASET USING P_DATASET.

OPEN DATASET P_DATASET

FOR INPUT IN TEXT MODE

ENCODING DEFAULT.

IF SY-SUBRC <> 0.

WRITE: / TEXT-E00, SY-SUBRC.

STOP.

ENDIF.

ENDFORM.

----


  • close dataset *

----


FORM CLOSE_DATASET USING P_DATASET.

CLOSE DATASET P_DATASET.

ENDFORM.

----


  • create batchinput session *

  • (not for call transaction using...) *

*----


*FORM OPEN_GROUP.

  • IF SESSION = 'X'.

  • SKIP.

  • WRITE: /(20) 'Create group'(I01), GROUP.

  • SKIP.

    • open batchinput group

  • CALL FUNCTION 'BDC_OPEN_GROUP'

  • EXPORTING CLIENT = SY-MANDT

  • GROUP = GROUP

  • USER = USER

  • KEEP = KEEP

  • HOLDDATE = HOLDDATE.

  • WRITE: /(30) 'BDC_OPEN_GROUP'(I02),

  • (12) 'returncode:'(I05),

  • SY-SUBRC.

  • ENDIF.

*ENDFORM.

----


  • end batchinput session *

  • (call transaction using...: error session) *

*----


*FORM CLOSE_GROUP.

  • IF SESSION = 'X'.

    • close batchinput group

  • CALL FUNCTION 'BDC_CLOSE_GROUP'.

  • WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),

  • (12) 'returncode:'(I05),

  • SY-SUBRC.

  • ELSE.

  • IF E_GROUP_OPENED = 'X'.

  • CALL FUNCTION 'BDC_CLOSE_GROUP'.

  • WRITE: /.

  • WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).

  • E_GROUP_OPENED = ' '.

  • ENDIF.

  • ENDIF.

*ENDFORM.

----


  • Start new transaction according to parameters *

----


FORM BDC_TRANSACTION USING TCODE.

DATA: L_MSTRING(480).

DATA: L_SUBRC LIKE SY-SUBRC.

  • batch input session

  • IF SESSION = 'X'.

  • CALL FUNCTION 'BDC_INSERT'

  • EXPORTING TCODE = TCODE

  • TABLES DYNPROTAB = BDCDATA.

  • IF SMALLLOG <> 'X'.

  • WRITE: / 'BDC_INSERT'(I03),

  • TCODE,

  • 'returncode:'(I05),

  • SY-SUBRC,

  • 'RECORD:',

  • SY-INDEX.

  • ENDIF.

  • call transaction using

  • ELSE.

REFRESH MESSTAB.

CALL TRANSACTION TCODE USING BDCDATA

MODE 'A'

UPDATE 'A'

MESSAGES INTO MESSTAB.

L_SUBRC = SY-SUBRC.

  • IF SMALLLOG <> 'X'.

WRITE: / 'CALL_TRANSACTION',

TCODE,

'returncode:'(I05),

L_SUBRC,

'RECORD:',

SY-INDEX.

LOOP AT MESSTAB.

SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA

AND ARBGB = MESSTAB-MSGID

AND MSGNR = MESSTAB-MSGNR.

IF SY-SUBRC = 0.

L_MSTRING = T100-TEXT.

IF L_MSTRING CS '&1'.

REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING.

REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING.

REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING.

REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING.

ELSE.

REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING.

REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING.

ENDIF.

CONDENSE L_MSTRING.

WRITE: / MESSTAB-MSGTYP, L_MSTRING(250).

ELSE.

WRITE: / MESSTAB.

ENDIF.

ENDLOOP.

  • SKIP.

  • ENDIF.

      • Erzeugen fehlermappe ************************************************

  • IF L_SUBRC <> 0 AND E_GROUP <> SPACE.

  • IF E_GROUP_OPENED = ' '.

  • CALL FUNCTION 'BDC_OPEN_GROUP'

  • EXPORTING CLIENT = SY-MANDT

  • GROUP = E_GROUP

  • USER = E_USER

  • KEEP = E_KEEP

  • HOLDDATE = E_HDATE.

  • E_GROUP_OPENED = 'X'.

  • ENDIF.

  • CALL FUNCTION 'BDC_INSERT'

  • EXPORTING TCODE = TCODE

  • TABLES DYNPROTAB = BDCDATA.

  • ENDIF.

    • ENDIF.

REFRESH BDCDATA.

ENDFORM.

----


  • 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.

  • IF FVAL <> NODATA.

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

  • ENDIF.

ENDFORM.

Read only

0 Likes
495

hi

thanks for your response, but its not matching my requirements

regards

malini