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

Sample code for call transaction and session in bdc

Former Member
0 Likes
2,289

Hi ,

Ima new to abap ,now iam working on BDC please help me out with sample codes on call transaction and session method .

thanks ,

vinay .

4 REPLIES 4
Read only

Former Member
Read only

Former Member
0 Likes
754

Check this code it may help u.

DATA : BEGIN OF it_dummy OCCURS 0,

dummy(100) TYPE c,

END OF it_dummy.

DATA : BEGIN OF it_xk01 OCCURS 0,

lifnr(10) TYPE c,

bukrs(4) TYPE c,

ekorg(4) TYPE c,

ktokk(4) TYPE c,

name1(30) TYPE c,

sortl(10) TYPE c,

land1(3) TYPE c,

spras(2) TYPE c,

akont(6) TYPE c,

fdgrv(2) TYPE c,

waers(3) TYPE c,

END OF it_xk01,

BEGIN OF it_bank OCCURS 0,

banks(3) TYPE c,

bankl(10) TYPE c,

bankn(10) TYPE c,

koinh(30) TYPE c,

lifnr(10) TYPE c,

END OF it_bank.

DATA : it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,

it_bdcmsgcoll LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = 'C:\VENDOR.TXT'

filetype = 'ASC'

TABLES

data_tab = it_dummy.

LOOP AT it_dummy.

IF it_dummy-dummy+0(2) = '11'.

it_xk01-lifnr = it_dummy-dummy+2(10).

it_xk01-bukrs = it_dummy-dummy+12(4).

it_xk01-ekorg = it_dummy-dummy+16(4).

it_xk01-ktokk = it_dummy-dummy+20(4).

it_xk01-name1 = it_dummy-dummy+24(30).

it_xk01-sortl = it_dummy-dummy+54(10).

it_xk01-land1 = it_dummy-dummy+64(3).

it_xk01-spras = it_dummy-dummy+67(2).

it_xk01-akont = it_dummy-dummy+69(6).

it_xk01-fdgrv = it_dummy-dummy+75(2).

it_xk01-waers = it_dummy-dummy+77(3).

APPEND it_xk01.

ELSE.

it_bank-banks = it_dummy-dummy+2(3).

it_bank-bankl = it_dummy-dummy+5(10).

it_bank-bankn = it_dummy-dummy+15(10).

it_bank-koinh = it_dummy-dummy+25(30).

it_bank-lifnr = it_dummy-dummy+55(10).

APPEND it_bank.

ENDIF.

ENDLOOP.

LOOP AT it_xk01.

REFRESH it_bdcdata.

PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RF02K-REF_LIFNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RF02K-LIFNR'

it_xk01-lifnr.

PERFORM bdc_field USING 'RF02K-BUKRS'

it_xk01-bukrs.

PERFORM bdc_field USING 'RF02K-EKORG'

it_xk01-ekorg.

PERFORM bdc_field USING 'RF02K-KTOKK'

it_xk01-ktokk.

PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFA1-TELX1'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'LFA1-NAME1'

it_xk01-name1.

PERFORM bdc_field USING 'LFA1-SORTL'

it_xk01-sortl.

PERFORM bdc_field USING 'LFA1-LAND1'

it_xk01-land1.

PERFORM bdc_field USING 'LFA1-SPRAS'

it_xk01-spras.

PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFA1-KUNNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-KOINH(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

DATA : fnam(20) TYPE c,

idx TYPE c.

MOVE 1 TO idx.

LOOP AT it_bank WHERE lifnr = it_xk01-lifnr.

CONCATENATE 'LFBK-BANKS(' idx ')' INTO fnam.

PERFORM bdc_field USING fnam

it_bank-banks.

CONCATENATE 'LFBK-BANKL(' idx ')' INTO fnam.

PERFORM bdc_field USING fnam

it_bank-bankl.

CONCATENATE 'LFBK-BANKN(' idx ')' INTO fnam.

PERFORM bdc_field USING fnam

it_bank-bankn.

CONCATENATE 'LFBK-KOINH(' idx ')' INTO fnam.

PERFORM bdc_field USING fnam

it_bank-koinh.

idx = idx + 1.

ENDLOOP.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB1-FDGRV'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'LFB1-AKONT'

it_xk01-akont.

PERFORM bdc_field USING 'LFB1-FDGRV'

it_xk01-fdgrv.

PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB1-ZTERM'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFB5-MAHNA'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFM1-WAERS'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'LFM1-WAERS'

it_xk01-waers.

PERFORM bdc_dynpro USING 'SAPMF02K' '0320'.

PERFORM bdc_field USING 'BDC_CURSOR'

'WYT3-PARVW(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

CALL TRANSACTION 'XK01' USING it_bdcdata

MODE 'A'

UPDATE 'S'

MESSAGES INTO it_bdcmsgcoll.

ENDLOOP.

----


  • FORM BDC_DYNPRO *

----


  • ........ *

----


  • --> PROG *

  • --> SCR *

----


FORM bdc_dynpro USING prog scr.

CLEAR it_bdcdata.

it_bdcdata-program = prog.

it_bdcdata-dynpro = scr.

it_bdcdata-dynbegin = 'X'.

APPEND it_bdcdata.

ENDFORM.

----


  • FORM BDC_FIELD *

----


  • ........ *

----


  • --> FNAM *

  • --> FVAL *

----


FORM bdc_field USING fnam fval.

CLEAR it_bdcdata.

it_bdcdata-fnam = fnam.

it_bdcdata-fval = fval.

APPEND it_bdcdata.

ENDFORM.

Regards

Read only

Bema
Active Participant
0 Likes
754

hi,

Do the recording in SHDB.

Follwing sample code is for session method.

HEre the T-code is fD01.

&----


*& Report ZFICP_CUST_MASTER *

*& *

&----


*& *

*& *

&----


REPORT ZFICP_CUST_MASTER MESSAGE-ID ZFI

NO STANDARD PAGE HEADING

LINE-SIZE 225

LINE-COUNT 55.

----


  • FUNCTION MODULES USED------------------------------------------------*

----


  • WS_FILENAME_GET To select file from Presentation Server

  • GUI_UPLOAD To move data from text file to internal table

----


  • INTERNAL TABLES------------------------------------------------------*

----


Data: Begin of i_tab_data occurs 0,

kunnr like kna1-kunnr, "Customer Code

bukrs like knb1-bukrs, "Company Code

ktokd like kna1-ktokd, "Account Group

anred like kna1-anred, "Title

name1 like kna1-name1, "Name1

name2 like kna1-name2, "Name2

name3 like kna1-name3, "Name3

name4 like kna1-name4, "Name4

stras like kna1-stras, "Street

ort01 like kna1-ort01, "City

pstlz like kna1-pstlz, "Postal Code

ort02 like kna1-ort02, "District

land1 like kna1-land1, "Country

sortl like kna1-sortl, "Sort field

spras like KNA1-SPRAS, "Communication Language

akont like knb1-akont, "Reconciliation Account

zuawa like knb1-zuawa, "Sort key

zterm like knb1-zterm, "Payment Term

mahna like KNB5-MAHNA, "Dunning Procedure

xausz like KNB1-XAUSZ, "Indicator for Periodic acct statmnt

End of i_tab_data.

DATA: v_file type string.

----


  • Batchinputdata of single transaction

DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

  • messages of call transaction

DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

  • error session opened (' ' or 'X')

DATA: E_GROUP_OPENED.

  • message texts

TABLES: T100.

----


  • SELECTION SCREEN-----------------------------------------------------*

----


SELECTION-SCREEN: BEGIN OF BLOCK A with FRAME.

PARAMETERS: p_file LIKE rlgrap-filename OBLIGATORY.

PARAMETERS GROUP(12). "group name of session

PARAMETERS: USER(12) DEFAULT SY-UNAME no-display.

"user for session in batch

PARAMETERS: KEEP DEFAULT 'X' no-display.

"' ' = delete session if finished

"'X' = keep session if finished

PARAMETERS: HOLDDATE LIKE SY-DATUM no-display.

PARAMETERS: NODATA DEFAULT '/' LOWER CASE no-display. "nodata

SELECTION-SCREEN: END OF BLOCK A.

----


  • at selection screen *

----


AT SELECTION-SCREEN.

  • group and user must be filled for create session

IF GROUP = SPACE.

MESSAGE E101.

ENDIF.

----


  • AT SELECTION SCREEN on value request --------------------------------*

----


  • to select the file from selection screen

at selection-screen on value-request for P_FILE.

PERFORM F_FILE_SELECT.

start-of-selection.

perform f_upload_data.

perform f_upload_fd01.

perform f_upload_report.

&----


*& Form F_FILE_SELECT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form F_FILE_SELECT .

CALL FUNCTION 'WS_FILENAME_GET'

EXPORTING

  • DEF_FILENAME = 'getfile'

DEF_PATH = 'C:\'

MASK = ',.,..'

IMPORTING

FILENAME = P_FILE

EXCEPTIONS

INV_WINSYS = 1

NO_BATCH = 2

SELECTION_CANCEL = 3

SELECTION_ERROR = 4

OTHERS = 5.

IF SY-SUBRC <> 0.

MESSAGE I115.

ENDIF.

endform. " F_FILE_SELECT

&----


*& Form f_upload_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f_upload_data .

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

  • CODEPAGE = ' '

FILENAME = p_file

FILETYPE = 'DAT'

  • HEADLEN = ' '

  • LINE_EXIT = ' '

  • TRUNCLEN = ' '

  • USER_FORM = ' '

  • USER_PROG = ' '

  • DAT_D_FORMAT = ' '

  • IMPORTING

  • FILELENGTH =

TABLES

data_tab = i_tab_data

EXCEPTIONS

CONVERSION_ERROR = 1

FILE_OPEN_ERROR = 2

FILE_READ_ERROR = 3

INVALID_TYPE = 4

NO_BATCH = 5

UNKNOWN_ERROR = 6

INVALID_TABLE_WIDTH = 7

GUI_REFUSE_FILETRANSFER = 8

CUSTOMER_ERROR = 9

NO_AUTHORITY = 10

OTHERS = 11.

IF sy-subrc <> 0.

message e116 with p_file.

ENDIF.

endform. " f_upload_data

&----


*& Form f_upload_fd01

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f_upload_fd01 .

perform open_group.

Loop at i_tab_data.

perform bdc_dynpro using 'SAPMF02D' '0105'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-KTOKD'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

i_tab_data-kunnr.

  • 'FYRC4'.

perform bdc_field using 'RF02D-BUKRS'

i_tab_data-bukrs.

  • '5111'.

perform bdc_field using 'RF02D-KTOKD'

i_tab_data-ktokd.

  • 'Z003'.

perform bdc_dynpro using 'SAPMF02D' '0110'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-SPRAS'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_field using 'KNA1-ANRED'

i_tab_data-anred.

  • 'Mr'.

perform bdc_field using 'KNA1-NAME1'

i_tab_data-name1.

  • 'name1'.

perform bdc_field using 'KNA1-NAME2'

i_tab_data-name2.

  • 'name2'.

perform bdc_field using 'KNA1-NAME3'

i_tab_data-name3.

  • 'name3'.

perform bdc_field using 'KNA1-NAME4'

i_tab_data-name4.

  • 'name4'.

perform bdc_field using 'KNA1-STRAS'

i_tab_data-stras.

  • 'Street'.

perform bdc_field using 'KNA1-ORT01'

i_tab_data-ort01.

  • 'City'.

perform bdc_field using 'KNA1-PSTLZ'

i_tab_data-pstlz.

  • '123456'.

perform bdc_field using 'KNA1-ORT02'

i_tab_data-ort02.

  • 'District'.

perform bdc_field using 'KNA1-LAND1'

i_tab_data-land1.

  • 'CN'.

perform bdc_field using 'KNA1-SORTL'

i_tab_data-sortl.

  • 'NM'.

perform bdc_field using 'KNA1-SPRAS'

i_tab_data-spras.

  • 'EN'.

perform bdc_dynpro using 'SAPMF02D' '0120'.

perform bdc_field using 'BDC_CURSOR'

'KNA1-LIFNR'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_dynpro using 'SAPMF02D' '0130'.

perform bdc_field using 'BDC_CURSOR'

'KNBK-BANKS(01)'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_dynpro using 'SAPMF02D' '0210'.

perform bdc_field using 'BDC_CURSOR'

'KNB1-ZUAWA'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_field using 'KNB1-AKONT'

i_tab_data-akont.

  • '111100000'.

perform bdc_field using 'KNB1-ZUAWA'

i_tab_data-zuawa.

  • '000'.

perform bdc_dynpro using 'SAPMF02D' '0215'.

perform bdc_field using 'BDC_CURSOR'

'KNB1-ZTERM'.

perform bdc_field using 'BDC_OKCODE'

'=VW'.

perform bdc_field using 'KNB1-ZTERM'

i_tab_data-zterm.

  • '0001'.

perform bdc_dynpro using 'SAPMF02D' '0220'.

perform bdc_field using 'BDC_CURSOR'

'KNB1-XAUSZ'.

perform bdc_field using 'BDC_OKCODE'

'=UPDA'.

perform bdc_field using 'KNB5-MAHNA'

i_tab_data-mahna.

  • 'Z001'.

perform bdc_field using 'KNB1-XAUSZ'

i_tab_data-xausz.

  • '2'.

perform bdc_transaction using 'FD01'.

endloop.

perform close_group.

endform. " f_upload_fd01

&----


*& Form f_upload_report

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f_upload_report .

format color COL_TOTAL.

WRITE:/'Report:', sy-repid.

WRITE:40 ' Group Chart of accounts',

80 'Page No:',SY-PAGNO.

WRITE:/'User Id:',sy-uname.

WRITE: 55 'System date/Time:',SY-DATUM,'/',SY-UZEIT.

SKIP 2.

FORMAT COLOR COL_NORMAL.

write:/'Session Name: ',group.

endform. " f_upload_report

----


  • create batchinput session *

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

----


FORM OPEN_GROUP.

  • open batchinput group

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING CLIENT = SY-MANDT

GROUP = GROUP

USER = USER

KEEP = KEEP

HOLDDATE = HOLDDATE.

ENDFORM.

----


  • end batchinput session *

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

----


FORM CLOSE_GROUP.

  • close batchinput group

CALL FUNCTION 'BDC_CLOSE_GROUP'.

WRITE: /(30) 'BDC_CLOSE_GROUP',

(12) 'returncode:',

SY-SUBRC.

ENDFORM.

----


  • Start new transaction according to parameters *

----


FORM BDC_TRANSACTION USING TCODE.

  • batch input session

CALL FUNCTION 'BDC_INSERT'

EXPORTING TCODE = TCODE

TABLES DYNPROTAB = BDCDATA.

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.

Run the session name that you have given in selectionscreen in T-code sm35.

2) check the sample code for Call transaction in the follwing thread.

Read only

Former Member
0 Likes
754

First do recording by Txn SHDB.

Then use methods which u want......

***********For call transaction method

report ZABSALES_ORDER no standard page heading line-size 255.

TABLES: vbak, vbap.

DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF SCREEN 500 AS WINDOW.

SELECTION-SCREEN BEGIN OF BLOCK salesblock WITH FRAME TITLE text-001.

SELECTION-SCREEN SKIP 1.

PARAMETERS : Order_ty LIKE vbak-auart DEFAULT 'OR'

modif id SC1,

Customer LIKE kuagv-kunnr OBLIGATORY VALUE CHECK,

Purchase LIKE vbkd-bstkd OBLIGATORY VALUE CHECK,

Material LIKE vbap-matnr OBLIGATORY VALUE CHECK,

Quantity LIKE rv45a-kwmeng OBLIGATORY VALUE CHECK.

SELECTION-SCREEN END OF BLOCK salesblock.

SELECTION-SCREEN END OF SCREEN 500.

CALL SELECTION-SCREEN 500.

*At selection-screen on Order_ty.

*IF Order_ty <> 'OR'.

  • MESSAGE E080(ZVIKALP).

  • ENDIF.

start-of-selection.

perform bdc_dynpro using 'SAPMV45A' '0101'.

perform bdc_field using 'BDC_CURSOR'

'VBAK-AUART'.

perform bdc_field using 'BDC_OKCODE'

'=UER1'.

perform bdc_field using 'VBAK-AUART'

Order_ty.

perform bdc_dynpro using 'SAPMV45A' '4001'.

perform bdc_field using 'BDC_OKCODE'

'=SICH'.

perform bdc_field using 'VBKD-BSTKD'

Purchase.

perform bdc_field using 'KUAGV-KUNNR'

Customer.

perform bdc_dynpro using 'SAPMSSY0' '0120'.

perform bdc_field using 'BDC_CURSOR'

'04/05'.

perform bdc_field using 'BDC_OKCODE'

'SICH'.

perform bdc_field using 'RV45A-KETDAT'

'06-05-2005'.

perform bdc_field using 'RV45A-KPRGBZ'

'D'.

perform bdc_field using 'VBKD-PRSDT'

'05-29-2005'.

perform bdc_field using 'BDC_CURSOR'

'RV45A-KWMENG(01)'.

perform bdc_field using 'RV45A-MABNR(01)'

Material.

perform bdc_field using 'RV45A-KWMENG(01)'

Quantity.

perform bdc_dynpro using 'SAPLSPO2' '0101'.

perform bdc_field using 'BDC_OKCODE'

'=OPT1'.

CALL TRANSACTION 'VA01' USING bdcdata

MODE 'N'

UPDATE 'A'

MESSAGES INTO messtab.

loop at messtab.

if messtab-msgtyp = 'S'.

FORMAT COLOR 5.

elseif messtab-msgtyp = 'E'.

FORMAT COLOR 6.

ENDIF.

write: / messtab-msgtyp, messtab-msgnr.

endloop.

AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SC1'.

screen-input = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

----


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

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDIF.

ENDFORM.

***********By session method

report ZAB_PURCHASE no standard page heading line-size 255.

tables: ekko, ekpo, t100.

DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.

DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF T_MSG OCCURS 0.

INCLUDE STRUCTURE T100.

DATA: END OF T_MSG.

*include bdcrecx1.

*SELECTION-SCREEN BEGIN OF SCREEN 500 AS WINDOW.

SELECTION-SCREEN BEGIN OF BLOCK salesblock WITH FRAME TITLE text-001.

PARAMETERS : Vendor like Ekko-lifnr OBLIGATORY,

Order_ty like RM06E-BSART obligatory,

Pur_org like ekko-ekorg obligatory value check,

Pur_grp like ekko-ekgrp obligatory value check,

Material like ekpo-ematn obligatory value check,

Quantity(13) type n,

Plant like ekpo-werks obligatory value check.

SELECTION-SCREEN END OF BLOCK salesblock.

*SELECTION-SCREEN END OF SCREEN 500.

*CALL SELECTION-SCREEN 500.

TOP-OF-PAGE.

WRITE :/40 'Creating Purchase Order' COLOR 4 INTENSIFIED ON INVERSE ON

.

ULINE.

FORMAT COLOR 7 INVERSE ON.

WRITE :/1(20) 'Mesaage Type',

25(20) 'Message'.

ULINE.

start-of-selection.

*perform open_group.

perform bdc_dynpro using 'SAPMM06E' '0100'.

perform bdc_field using 'BDC_CURSOR'

'EKKO-EKGRP'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'EKKO-LIFNR'

Vendor.

perform bdc_field using 'RM06E-BSART'

Order_ty.

perform bdc_field using 'RM06E-BEDAT'

'05-30-2005'.

perform bdc_field using 'EKKO-EKORG'

Pur_org.

perform bdc_field using 'EKKO-EKGRP'

Pur_grp.

perform bdc_field using 'RM06E-LPEIN'

'T'.

perform bdc_dynpro using 'SAPMM06E' '0120'.

perform bdc_field using 'BDC_CURSOR'

'EKPO-WERKS(01)'.

perform bdc_field using 'BDC_OKCODE'

'=BU'.

perform bdc_field using 'EKPO-EMATN(01)'

Material.

perform bdc_field using 'EKPO-MENGE(01)'

Quantity.

perform bdc_field using 'EKPO-WERKS(01)'

Plant.

*perform bdc_transaction using 'ME21'.

*CALL TRANSACTION 'ME21' USING BDCDATA

  • MODE 'A'

  • UPDATE 'A'

  • MESSAGES INTO MESSTAB.

CALL FUNCTION 'BDC_OPEN_GROUP'

EXPORTING

CLIENT = SY-MANDT

  • DEST = FILLER8

GROUP = 'ZAP3'

  • HOLDDATE = FILLER8

KEEP = 'X'

USER = SY-UNAME

  • RECORD = FILLER1

  • IMPORTING

  • QID =

  • EXCEPTIONS

  • CLIENT_INVALID = 1

  • DESTINATION_INVALID = 2

  • GROUP_INVALID = 3

  • GROUP_IS_LOCKED = 4

  • HOLDDATE_INVALID = 5

  • INTERNAL_ERROR = 6

  • QUEUE_ERROR = 7

  • RUNNING = 8

  • SYSTEM_LOCK_ERROR = 9

  • USER_INVALID = 10

  • OTHERS = 11

.

IF sy-subrc <> 0.

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

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

ENDIF.

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'ME21'

  • POST_LOCAL = NOVBLOCAL

  • PRINTING = NOPRINT

TABLES

dynprotab = BDCDATA

  • EXCEPTIONS

  • INTERNAL_ERROR = 1

  • NOT_OPEN = 2

  • QUEUE_ERROR = 3

  • TCODE_INVALID = 4

  • PRINTING_INVALID = 5

  • POSTING_INVALID = 6

  • OTHERS = 7

.

IF sy-subrc <> 0.

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

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

ENDIF.

CALL FUNCTION 'BDC_CLOSE_GROUP'

  • EXCEPTIONS

  • NOT_OPEN = 1

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

end-of-selection.

loop at messtab.

CALL FUNCTION 'FORMAT_MESSAGE'

EXPORTING

ID = messtab-MSGID

LANG = 'EN'

NO = messtab-msgnr

V1 = messtab-MSGV1

V2 = messtab-MSGV2

V3 = messtab-MSGV3

V4 = messtab-MSGV4

IMPORTING

MSG = T_MSG

  • EXCEPTIONS

  • NOT_FOUND = 1

  • OTHERS = 2

.

IF sy-subrc <> 0.

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

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

ENDIF.

if messtab-msgtyp = 'S'.

FORMAT COLOR 5 inverse on.

elseif messtab-msgtyp = 'E'.

FORMAT COLOR 6 inverse on.

else.

FORMAT COLOR 3 inverse on.

ENDIF.

WRITE : /1(20) messtab-msgtyp ,

25(60) t_msg.

endloop.

*perform close_group.

----


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

CLEAR BDCDATA.

BDCDATA-FNAM = FNAM.

BDCDATA-FVAL = FVAL.

APPEND BDCDATA.

ENDIF.

ENDFORM.