2008 May 15 1:52 PM
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
2008 May 15 1:59 PM
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
2008 May 15 2:24 PM
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 doesnt 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
2008 Jul 10 10:20 AM
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
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |