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

table control ,BDCMSGCOLL help

Former Member
0 Likes
923

hi guys can u plz gimme a simple code along with a small description related to table control &BDCMSGCOLL & plzzzzzzzzzzzzz tell me exactly waat is happening in d code

1 ACCEPTED SOLUTION
Read only

ashok_kumar24
Contributor
0 Likes
790

HI Crandall ,

Check out the following documentation and sample code example

Update Source List by Material Group - MM01

The SCREEN SEQUENCE FOLLOWS

4.6x.

  • Update Source List by Material Group

  • Blocking / Unblocking the Vendor

  • The Vendor code is retrieve from the Purchasing Info Record

REPORT ZSOURCE.

TABLES: EORD,

EINA,

MARC.

  • Batch Input Name

PARAMETERS P-BTCHSN(12) DEFAULT 'ME01'.

  • Vendor Code

PARAMETERS P-LIFNR LIKE LFA1-LIFNR DEFAULT 'XXXXX'.

  • Material Group

PARAMETERS P-MATKL LIKE MARA-MATKL DEFAULT 'XXXXXXX'.

  • Plants

PARAMETERS P-WERKS LIKE EORD-WERKS DEFAULT 'XX'.

  • Tick Block/Untick Unblock

PARAMETERS P-NOTKZ LIKE EORD-NOTKZ DEFAULT 'X'.

  • Auto / Manual run the Batch Input Program

PARAMETERS P-RUN AS CHECKBOX DEFAULT 'X'.

  • INTERNAL TABLE FOR DATA

DATA: BEGIN OF ULTAB OCCURS 50,

MATNR LIKE EORD-MATNR, "Material No.

WERKS LIKE EORD-WERKS, "Plants

ZEORD LIKE EORD-ZEORD, "NO

LIFNR LIKE EINA-LIFNR, "Vendor 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 EINA WHERE LIFNR = P-LIFNR

AND LOEKZ = SPACE.

SELECT SINGLE * FROM MARC WHERE MATNR = EINA-MATNR

AND WERKS = P-WERKS.

CHECK MARC-LVORM = SPACE.

CLEAR ULTAB.

SELECT * FROM EORD WHERE MATNR = EINA-MATNR

AND WERKS = P-WERKS

AND LIFNR = P-LIFNR.

ULTAB-MATNR = EORD-MATNR.

ULTAB-WERKS = EORD-WERKS.

ULTAB-ZEORD = EORD-ZEORD.

ULTAB-LIFNR = EORD-LIFNR.

APPEND ULTAB.

ENDSELECT.

IF SY-SUBRC = 4.

ULTAB-MATNR = EINA-MATNR.

ULTAB-WERKS = P-WERKS.

ULTAB-ZEORD = ''.

ULTAB-LIFNR = EINA-LIFNR.

APPEND ULTAB.

ENDIF.

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 = 'SAPLMEOR'.

IPUTTAB-DYNPRO = '200'.

IPUTTAB-DYNBEGIN = 'X'.

APPEND IPUTTAB.

  • Source List : Material No.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-MATNR'.

IPUTTAB-FVAL = ULTAB-MATNR.

APPEND IPUTTAB.

  • Source List : Plants.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-WERKS'.

IPUTTAB-FVAL = ULTAB-WERKS.

APPEND IPUTTAB.

ENDFORM.

  • FORM : SCREEN1 *

FORM SCREEN2.

  • Modify screen for SOURCE LIST

CLEAR IPUTTAB.

IPUTTAB-PROGRAM = 'SAPLMEOR'.

IPUTTAB-DYNPRO = '205'.

IPUTTAB-DYNBEGIN = 'X'.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-VDATU(1)'.

IPUTTAB-FVAL = '01.01.2001'.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-BDATU(1)'.

IPUTTAB-FVAL = '31.12.9999'.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-LIFNR(1)'.

IPUTTAB-FVAL = P-LIFNR.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-EKORG(1)'.

IPUTTAB-FVAL = 'ALL'.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-NOTKZ(1)'.

IPUTTAB-FVAL = P-NOTKZ.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-AUTET(1)'.

IPUTTAB-FVAL = '1'.

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 'ME01'

USING IPUTTAB

MODE 'E'

UPDATE 'S'

MESSAGES INTO MESSTAB.

ELSE.

  • Maual run the Batch Input Program

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'ME01'

TABLES

DYNPROTAB = IPUTTAB.

ENDIF.

ENDFORM.

  • FORM : PRN-ULTAB *

  • DESCRIPTION : PRINT OK TABLE *

FORM PRN_ULTAB.

WRITE: / ULTAB-MATNR, ULTAB-WERKS, ULTAB-ZEORD, ULTAB-LIFNR.

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.

Good Luck and thanks

AK

5 REPLIES 5
Read only

Former Member
Read only

Former Member
0 Likes
790

Hi,

regarding the error handling in call transaction.

The BDCMSGCOLL does not have the messages text. It has only the message type, number and message parameters.

You have to read the message text. (recall that the database table T100 stores all the messages.)

There are more than one method of doing this.

Following is the psuedocode for one of the methods.

LOOP for the internal table IT1 which has data value from flat file.

call transcation using....

if SY-SUBRC <> 0.

Read the dictionary table T100 FOR ALL ENTRIES in BDCMSGCOLL.

(also use the condition T100-SPRAS = SY-LANGU (the log on language. This is because you need only the message texts in English if the user is logged in English language)

IF message type is E , then, transfer the contents of this particular error record to file x. (TRANSFER......)

( Ignore all other messages. Only consider type 'E' messages. Ignore other types of messages.)

(You can also store the message text from T100 and the error record in another internal table IT2)

.....

....

ENDLOOP.

Please note that the client might ask you for a file of records which could not be uploaded.

Give him the file created in the above psuedocode. (most often you will have to do this).

Otherwise just display the error messages and the error records in the internal table IT2 in the form of a list.

Thats it.

Alternatively,

Instead of

" Read the dictionary table T100 FOR ALL ENTRIES in BDCMSGCOLL."

you can use the function module

WRITE_MESSAGES to read the messages.

Please refer to the function module for the list of parameters.

Also refer FORMAT_MESSAGES function module.

<b>Look at this example</b>

REPORT ZSOURCE. 
TABLES: EORD, 
        EINA, 
        MARC. 

* Batch Input Name 
PARAMETERS P-BTCHSN(12)            DEFAULT 'ME01'. 
* Vendor Code 
PARAMETERS P-LIFNR LIKE LFA1-LIFNR DEFAULT 'XXXXX'. 
* Material Group 
PARAMETERS P-MATKL LIKE MARA-MATKL DEFAULT 'XXXXXXX'. 
* Plants 
PARAMETERS P-WERKS LIKE EORD-WERKS DEFAULT 'XX'. 
* Tick Block/Untick Unblock 
PARAMETERS P-NOTKZ LIKE EORD-NOTKZ DEFAULT 'X'. 
* Auto / Manual run the Batch Input Program 
PARAMETERS P-RUN   AS CHECKBOX     DEFAULT 'X'. 

* INTERNAL TABLE FOR DATA 
DATA:  BEGIN OF ULTAB OCCURS 50, 
         MATNR LIKE EORD-MATNR,   "Material No. 
         WERKS LIKE EORD-WERKS,   "Plants 
         ZEORD LIKE EORD-ZEORD,   "NO 
         LIFNR LIKE EINA-LIFNR,   "Vendor 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.    " Declaring the Internal table
DATA: END OF MESSTAB. 

DATA: C_TAXKM LIKE MG03STEUER-TAXKM VALUE '1', 
      W-LINE-NO TYPE I. 

REFRESH ULTAB. 
SELECT * FROM EINA WHERE LIFNR = P-LIFNR 
                     AND LOEKZ = SPACE. 
  SELECT SINGLE * FROM MARC WHERE MATNR = EINA-MATNR 
                              AND WERKS = P-WERKS. 
  CHECK MARC-LVORM = SPACE. 
  CLEAR ULTAB. 
  SELECT * FROM EORD WHERE MATNR = EINA-MATNR 
                       AND WERKS = P-WERKS 
                       AND LIFNR = P-LIFNR. 
     ULTAB-MATNR = EORD-MATNR. 
     ULTAB-WERKS = EORD-WERKS. 
     ULTAB-ZEORD = EORD-ZEORD. 
     ULTAB-LIFNR = EORD-LIFNR. 
     APPEND ULTAB. 
  ENDSELECT. 

  IF SY-SUBRC = 4. 
     ULTAB-MATNR = EINA-MATNR. 
     ULTAB-WERKS = P-WERKS. 
     ULTAB-ZEORD = ''. 
     ULTAB-LIFNR = EINA-LIFNR. 
     APPEND ULTAB. 
  ENDIF. 
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 = 'SAPLMEOR'. 
  IPUTTAB-DYNPRO  =  '200'. 
  IPUTTAB-DYNBEGIN = 'X'. 
  APPEND IPUTTAB. 

* Source List : Material No. 
  CLEAR IPUTTAB. 
  IPUTTAB-FNAM = 'EORD-MATNR'. 
  IPUTTAB-FVAL =  ULTAB-MATNR. 
  APPEND IPUTTAB. 

* Source List : Plants. 
  CLEAR IPUTTAB. 
  IPUTTAB-FNAM = 'EORD-WERKS'. 
  IPUTTAB-FVAL =  ULTAB-WERKS. 
  APPEND IPUTTAB. 

ENDFORM. 
*********************************************************************** 
* FORM        : SCREEN1                                               * 
*********************************************************************** 
FORM SCREEN2. 
* Modify screen for SOURCE LIST 
  CLEAR IPUTTAB. 
  IPUTTAB-PROGRAM = 'SAPLMEOR'. 
  IPUTTAB-DYNPRO  =  '205'. 
  IPUTTAB-DYNBEGIN = 'X'. 
  APPEND IPUTTAB. 

  CLEAR IPUTTAB. 
  IPUTTAB-FNAM = 'EORD-VDATU(1)'. 
  IPUTTAB-FVAL = '01.01.2001'. 
  APPEND IPUTTAB. 

  CLEAR IPUTTAB. 
  IPUTTAB-FNAM = 'EORD-BDATU(1)'. 
  IPUTTAB-FVAL = '31.12.9999'. 
  APPEND IPUTTAB. 

  CLEAR IPUTTAB. 
  IPUTTAB-FNAM = 'EORD-LIFNR(1)'. 
  IPUTTAB-FVAL = P-LIFNR. 
  APPEND IPUTTAB. 

  CLEAR IPUTTAB. 
  IPUTTAB-FNAM = 'EORD-EKORG(1)'. 
  IPUTTAB-FVAL = 'ALL'. 
  APPEND IPUTTAB. 

  CLEAR IPUTTAB. 
  IPUTTAB-FNAM = 'EORD-NOTKZ(1)'. 
  IPUTTAB-FVAL = P-NOTKZ. 
  APPEND IPUTTAB. 

  CLEAR IPUTTAB. 
  IPUTTAB-FNAM = 'EORD-AUTET(1)'. 
  IPUTTAB-FVAL = '1'. 
  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 'ME01' 
          USING  IPUTTAB 
          MODE   'E' 
          UPDATE 'S' 
          MESSAGES INTO MESSTAB.     " MEssages will be stored in this Table
* After this you need to loop this internal table and display the messages
ELSE. 
* Maual run the Batch Input Program 
 CALL FUNCTION 'BDC_INSERT' 
       EXPORTING 
            TCODE     = 'ME01' 
       TABLES 
            DYNPROTAB = IPUTTAB. 
ENDIF. 

ENDFORM. 

*********************************************************************** 
* FORM        : PRN-ULTAB                                             * 
* DESCRIPTION : PRINT OK TABLE                                        * 
*********************************************************************** 
FORM PRN_ULTAB. 
  WRITE: / ULTAB-MATNR, ULTAB-WERKS, ULTAB-ZEORD, ULTAB-LIFNR. 
  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. 

Regards

Sudheer

Read only

ashok_kumar24
Contributor
0 Likes
791

HI Crandall ,

Check out the following documentation and sample code example

Update Source List by Material Group - MM01

The SCREEN SEQUENCE FOLLOWS

4.6x.

  • Update Source List by Material Group

  • Blocking / Unblocking the Vendor

  • The Vendor code is retrieve from the Purchasing Info Record

REPORT ZSOURCE.

TABLES: EORD,

EINA,

MARC.

  • Batch Input Name

PARAMETERS P-BTCHSN(12) DEFAULT 'ME01'.

  • Vendor Code

PARAMETERS P-LIFNR LIKE LFA1-LIFNR DEFAULT 'XXXXX'.

  • Material Group

PARAMETERS P-MATKL LIKE MARA-MATKL DEFAULT 'XXXXXXX'.

  • Plants

PARAMETERS P-WERKS LIKE EORD-WERKS DEFAULT 'XX'.

  • Tick Block/Untick Unblock

PARAMETERS P-NOTKZ LIKE EORD-NOTKZ DEFAULT 'X'.

  • Auto / Manual run the Batch Input Program

PARAMETERS P-RUN AS CHECKBOX DEFAULT 'X'.

  • INTERNAL TABLE FOR DATA

DATA: BEGIN OF ULTAB OCCURS 50,

MATNR LIKE EORD-MATNR, "Material No.

WERKS LIKE EORD-WERKS, "Plants

ZEORD LIKE EORD-ZEORD, "NO

LIFNR LIKE EINA-LIFNR, "Vendor 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 EINA WHERE LIFNR = P-LIFNR

AND LOEKZ = SPACE.

SELECT SINGLE * FROM MARC WHERE MATNR = EINA-MATNR

AND WERKS = P-WERKS.

CHECK MARC-LVORM = SPACE.

CLEAR ULTAB.

SELECT * FROM EORD WHERE MATNR = EINA-MATNR

AND WERKS = P-WERKS

AND LIFNR = P-LIFNR.

ULTAB-MATNR = EORD-MATNR.

ULTAB-WERKS = EORD-WERKS.

ULTAB-ZEORD = EORD-ZEORD.

ULTAB-LIFNR = EORD-LIFNR.

APPEND ULTAB.

ENDSELECT.

IF SY-SUBRC = 4.

ULTAB-MATNR = EINA-MATNR.

ULTAB-WERKS = P-WERKS.

ULTAB-ZEORD = ''.

ULTAB-LIFNR = EINA-LIFNR.

APPEND ULTAB.

ENDIF.

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 = 'SAPLMEOR'.

IPUTTAB-DYNPRO = '200'.

IPUTTAB-DYNBEGIN = 'X'.

APPEND IPUTTAB.

  • Source List : Material No.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-MATNR'.

IPUTTAB-FVAL = ULTAB-MATNR.

APPEND IPUTTAB.

  • Source List : Plants.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-WERKS'.

IPUTTAB-FVAL = ULTAB-WERKS.

APPEND IPUTTAB.

ENDFORM.

  • FORM : SCREEN1 *

FORM SCREEN2.

  • Modify screen for SOURCE LIST

CLEAR IPUTTAB.

IPUTTAB-PROGRAM = 'SAPLMEOR'.

IPUTTAB-DYNPRO = '205'.

IPUTTAB-DYNBEGIN = 'X'.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-VDATU(1)'.

IPUTTAB-FVAL = '01.01.2001'.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-BDATU(1)'.

IPUTTAB-FVAL = '31.12.9999'.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-LIFNR(1)'.

IPUTTAB-FVAL = P-LIFNR.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-EKORG(1)'.

IPUTTAB-FVAL = 'ALL'.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-NOTKZ(1)'.

IPUTTAB-FVAL = P-NOTKZ.

APPEND IPUTTAB.

CLEAR IPUTTAB.

IPUTTAB-FNAM = 'EORD-AUTET(1)'.

IPUTTAB-FVAL = '1'.

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 'ME01'

USING IPUTTAB

MODE 'E'

UPDATE 'S'

MESSAGES INTO MESSTAB.

ELSE.

  • Maual run the Batch Input Program

CALL FUNCTION 'BDC_INSERT'

EXPORTING

TCODE = 'ME01'

TABLES

DYNPROTAB = IPUTTAB.

ENDIF.

ENDFORM.

  • FORM : PRN-ULTAB *

  • DESCRIPTION : PRINT OK TABLE *

FORM PRN_ULTAB.

WRITE: / ULTAB-MATNR, ULTAB-WERKS, ULTAB-ZEORD, ULTAB-LIFNR.

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.

Good Luck and thanks

AK

Read only

Former Member
0 Likes
790

Hii,

Below is a BDC code which I wrote using Table Control and BDCMSGCOLL for displaying system messages.

tables : T100.

*include bdcrecx1.

*<b>table control 'coz of the numbering along _001 _002 etc</b>

<i>data: begin of record,

  • data element: PERNR_D

PERNR_001(038),

  • data element: TIMRE

TIMR6_002(001),

  • data element: PERNR_D

PERNR_003(038),

  • data element: TIMRE

TIMR6_004(001),

  • data element: CHOIC

CHOIC_005(035),

  • data element: PERNR_D

PERNR_006(038),

  • data element: TIMRE

TIMR6_007(001),

  • data element: CHOIC

CHOIC_008(035),

  • data element: BEGDA

BEGDA_009(010),

  • data element: ENDDA

ENDDA_010(010),

  • data element: SCHKN

SCHKZ_011(008),

  • data element: EMPCT

EMPCT_012(008),

  • data element: STDTG

ARBST_013(008),

  • data element: WARST

WKWDY_014(008),

end of record.</i>

      • End generated data section ***

data itab like table of record with header line.

data : bdcdata type standard table of bdcdata with header line.

<b>data : messtab type standard table of bdcmsgcoll with header line</b>.

data mstring(300).

start-of-selection.

CALL FUNCTION 'UPLOAD'

EXPORTING

FILENAME = 'C:\Documents and Settings\tcsuser\Desktop '

FILETYPE = 'DAT'

TABLES

DATA_TAB = itab.

loop at itab.

refresh bdcdata.

refresh messtab.

perform map_data.

call transaction 'PA30' using bdcdata mode 'N' update 'S' messages into messtab.

perform get_messages.

endloop.

form map_data.

*REGARDING BDC DATA..NOT IMP TO YOU

endform.

form get_messages.

loop at messtab.

*<b>capturing system messages with bdcmsgcoll</b>

<i>select single * from t100 where sprsl = messtab-msgspra and

arbgb = messtab-msgid and

msgnr = messtab-msgnr.

if sy-subrc = 0.

mstring = t100-text.

if mstring CS '&'.

replace '&' with messtab-msgv1 into mstring.

replace '&' with messtab-msgv2 into mstring.

replace '&' with messtab-msgv3 into mstring.

replace '&' with messtab-msgv4 into mstring.

endif.

condense mstring.

write 😕 mstring(300) color 2 intensified off.

else.

write : messtab.

endif.

endloop.

endform.</i>

form bdc_dynpro using program dynpro.

clear bdcdata.

bdcdata-program = program.

bdcdata-dynpro = dynpro.

bdcdata-dynbegin = 'X'.

append bdcdata.

endform.

form bdc_field using fnam fval.

clear bdcdata.

bdcdata-fnam = fnam.

bdcdata-fval = fval.

append bdcdata.

endform.

Pls ,Reward if useful!!