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

call transaction in Direct input method

Former Member
0 Likes
863

Hi All

how do i use call transaction in direct input method.

thanks all

Hi All

how do i use call transaction in direct input method.

thanks all

3 REPLIES 3
Read only

Former Member
0 Likes
742

Hi,

Direct input is different and Call transaction is different.

In Direct input method,the data will be uploaded directly into the table.

In call transaction you can change the data before uploading into dictionary table by using tcode

Ex for Direct input method

TABLES: kna1.

DATA: BEGIN OF itab1 OCCURS 0,

str(255),

END OF itab1.

DATA: itab2 TYPE kna1 OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = 'D:\ABAP EVE\ffile1.txt'

filetype = 'ASC'

TABLES

data_tab = itab1

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.

WRITE:/ 'sorry'.

ELSE.

LOOP AT itab1.

SPLIT itab1-str AT ',' INTO itab2-kunnr itab2-name1.

APPEND itab2.

ENDLOOP.

IF sy-subrc = 0.

LOOP AT itab2.

WRITE:/ itab2-kunnr,itab2-name1.

INSERT INTO kna1 VALUES itab2.

ENDLOOP.

IF sy-subrc = 0.

WRITE:/ 'inserted'.

ELSE.

WRITE:/ 'not inserted'.

ENDIF.

ELSE.

WRITE:/ 'fail'.

ENDIF.

ENDIF.

Flat file:

10001,Sadney

10003,Yogesh

20005,Madan

Ex for Call transaction

DATA: BEGIN OF itab OCCURS 0,

str(255),

END OF itab.

DATA: BEGIN OF itab1 OCCURS 0,

lifnr LIKE lfa1-lifnr,

name1 LIKE lfa1-name1,

ort01 LIKE lfa1-ort01,

END OF itab1.

DATA: jtab LIKE bdcdata OCCURS 0 WITH HEADER LINE.

DATA: ktab TYPE TABLE OF bdcmsgcoll,

wa TYPE bdcmsgcoll.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = 'D:\ABAP EVE\ffile4.txt'

filetype = 'ASC'

TABLES

data_tab = itab

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.

WRITE:/ 'no file exist'.

ENDIF.

LOOP AT itab.

SPLIT itab-str AT ',' INTO itab1-lifnr itab1-name1 itab1-ort01.

APPEND itab1.

ENDLOOP.

LOOP AT itab1.

PERFORM prginfo USING 'SAPMZBDCCT' '123'.

PERFORM fldinfo USING 'i01' itab1-lifnr.

PERFORM fldinfo USING 'i02' itab1-name1.

PERFORM fldinfo USING 'i03' itab1-ort01.

CALL TRANSACTION 'ZCSBDCCT' USING jtab

MODE 'N'

MESSAGES INTO ktab.

ENDLOOP.

--- Display the Status messages ---

LOOP AT ktab INTO wa WHERE msgtyp = 'E'.

WRITE:/ wa.

ENDLOOP.

&----


*& Form prginfo

&----


  • text

----


  • -->PRGNAME text

  • -->SCRNUMBER text

----


FORM prginfo USING prgname scrnumber.

CLEAR jtab.

REFRESH jtab.

jtab-program = prgname.

jtab-dynpro = scrnumber.

jtab-dynbegin = 'X'.

APPEND jtab.

ENDFORM. "prginfo

&----


*& Form fldinfo

&----


  • text

----


  • -->FLDNM text

  • -->FLDVAL text

----


FORM fldinfo USING fldnm fldval.

CLEAR jtab.

jtab-fnam = fldnm.

jtab-fval = fldval.

APPEND jtab.

ENDFORM. "fldinfo

MPP CODE.

TOP-INCLUDE.

DATA: OK_CODE TYPE SY-UCOMM.

DATA: I01(10),I02(20),I03(26).

DATA: WA TYPE LFA1.

PAI

CASE OK_CODE.

WHEN 'INSERT'.

MOVE I01 TO WA-LIFNR.

MOVE I02 TO WA-NAME1.

MOVE I03 TO WA-ORT01.

INSERT INTO LFA1 VALUES WA.

IF SY-SUBRC = 0.

MESSAGE I001(ZCSMSG).

ELSE.

MESSAGE I002(ZCSMSG).

ENDIF.

WHEN 'EXIT'.

LEAVE PROGRAM.

ENDCASE.

Reward,if useful.

Thanks,

Chandu

Read only

Former Member
0 Likes
742

Hi

using call transaction in direct input method is not possible because they are two different.

In Batch input method u can go for either session method or call transaction method.

Direct input method is a method in lsmw which is a separate method.

for further info please read the info below

Batch Data Communication (BDC) is the oldest batch interfacing technique that SAP provided since the early versions of R/3. BDC is not a typical integration tool, in the sense that, it can be only be used for uploading data into R/3 and so it is

not bi-directional.

BDC works on the principle of simulating user input for transactional screen, via an ABAP program.

Typically the input comes in the form of a flat file. The ABAP program reads this file and formats the input data screen by screen into an internal table (BDCDATA). The transaction is then started using this internal table as the input and executed in the background.

In ‘Call Transaction’, the transactions are triggered at the time of processing itself and so the ABAP program must do the error handling. It can also be used for real-time interfaces and custom error handling & logging features. Whereas in

Batch Input Sessions, the ABAP program creates a session with all the transactional data, and this session can be viewed, scheduled and processed (using Transaction SM35) at a later time. The latter technique has a built-in error processing mechanism too.

Batch Input (BI) programs still use the classical BDC approach but doesn’t require an ABAP program to be written to format the BDCDATA. The user has to format the data using predefined structures and store it in a flat file. The BI program then reads this and invokes the transaction mentioned in the header record of the file.

Direct Input (DI) programs work exactly similar to BI programs. But the only difference is, instead of processing screens they validate fields and directly load the data into tables using standard function modules. For this reason, DI programs are much faster (RMDATIND - Material Master DI program works at least 5 times faster) than the BDC counterpart and so ideally suited for loading large volume data. DI programs are not available for all application areas.

Reward if helpfull

Regards

Lakshman

Read only

0 Likes
742

Hi lakshman

I ws going th ur text .you have menttioned that direct input validates fields whereas bdc validates at screen levels.I am not able to get the diff properly.Can u give an eg and help me out.

Thanks in advance.Sudhir