‎2008 Jun 03 6:17 AM
How will you make a BDC for PO?
It is needed for call transaction method.
Urgent.
Please Help.
‎2008 Jun 03 6:22 AM
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
‎2008 Jun 03 6:19 AM
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.
‎2008 Jun 03 6:20 AM
‎2008 Jun 03 6:22 AM
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
‎2008 Jun 03 6:44 AM
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.