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

Former Member
0 Likes
862

How will you make a BDC for PO?

It is needed for call transaction method.

Urgent.

Please Help.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
694

Hi there,

what u can do is make a recordin in SHDB and then go for program which would be something similar to this:

&----


*& Report ZBDCPP2

*&

&----


*&

*&

&----


REPORT ZBDCPP2

NO STANDARD PAGE HEADING LINE-SIZE 255.

TYPE-POOLS SLIS.

DATA: T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA:

LT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,

LT_BDCMESSAGE LIKE STANDARD TABLE OF BDCMSGCOLL,

LS_BDCMESSAGE LIKE BDCMSGCOLL.

DATA: BEGIN OF ITAB OCCURS 0,

VENDOR LIKE MEPO_TOPLINE-SUPERFIELD,

PURCHORG LIKE MEPO1222-EKORG,

PURCHGRP LIKE MEPO1222-EKGRP,

COMPCODE LIKE MEPO1222-BUKRS,

MATERIAL LIKE MEPO1211-EMATN,

POQUANTITY LIKE MEPO1211-MENGE,

ORDERUNIT LIKE MEPO1211-MEINS,

NETPRICE LIKE MEPO1211-NETPR,

CURRENCY LIKE MEPO1211-WAERS,

PLANT LIKE MEPO1211-NAME1,

ERRORFIELD LIKE LS_BDCMESSAGE-MSGV1,

END OF ITAB.

DATA: WA LIKE LINE OF ITAB.

DATA: NETPRICE(11) TYPE C,

POQUANTITY(13) TYPE C.

*Data: Pop(15) type C.

DATA: PFILE TYPE DYNPREAD-FIELDNAME ,

TESTFILNAM TYPE IBIPPARMS-PATH,

TESTFILNA TYPE STRING.

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

*PARAMETERS File(15) type C.

PARAMETERS: FILE TYPE DYNPREAD-FIELDNAME MODIF ID SP2.

*SELECT-OPTIONS : File2 FOR Pop MODIF ID SP1 NO INTERVALS

*NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = 'File '

IMPORTING

FILE_NAME = TESTFILNAM.

FILE = TESTFILNAM.

TESTFILNA = TESTFILNAM.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = TESTFILNA

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '#'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE =

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_like = 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 like SY-MSGTY NUMBER SY-MSGNO

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

ENDIF.

DATA:SYDATE TYPE STRING.

CONCATENATE SY-DATUM4(2) '/' SY-DATUM6(2) '/' SY-DATUM+0(4)

INTO SYDATE.

LOOP AT ITAB.

NETPRICE = ITAB-NETPRICE.

POQUANTITY = ITAB-POQUANTITY.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=MEV4000BUTTON'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO_TOPLINE-SUPERFIELD'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • itab-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=TABHDT9'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • itab-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1226-ZTERM'.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=MEV4001BUTTON'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO_TOPLINE-SUPERFIELD'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1211-NAME1(01)'.

PERFORM BDC_FIELD USING 'MEPO1211-EMATN(01)'

ITAB-MATERIAL.

PERFORM BDC_FIELD USING 'MEPO1211-MENGE(01)'

POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO1211-MEINS(01)'

ITAB-ORDERUNIT.

PERFORM BDC_FIELD USING 'MEPO1211-NETPR(01)'

NETPRICE.

PERFORM BDC_FIELD USING 'MEPO1211-NAME1(01)'

ITAB-PLANT.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1211-EEIND(01)'.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

*perform bdc_field using 'MEPO1319-SPINF'

  • 'X'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1211-NETPR(01)'.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

*perform bdc_field using 'MEPO1319-SPINF'

  • 'X'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=MESAVE'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1211-NETPR(01)'.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

*perform bdc_field using 'MEPO1319-SPINF'

  • 'X'.

PERFORM BDC_DYNPRO USING 'SAPLSPO2' '0101'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=OPT1'.

  • PERFORM BDC_TRANSACTION USING 'ME21N'.

CALL TRANSACTION 'ME21N'

USING LT_BDCDATA

MODE 'N'

UPDATE 'S'

MESSAGES INTO LT_BDCMESSAGE.

data: text(15) type C,

display(25) type C.

text = 'Purchase order is:'.

LOOP AT LT_BDCMESSAGE INTO LS_BDCMESSAGE.

  • ls_bdcmessage-msgv2 = LT_BDCMESSAGE-msgv2.

if not LS_BDCMESSAGE-MSGV2 is initial.

concatenate text LS_BDCMESSAGE-MSGV2 INTO display.

message: display type 'I'.

Perform ALV.

endif.

  • if LS_BDCMESSAGE-MSGTYP = 'E'.

  • ITAB-ERRORFIELD = LS_BDCMESSAGE-MSGV1.

*

  • endif.

endloop.

REFRESH LT_BDCDATA.

ENDLOOP.

REFRESH T_FIELDCAT.

Form ALV.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'LT_BDCMESSAGE'

I_STRUCTURE_NAME = 'BDCMSGCOLL'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = T_FIELDCAT[]

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

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

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

IT_FIELDCAT = T_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = LT_BDCMESSAGE

EXCEPTIONS

PROGRAM_ERROR = 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.

refresh lt_bdcmessage.

ENDFORM.

END-OF-SELECTION.

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR LT_BDCDATA.

LT_BDCDATA-PROGRAM = PROGRAM.

LT_BDCDATA-DYNPRO = DYNPRO.

LT_BDCDATA-DYNBEGIN = 'X'.

APPEND LT_BDCDATA.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

  • IF FVAL <> NODATA.

CLEAR LT_BDCDATA.

LT_BDCDATA-FNAM = FNAM.

LT_BDCDATA-FVAL = FVAL.

APPEND LT_BDCDATA.

  • ENDIF.

ENDFORM. "BDC_FIELD

4 REPLIES 4
Read only

Former Member
0 Likes
694

Dear Nisha,

Welcome To SDN!

Yes you can either use call transaction or session method for the same.

Use Me21n and do recording first than try to create program.

i have some docs regarding this give me your email id i can send you some docs on same.

Amit.

Read only

Former Member
Read only

Former Member
0 Likes
695

Hi there,

what u can do is make a recordin in SHDB and then go for program which would be something similar to this:

&----


*& Report ZBDCPP2

*&

&----


*&

*&

&----


REPORT ZBDCPP2

NO STANDARD PAGE HEADING LINE-SIZE 255.

TYPE-POOLS SLIS.

DATA: T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

DATA:

LT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,

LT_BDCMESSAGE LIKE STANDARD TABLE OF BDCMSGCOLL,

LS_BDCMESSAGE LIKE BDCMSGCOLL.

DATA: BEGIN OF ITAB OCCURS 0,

VENDOR LIKE MEPO_TOPLINE-SUPERFIELD,

PURCHORG LIKE MEPO1222-EKORG,

PURCHGRP LIKE MEPO1222-EKGRP,

COMPCODE LIKE MEPO1222-BUKRS,

MATERIAL LIKE MEPO1211-EMATN,

POQUANTITY LIKE MEPO1211-MENGE,

ORDERUNIT LIKE MEPO1211-MEINS,

NETPRICE LIKE MEPO1211-NETPR,

CURRENCY LIKE MEPO1211-WAERS,

PLANT LIKE MEPO1211-NAME1,

ERRORFIELD LIKE LS_BDCMESSAGE-MSGV1,

END OF ITAB.

DATA: WA LIKE LINE OF ITAB.

DATA: NETPRICE(11) TYPE C,

POQUANTITY(13) TYPE C.

*Data: Pop(15) type C.

DATA: PFILE TYPE DYNPREAD-FIELDNAME ,

TESTFILNAM TYPE IBIPPARMS-PATH,

TESTFILNA TYPE STRING.

SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

*PARAMETERS File(15) type C.

PARAMETERS: FILE TYPE DYNPREAD-FIELDNAME MODIF ID SP2.

*SELECT-OPTIONS : File2 FOR Pop MODIF ID SP1 NO INTERVALS

*NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK B1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR FILE.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

FIELD_NAME = 'File '

IMPORTING

FILE_NAME = TESTFILNAM.

FILE = TESTFILNAM.

TESTFILNA = TESTFILNAM.

CALL FUNCTION 'GUI_UPLOAD'

EXPORTING

FILENAME = TESTFILNA

FILETYPE = 'ASC'

HAS_FIELD_SEPARATOR = '#'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE =

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH =

  • HEADER =

TABLES

DATA_TAB = ITAB

  • EXCEPTIONS

  • FILE_OPEN_ERROR = 1

  • FILE_READ_ERROR = 2

  • NO_BATCH = 3

  • GUI_REFUSE_FILETRANSFER = 4

  • INVALID_like = 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 like SY-MSGTY NUMBER SY-MSGNO

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

ENDIF.

DATA:SYDATE TYPE STRING.

CONCATENATE SY-DATUM4(2) '/' SY-DATUM6(2) '/' SY-DATUM+0(4)

INTO SYDATE.

LOOP AT ITAB.

NETPRICE = ITAB-NETPRICE.

POQUANTITY = ITAB-POQUANTITY.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=MEV4000BUTTON'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO_TOPLINE-SUPERFIELD'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • itab-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=TABHDT9'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • itab-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1226-ZTERM'.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=MEV4001BUTTON'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO_TOPLINE-SUPERFIELD'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1211-NAME1(01)'.

PERFORM BDC_FIELD USING 'MEPO1211-EMATN(01)'

ITAB-MATERIAL.

PERFORM BDC_FIELD USING 'MEPO1211-MENGE(01)'

POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO1211-MEINS(01)'

ITAB-ORDERUNIT.

PERFORM BDC_FIELD USING 'MEPO1211-NETPR(01)'

NETPRICE.

PERFORM BDC_FIELD USING 'MEPO1211-NAME1(01)'

ITAB-PLANT.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1211-EEIND(01)'.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

*perform bdc_field using 'MEPO1319-SPINF'

  • 'X'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1211-NETPR(01)'.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

*perform bdc_field using 'MEPO1319-SPINF'

  • 'X'.

PERFORM BDC_DYNPRO USING 'SAPLMEGUI' '0014'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=MESAVE'.

  • PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BSART'

  • ITAB-POQUANTITY.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-SUPERFIELD'

ITAB-VENDOR.

PERFORM BDC_FIELD USING 'MEPO_TOPLINE-BEDAT'

SYDATE.

PERFORM BDC_FIELD USING 'MEPO1222-EKORG'

ITAB-PURCHORG.

PERFORM BDC_FIELD USING 'MEPO1222-EKGRP'

ITAB-PURCHGRP.

PERFORM BDC_FIELD USING 'MEPO1222-BUKRS'

ITAB-COMPCODE.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'MEPO1211-NETPR(01)'.

PERFORM BDC_FIELD USING 'DYN_6000-LIST'

' 1'.

*perform bdc_field using 'MEPO1319-SPINF'

  • 'X'.

PERFORM BDC_DYNPRO USING 'SAPLSPO2' '0101'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=OPT1'.

  • PERFORM BDC_TRANSACTION USING 'ME21N'.

CALL TRANSACTION 'ME21N'

USING LT_BDCDATA

MODE 'N'

UPDATE 'S'

MESSAGES INTO LT_BDCMESSAGE.

data: text(15) type C,

display(25) type C.

text = 'Purchase order is:'.

LOOP AT LT_BDCMESSAGE INTO LS_BDCMESSAGE.

  • ls_bdcmessage-msgv2 = LT_BDCMESSAGE-msgv2.

if not LS_BDCMESSAGE-MSGV2 is initial.

concatenate text LS_BDCMESSAGE-MSGV2 INTO display.

message: display type 'I'.

Perform ALV.

endif.

  • if LS_BDCMESSAGE-MSGTYP = 'E'.

  • ITAB-ERRORFIELD = LS_BDCMESSAGE-MSGV1.

*

  • endif.

endloop.

REFRESH LT_BDCDATA.

ENDLOOP.

REFRESH T_FIELDCAT.

Form ALV.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'LT_BDCMESSAGE'

I_STRUCTURE_NAME = 'BDCMSGCOLL'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = T_FIELDCAT[]

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

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

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

  • IS_LAYOUT =

IT_FIELDCAT = T_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IR_SALV_LIST_ADAPTER =

  • IT_EXCEPT_QINFO =

  • I_SUPPRESS_EMPTY_DATA = ABAP_FALSE

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = LT_BDCMESSAGE

EXCEPTIONS

PROGRAM_ERROR = 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.

refresh lt_bdcmessage.

ENDFORM.

END-OF-SELECTION.

----


  • Start new screen *

----


FORM BDC_DYNPRO USING PROGRAM DYNPRO.

CLEAR LT_BDCDATA.

LT_BDCDATA-PROGRAM = PROGRAM.

LT_BDCDATA-DYNPRO = DYNPRO.

LT_BDCDATA-DYNBEGIN = 'X'.

APPEND LT_BDCDATA.

ENDFORM. "BDC_DYNPRO

----


  • Insert field *

----


FORM BDC_FIELD USING FNAM FVAL.

  • IF FVAL <> NODATA.

CLEAR LT_BDCDATA.

LT_BDCDATA-FNAM = FNAM.

LT_BDCDATA-FVAL = FVAL.

APPEND LT_BDCDATA.

  • ENDIF.

ENDFORM. "BDC_FIELD

Read only

Former Member
0 Likes
694

Hi,

Please go through this link this will be very helpful to know about BDC.

http://www.sap-img.com/bdc.htm

http://sap-abapinfo.blogspot.com/2008/05/table-control-in-bdc.html.