CALL TRANSACTION 'ZTS01' USING ITAB. How do it receive?
hi. everyone.
I 'd like to use 'call transaction'.
First I write the syntax ' CALL TRANSACTION 'ZTS01' USING ITAB.'
Then how do the program of Transaction code 'ZTS01'receive the itab?
help..
Hi Jake,
syntax : call transaction 'zsts01' using itab.
here if itab is declared as bdcdata...first of all the screen attributes and values are stored in itab..since the transaction code is a collection of screens holding the values of itab..data is populated..
in the sense...
tcode(collection of screens) + bdcdata/itab(values of screen fields, names) --->data populated..
hope this helps u a bit,
all the best,
regards,
sampath
mark helpful answers
Similar Messages
-
Changes to sales order item not reflected if Call Transaction is used
I m updating another Sales Order item quantity and reason for rejection programmatically from another sales order.
The code is working fine and the quantity does get changed as well as the reason for rejection flag get set (if required). But if I go to the change log from the menu in VA02 for the order item which has been changed. It does not record the changes.
I have tried using both BDC call transaction method as well as BAPI_SALESORDER_CHANGE in neither case the change log for the order which has been changed reflects the programmatically made changes?
What m I doing wrong. Here is the code.
IF v_update_order_flg = 'X'.
REFRESH t_bdcdata.
CLEAR s_bdcdata.
REFRESH t_messtab.
PERFORM bdc_dynpro USING 'SAPMV45A' '0102'.
PERFORM bdc_field USING 'VBAK-VBELN' <wa_r_rtb_posnrs>-zrtbvbeln.
PERFORM bdc_field USING 'BDC_OKCODE' '/00'.
PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
For Going to specific Item Number
LOOP AT t_schedule_lines.
PERFORM bdc_field USING 'BDC_OKCODE' '=POPO'.
READ TABLE t_item_in WITH KEY itm_number = t_schedule_lines-itm_number.
PERFORM bdc_dynpro USING 'SAPMV45A' '0251'.
PERFORM bdc_field USING 'RV45A-POSNR' t_schedule_lines-itm_number.
PERFORM bdc_field USING 'BDC_OKCODE' '=POSI'.
PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
v_ro_qty = t_schedule_lines-req_qty.
CONDENSE v_ro_qty.
PERFORM bdc_field USING 'RV45A-KWMENG(01)' v_ro_qty.
PERFORM bdc_field USING 'VBAP-ABGRU(01)' t_item_in-reason_rej.
ENDLOOP.
PERFORM bdc_field USING 'BDC_OKCODE' '=SICH'.
v_call_transaction_flg = 'X'.
EXPORT v_call_transaction_flg TO MEMORY ID 'call_transaction'.
CALL TRANSACTION 'VA02'
USING t_bdcdata
UPDATE 'S'
MODE 'N'
MESSAGES INTO t_messtab.
v_call_transaction_flg = space.
FREE MEMORY ID 'call_transaction'.Hi Srikrisna,
This is a typical problem with BDC for updating QUANTITY and CURRENCY fields.
You need to create a character variable of the same length as your quantity field. Move your quantity value to the newly created Character variable.
Now use this new char variable in the BDC.
This correction should solve your problem.
NOTE: BDC RECOGNIZES CHARACTER FIELDS ONLY.
Regards,
Prakash Pandey -
Call transaction CJIC using bdcdata and skip first screen
I want to call transaction CJIC and skip first screen. I have set parameters for fields for which I need to pass data. But one field namely display variant has no parameter id. How can I pass value to it and also skip first screen?
I have tried passing its value in bdcdata and also passing ONLI. But it does not run in mode "N". What can be the solution?Hi frnd,
fortunately transaction CJIC is selection-screen of an executable program RKPEP012.......so u don hav to use call transaction and instead u can use SUBMIT statement................
submit RKPEP012 WITH SELECTION-TABLE rspar
Effect
If you specify this addition, parameters and selection criteria on the selection screen are supplied from an internal table rspar. You must specify an internal table with the row type RSPARAMS for rspar. The structured data type RSPARAMS is defined in the ABAP Dictionary and has the following components, all of which are data type CHAR:
SELNAME (length 8),
KIND (length 1),
SIGN (length 1),
OPTION (length 2),
LOW (length 45),
HIGH (length 45).
To supply parameters and selection criteria for the selection screen with specific values, the lines in the internal table rspar must contain the following values:
SELNAME must contain the name of a parameter or selection criterion for the selection screen in block capitals
KIND must contain the type of selection screen component (P for parameters, S for selection criteria)
SIGN, OPTION, LOW, and HIGH must contain the values specified for the selection table columns that have the same names as the selection criteria; in the case of parameters, the value must be specified in LOW and all other components are ignored.
If the name of a selection criterion is repeated in rspar, this defines a selection table containing several lines and passes it on to the selection criterion. If parameter names occur several times, the last value is passed on to the parameter.
The contents of the parameters or selection tables for the current program can be entered in the table by the function module RS_REFRESH_FROM_SELECTOPTIONS.
Notes
In contrast to selection tables, the data types of the components LOW and HIGH in table rspar are always of type CHAR and are converted to the type of the parameter or selection criterion during transfer, if necessary.
When entering values, you must ensure that these are entered in the internal format of the ABAP values, and not in the output format of the screen display.
Revert back for queries.
Cheers,
Will. -
Error msgs in call transaction mode using RFBIBL00
Hi Gurus,
I am using FRBIBL00 program in call transaction mode to post FI documents and i am getting the below msgs:
FB012 Session 1 : Special character for 'empty field' is /
F5201 Posting period 008 0831 is not open
FB012 Session 1 : Special character for 'empty field' is /
FB007 Session 1 session name TEST1 was opened
FB008 Session 1 session name TEST1 was created
Please help me in resolving this.
Regards'
Madan.Hi Prabhu/Vishwa,
Thanks for your quick response.
I am calling RFBIBL00 in "call transaction" mode to post FI ocs.
here is the format of the file written on to the application server.
Session - 0TEST1 100KBQ9FCEC 00000000X/
Header - 1FB01 20080816SAYBP120080831/ CHF / / 20080831/ / / / /
Item level - 2BBSEG 50/ // 79378 / / / IU// /
2BBSEG 40/ // 79378 / / / IU// /
2BBSEG 50/ // 42266 / / / IU// /
2BBSEG 40/ // 42266 / / / IU// /
The file format is correct, it is working fine in case of Batch session method.
I want it to work for both Batch session and Call transaction.
Please help me to reslove call transaction mode.
Regards'
Madan. -
Personas: how to call Transaction code using a Script Button?
Hi,
I want to use a script button to run to certain UI based on the given transaction code. I am thinking there might be some ways to do so:
Option 1:
Somehow one can let the script button call the T-code in script, say, IW21, but how to write such script?
Option 2:
In the script of the script button, use "Push" or "Click" to cause an action on the launch button which contains the T-code, say /nIW21.
But on my PC, this does not work. Why?
pls help asap!
Thx a lot!
Br,
DongKnowledge sharing:
Hi,
I have found exact answer to this question: in the script of a script button, one can first set the T-code to the /okdc component, then call "press Enter" action. By this way, any script button can be used to triggle an action for a T-code. One can set teh /okdc as "hidden". Hope this will help other newers.
Br,
Dong -
I can't make video call on Facebook using Firefox.how can I make it possible?
I am using micromax A110. (canvas 2)
Facebook video is not available for mobile, yet. The plug-in is only released for desktop PC where Facebook is available through a browser.
For android you can use alternative is SKYPE -
CALL transaction using itab aswell as skip the first screen
Hi All,
I am doin BDC for some Ztransaction and i am that transaction using CALL TRANSACTION... but i want to skip the first screen of the Ztransaction as well as pass the Itab .. mode .. update and message table.... how can i do it...
CALL TRANSACTION Z... USING iTAB UPDATE DATE MODE A message bdcmsgcoll AND skip THE FIST SCREEN.. how to acheive it....PERFORM BDC_DYNPRO TABLES BDCDATA
USING 'SAPLBPT1' '0100'.
*PERFORM BDC_FIELD TABLES BDCDATA
USING 'BDC_CURSOR'
'BCONTD-BPCONTACT'.
*PERFORM BDC_FIELD TABLES BDCDATA
USING 'BDC_OKCODE'
'/00'.
*PERFORM BDC_FIELD TABLES BDCDATA
USING 'BCONTD-BPCONTACT'
V_CONTRACT.
the above code /recording call the first screen 100 which i dont want...
below code / recording is for screen 200 which i want to appear directly when i call the transaction....
skipping the first screen 100..
PERFORM BDC_DYNPRO TABLES BDCDATA
USING 'SAPLBPT1' '0200'.
PERFORM BDC_FIELD TABLES BDCDATA
USING 'BDC_OKCODE'
'=SAVE'
PERFORM BDC_FIELD TABLES BDCDATA
USING 'BCONTD-PARTNER'
V_GPART.
PERFORM BDC_FIELD TABLES BDCDATA
USING 'BCONTD-ADDINFO'
V_ZONE. "ZONE(S,N,E,E,NE)
PERFORM BDC_FIELD TABLES BDCDATA
USING 'BDC_CURSOR'
'EENO_DYNP-ZEILE(01)'.
PERFORM BDC_FIELD TABLES BDCDATA
USING 'EENO_DYNP-ZEILE(01)'
V_LOG. "MESSAGE
CALL TRANSACTION 'BCT1' USING BDCDATA
MODE MODE UPDATE UPDATE
MESSAGES INTO IT_BDCMSGCOLL. -
Va01 upload using call transaction,item details r overwrite ,how to solve
hi experts
i here attached the coding what i did,while page down item details r over overwrite, how to sole ,give me the suggestions
INCLUDE BDCRECX1.
PARAMETERS: DATASET(132) LOWER CASE.
DATA: BEGIN OF RECORD_HEAD,
VBELN(10),
data element: AUART
AUART(004),
data element: VKORG
VKORG(004),
data element: VTWEG
VTWEG(002),
data element: SPART
SPART(002),
DATA ELEMENT: KUNAG
KUNNR(010),
data element: KUNWE
KUNNR_007(010),
data element: BSTKD
BSTKD(035),
END OF RECORD_HEAD.
DATA: BEGIN OF RECORD_ITEM,
data element: VBELN
VBELN(10),
data element: MATNR
MABNR(018),
data element: KWMENG
KWMENG(019),
END OF RECORD_ITEM.
End generated data section ***
DATA: IT_SO_HEAD LIKE TABLE OF RECORD_HEAD,
IT_SO_ITEM LIKE TABLE OF RECORD_ITEM,
FLAG.
data: counter type num value '1'.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\USERS\SANGEETHA\DESKTOP\SO_HEADER.TXT'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_SO_HEAD.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = 'C:\USERS\SANGEETHA\DESKTOP\SO_ITEM.txt'
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = IT_SO_ITEM.
LOOP AT IT_SO_HEAD INTO RECORD_HEAD.
AT NEW VBELN.
FLAG = 'X'.
ENDAT.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '0101'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'VBAK-AUART'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'VBAK-AUART'
RECORD_HEAD-AUART.
PERFORM BDC_FIELD USING 'VBAK-VKORG'
RECORD_HEAD-VKORG.
PERFORM BDC_FIELD USING 'VBAK-VTWEG'
RECORD_HEAD-VTWEG.
PERFORM BDC_FIELD USING 'VBAK-SPART'
RECORD_HEAD-SPART.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'. " Enter
PERFORM BDC_FIELD USING 'KUAGV-KUNNR'
RECORD_HEAD-KUNNR.
PERFORM BDC_FIELD USING 'KUWEV-KUNNR'
RECORD_HEAD-KUNNR_007.
PERFORM BDC_FIELD USING 'VBKD-BSTKD'
RECORD_HEAD-BSTKD.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RV45A-MABNR(01)'.
LOOP AT IT_SO_ITEM INTO RECORD_ITEM WHERE VBELN = RECORD_HEAD-VBELN.
IF FLAG = 'X'.
PERFORM BDC_FIELD USING 'RV45A-MABNR(01)'
RECORD_ITEM-MABNR.
PERFORM BDC_FIELD USING 'RV45A-KWMENG(01)'
RECORD_ITEM-KWMENG.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=/00'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RV45A-MABNR(02)'.
CLEAR FLAG.
ELSE.
PERFORM BDC_FIELD USING 'RV45A-MABNR(02)'
RECORD_ITEM-MABNR.
PERFORM BDC_FIELD USING 'RV45A-KWMENG(02)'
RECORD_ITEM-KWMENG.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RV45A-KWMENG(02)'.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=p++'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RV45A-MABNR(02)'.
ENDIF.
ENDLOOP.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=SICH'.
data : l_option like ctu_params.
l_option-dismode = CTUMODE.
l_option-updmode = CUPDATE.
l_option-defsize = 'X'.
CALL TRANSACTION 'VA01' USING BDCDATA
options from l_option
MESSAGES INTO MESSTAB.
CLEAR: BDCDATA,BDCDATA[].
ENDLOOP.John - Its best to use BAPI_SALESDOCU_CREATEFROMDATA1.
But if you are still going to do a BDC, Do not use the pagedown for new line items. Use the "Create Item" icon in the bottom of the screen. This way you can add as many items as you want and the cursor will always be in the second row of the table control.
Please check the code below: Always enter in the 2nd row even for the first item. It should work.
LOOP AT IT_SO_ITEM INTO RECORD_ITEM WHERE VBELN = RECORD_HEAD-VBELN.
PERFORM BDC_FIELD USING 'RV45A-MABNR(02)'
RECORD_ITEM-MABNR.
PERFORM BDC_FIELD USING 'RV45A-KWMENG(02)'
RECORD_ITEM-KWMENG.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=POAN'.
ENDIF.
ENDLOOP
reward points if helpful -
How to use CTUPARAMS in CALL TRANSACTION
Hi ,
How to pass ctuparms in CALL TRANSACTIION.
Please give me some example.
Thanks in Advance,
Kuma A.Hi,
Check this example..
DATA: ls_params TYPE ctu_params.
DATA: t_bdcdata TYPE STANDARD TABLE OF bdcdata.
ls_params-dismode = 'N'. " No display
ls_params-updmode = 'S'. " Synchronous
ls_params-defsize = 'X'. " Default window size.
CALL TRANSACTION 'MM01' USING t_bdcdata OPTIONS FROM ls_params.
Thanks
Naren -
How to create bdc for fbs1 using both call transaction and session
Hi Friends,
i have one problem with tcode FBS1, i need to create a bdc program for both call transaction and session method using subroutine.
first call transaction needs to execute if there is an error sesion has to execute. if u have code please forward.
thanks in advance.
chandramouli pothuguntawhere as in call transaction we can do error handling explictly.those errors are stored in one file .this file will send to the error log(session method),i.e session log.
in the above case we use both call transaction n session method at time in one program.sample code is below ,go through it .
data : begin of itxk01 occurs 0,
end of itxk01.
data : bdcdata like itbdcdata occurs 0 with header line.
data : itbdcmsgcoll like itbdcmsgcoll occurs 0 with header line,
itxk01 like itxk01-dup occurs 0 with header line.
call gui-upload.
loop at itxk01.
refresh itxk01.
perform bdc-dynpr0 using 'prg' 'scr'
perform bdc-dynfld using fnam fval
call transaction 'xk01' using bdcdata mode 'a' update 's' messages into itbdcmsgcoll.
if sy-subrc ne 0.
append itxk01 into itxk01-dup.
endif.
endloop.
if not itxk01-dup[] is initial.
refresh itck01.
call bdc_open_group
itxk01 = itxk01-dup.
loop at itxk01.
refresh itxk01.
perform bdc-dynpr0 using 'prg' 'scr'
perform bdc-dynfld using fnam fval
call bdc-insert.
endloop.
call bdc-close-group.
form bdc-dynpr0 using pr sc
endform .
form bdc-field using fnam faval
endform.
this will help u.
reward points for me
kiran -
Hi Experts,
I am using CALL TRANSACTION in ALV for VA02, but I want to go on item number. The following form i have used and it is working but I want to go on perticular item number in va02. pl. guide me.
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
IF rs_selfield-fieldname = 'VBELN'.
READ TABLE it_out INTO wa_itab INDEX rs_selfield-tabindex.
SET PARAMETER ID : 'AUN' FIELD wa_itab-vbeln .
'APO' FIELD wa_itab-posnr.
CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
*=====================================
YusufHi,
use BDC for that....
check out the BDC part of coding for it.
REFRESH itab_bdcdata.
CLEAR itab_bdcdata.
*initial screen
PERFORM bdc_dynpro USING 'SAPMV45A'
'0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VBAK-VBELN'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'VBAK-VBELN'
<b> g_t_atpma4-vbeln.</b>
*item overview screen
PERFORM bdc_dynpro USING 'SAPMV45A'
'4001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=POPO'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV45A-MABNR(04)'.
*popup screen (move item to top)
PERFORM bdc_dynpro USING 'SAPMV45A'
'0251'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RV45A-POSNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=POSI'.
PERFORM bdc_field USING 'RV45A-POSNR'
<b>g_t_atpma4-posnr.</b>
*item overview screen
PERFORM bdc_dynpro USING 'SAPMV45A'
'4001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VBAP-POSNR(01)'.
PERFORM bdc_field USING 'RV45A-VBAP_SELKZ(01)'
'X'.
*Call transaction VA02
CALL TRANSACTION 'VA02' USING itab_bdcdata
MODE 'E'
UPDATE 'A'
MESSAGES INTO itab_bdcmsg.
Patil -
I want in LSMW SAME CODING. THIS IS USING BDC CALL TRANSACTION
REPORT ZXX_BDC_PRA NO STANDARD PAGE HEADING LINE-COUNT 20
LINE-SIZE 150 .
Program Name :ZXX_BDC_PRA *
Object Id : *
Develper Name : praveen *
Start Date : 25.06.07 *
Description : uploading flat file to sap system *
*--structure for Data Uploading.
DATA: BEGIN OF IT_STR ,
VKORG LIKE RF02D-VKORG,
VTWEG LIKE RF02D-VTWEG,
SPART LIKE RF02D-SPART,
KTOKD LIKE RF02D-KTOKD,
NAME1 LIKE KNA1-NAME1,
SORTL LIKE KNA1-SORTL,
ORT01 LIKE KNA1-ORT01,
PSTLZ LIKE KNA1-PSTLZ,
LAND1 LIKE KNA1-LAND1,
SPRAS LIKE KNA1-SPRAS,
END OF IT_STR.
*--Internal Table for Data Uploading.
DATA: ITAB LIKE IT_STR OCCURS 0.
*--Internal Table to sucessfull Records.
DATA: ITAB1 LIKE IT_STR OCCURS 0.
*--Internal Table to Store Error Records.
DATA: ITAB2 LIKE STANDARD TABLE OF IT_STR WITH HEADER LINE.
*--Internal Table for Storing the BDC data.
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
*--Internal Table for storing the messages.
DATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA: COUNT TYPE I VALUE 1,
S VALUE 0, E VALUE 0.
Selection screen *
SELECTION-SCREEN BEGIN OF BLOCK b1
WITH FRAME TITLE TEXT-001.
PARAMETERS: P_FILE TYPE IBIPPARMS-PATH.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
*functionality to use drill down list
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
IMPORTING
FILE_NAME = P_FILE.
Start-of-selection *
START-OF-SELECTION.
DATA FILENAME TYPE STRING.
FILENAME = P_FILE.
*-- Form to upload flatfile data into the internal table.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
FILENAME = FILENAME
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = ITAB
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 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.
*--Generating the BDC table for the fields of the internal table.
LOOP AT ITAB INTO IT_STR.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0107'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RF02D-KTOKD'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RF02D-VKORG'
IT_STR-VKORG.
PERFORM BDC_FIELD USING 'RF02D-VTWEG'
IT_STR-VTWEG.
PERFORM BDC_FIELD USING 'RF02D-SPART'
IT_STR-SPART.
PERFORM BDC_FIELD USING 'RF02D-KTOKD'
IT_STR-KTOKD.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0110'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNA1-SPRAS'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'KNA1-NAME1'
IT_STR-NAME1.
PERFORM BDC_FIELD USING 'KNA1-SORTL'
IT_STR-SORTL.
PERFORM BDC_FIELD USING 'KNA1-ORT01'
IT_STR-ORT01.
PERFORM BDC_FIELD USING 'KNA1-PSTLZ'
IT_STR-PSTLZ.
PERFORM BDC_FIELD USING 'KNA1-LAND1'
IT_STR-LAND1.
PERFORM BDC_FIELD USING 'KNA1-SPRAS'
IT_STR-SPRAS.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0120'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNA1-TXJCD'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0125'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNA1-NIELS'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0360'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNVK-NAMEV(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0310'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNVV-BEGRU'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_DYNPRO USING 'SAPMF02D' '0324'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'KNVP-PARVW(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
*--Calling the transaction 'Vd01'.
CALL TRANSACTION 'VD01' USING BDCDATA MODE 'N' UPDATE 'S'
MESSAGES INTO MESSTAB.
PERFORM MESSAGES.
REFRESH : BDCDATA, MESSTAB.
ENDLOOP.
END-OF-SELECTION.
*--Populating the Success records internal table.
IF ITAB1[] IS NOT INITIAL.
format color 5.
WRITE: /'SUCCESSFUL RECORDS'.
format color off.
LOOP AT ITAB1 INTO IT_STR.
WRITE:/ IT_STR-VKORG,IT_STR-VTWEG,
IT_STR-SPART,IT_STR-KTOKD,
IT_STR-NAME1,IT_STR-SORTL,
IT_STR-ORT01,
IT_STR-PSTLZ,
IT_STR-LAND1,
IT_STR-SPRAS.
S = S + 1.
ENDLOOP.
REFRESH : ITAB1.
WRITE:/ 'TOTAL RECORDS',S.
ENDIF.
*--Populating the error records internal table.
IF ITAB2[] IS NOT INITIAL.
FORMAT COLOR 3.
WRITE :/ 'ERRORS RECORDS ARE'.
FORMAT COLOR OFF.
LOOP AT ITAB2.
WRITE:/ ITAB2-VKORG,
ITAB2-VTWEG,
ITAB2-SPART,ITAB2-KTOKD,
ITAB2-NAME1,ITAB2-SORTL,
ITAB2-ORT01,
ITAB2-PSTLZ,
ITAB2-LAND1,
ITAB2-SPRAS.
E = E + 1.
ENDLOOP.
REFRESH : ITAB2.
WRITE: / 'TOTAL RECORDS',E.
REFRESH : ITAB2.
ENDIF.
End of Selection *
END-OF-SELECTION.
TOP-OF-PAGE *
TOP-OF-PAGE.
WRITE:/ SY-ULINE.
WRITE:/10 'REPORT ID',21 SY-REPID,35 'USERNAME',46 SY-UNAME,
60 'SYSTEM DATE',70 SY-DATUM,80 'SYSTEM TIME',90 SY-UZEIT,
100 'PAGE NO',108 SY-PAGNO.
WRITE:/ SY-ULINE.
FOrm to Populate the BDC table.
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
IF FVAL <> SPACE.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDIF.
ENDFORM. "BDC_FIELD
*& Form messages
FORM MESSAGES .
LOOP AT MESSTAB.
IF MESSTAB-MSGTYP = 'I'.
WRITE : / MESSTAB-MSGV1.
ELSEIF
MESSTAB-MSGTYP = 'S'.
INSERT LINES OF ITAB FROM COUNT TO COUNT INTO TABLE ITAB1 .
COUNT = COUNT + 1.
WRITE : / MESSTAB-MSGV1.
ELSEIF
MESSTAB-MSGTYP = 'E'.
INSERT LINES OF ITAB FROM COUNT TO COUNT INTO TABLE ITAB2.
COUNT = COUNT + 1.
WRITE : / MESSTAB-MSGV1.
ENDIF.
ENDLOOP.
ENDFORM. " messagesHi
Go through the doc and do the same using LSMW
BDC is the way to transfer data by writing a batch input program which can use either session or call transaction method.
LSMW used to transfer data without/less code.
What type of data we transfer using LSMW?
LSMW is best suited for transferring master data.
Actually BDC and LSMW are not comparable at all.
for example LSMW itself can use BDC as a way of mass data transfer.
BDC is a mass data transfer technique via screen logic of existing SAP Data entry transactions. It behaves as if you are manually making thousand of entires into sap system as a background job. And that is probably the reason why BAPI's are preffered over BDC's.
On the other hand LSMW is a tool to facilitate DATA migration from other legacy systems ... It contains step by step procedure for data migration.
Like Managing Data Migration Projects , Creating Source Structures , Mapping Source structures wid Target structures , etc etc
LSMW internally might well be using the following techniqes for data transfer..
1. IDOX
2. Direct Input / BDC
4. BAPI's
LSMW is an encapsulated data transfer tool. It can provide the same functionality as BDC infact much more but when coming to techinical perspective most the parameters are encapulated. To listout some of the differences :
LSMW is basicaly designed for a fuctional consultant who do not do much coding but need to explore the fuctionality while BDC is designed for a technical consultant.
LSMW offers different techinque for migrating data: Direct input ,BAPI,Idoc,Batch input recording. While bdc basically uses recording.
LSMW mapping is done by SAP while in BDC we have to do it explicitly .
LSMW is basically for standard SAP application while bdc basically for customized application.
Coding can be done flexibly in BDC when compared to LSMW
1. Maintain Attributes:
Here you have to choose the second option and you can do the recording how this should work. Then assign the same to the Batch Input Recording name.
2. Maintain Source structure:
Create a structure name
3. Maintain Source field:
In this you have to create a structure same as that of the input file
eg: name
age
4. Maintain structure relations:
This will link the structure to the input file.
5. Maintain field mapping and conversion rules:
Here is the place where you can do coding, depending upon the code you have written or assignment you have done the values will get picked up from the file and get processed.
6. Maintain field mapping and conversion rules:
If you have any fixed values you can define here.
7. Specify files:
Specify the input file path and type.
8. Assign files:
This will assign ur file to the Input file
9. Read Data:
This will read ur data from teh file.
10. Dispaly Read Data:
You can see the uploaded data
11. Convert Data
This will convert the data to the corresponding format for processing
12. Display Converted data:
13. Create batch input session
Here this will create a batch input session for processing
14. Run Batch Input session:
By clicking on the session and process the same you can do teh needfu.
http://www.sapbrain.com/TOOLS/LSMW/SAP_LSMW_steps_introduction.html
http://esnips.com/doc/8e732760-5548-44cc-a0bb-5982c9424f17/lsmw_sp.ppt
http://esnips.com/doc/f55fef40-fb82-4e89-9000-88316699c323/Data-Transfer-Using-LSMW.zip
http://esnips.com/doc/1cd73c19-4263-42a4-9d6f-ac5487b0ebcb/LSMW-with-Idocs.ppt
http://esnips.com/doc/ef04c89f-f3a2-473c-beee-6db5bb3dbb0e/LSMW-with-BAPI.ppt
http://esnips.com/doc/7582d072-6663-4388-803b-4b2b94d7f85e/LSMW.pdf
for Long texts Upload
Please take a look at this..
http://help.sap.com/saphelp_erp2005/helpdata/en/e1/c6d30210e6cf4eac7b054a73f8fb1d/frameset.htm
Reward points for useful Answers
Regards
Anji -
How will you collect error records in call transaction method
hello
how will handle errors in call transaction method...DATA: BEGIN OF ITAB OCCURS 0,
F1(10) TYPE C,
F2(18) TYPE C,
F3(15) TYPE C,
END OF ITAB.
DATA: BEGIN OF ITAB1 OCCURS 0,
F1(2) TYPE C,
F2(10) TYPE C,
F3(18) TYPE C,
F4(15) TYPE C,
END OF ITAB1.
DATA : ITAB2 LIKE ITAB OCCURS 0 WITH HEADER LINE,
IT_SUCCESS LIKE ITAB OCCURS 0 WITH HEADER LINE,
IT_ERROR LIKE ITAB OCCURS 0 WITH HEADER LINE.
DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
T_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
CALL TRANSACTION 'VA01' USING BDCDATA MODE 'N' UPDATE 'S'
MESSAGES INTO T_BDCMSGCOLL.
PERFORM ERRORHANDLING TABLES ITAB2 USING COUNT1 COUNT2.
REFRESH BDCDATA.
FORM ERRORHANDLING TABLES P_ITAB2 STRUCTURE ITAB
USING P_COUNT1
P_COUNT2.
IF SY-SUBRC <> 0.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = SY-MSGID
LANG = '-D'
NO = SY-MSGNO
V1 = SY-MSGV1
V2 = SY-MSGV2
V3 = SY-MSGV3
V4 = SY-MSGV4
IMPORTING
MSG = T_BDCMSGCOLL
EXCEPTIONS
NOT_FOUND = 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.
IF P_COUNT1 = 1.
WRITE : / ' The records not loaded are '.
P_COUNT1 = P_COUNT1 + 1.
ENDIF.
LOOP AT P_ITAB2.
WRITE : / P_ITAB2-F1 , P_ITAB2-F2 , P_ITAB2-F3 .
CLEAR P_ITAB2.
DELETE P_ITAB2 INDEX 1.
ENDLOOP.
WRITE : /.
ELSE.
IF P_COUNT2 = 1.
WRITE : / ' The records loaded are '.
P_COUNT2 = P_COUNT2 + 1.
ENDIF.
LOOP AT P_ITAB2.
WRITE : / P_ITAB2-F1 , P_ITAB2-F2 , P_ITAB2-F3 .
CLEAR P_ITAB2.
DELETE P_ITAB2 INDEX 1.
ENDLOOP.
WRITE : /.
ENDIF.
ENDFORM. " errorhandling -
Hi ,
This is vijay...
can anyone help me plz
Hi,
Iam uploading data using call transaction.Tcode is ff67.In this TCode we have the begining balance(ssald) and ending balance(esald).The new record we are uploading will take the begining balance as the previous record ending balance, if we give the begining balance wrong then the record does not saved it will show error(the begining balance does not match with the prior ending balance).
while uploading the data using MODE A iam able to get the desired output but by using the MODE N iam not able to get the desired output i,e if there is any error in the begining balance also the record is being saved iam not getting the error message.
Iam attaching the code below..please help me
report Z_BRS_BDC no standard page heading line-size 255.
INTERNAL TABLES DECLARATIONS
DATA : BEGIN OF bdcdata OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA : END OF bdcdata.
DATA: LV_OUT TYPE STRING.
DATA : iopt LIKE ctu_params.
DATA : wa_rec_err TYPE i.
DATA : wa_rec_wri TYPE i.
DATA : wa_tot_rec TYPE i.
DATA : amt(16) type c.
DATA : BEGIN OF gu_upload OCCURS 0,
hbkid LIKE febmka-hbkid,
hktid LIKE febmka-hktid,
aznum LIKE febmka-aznum,
azdat LIKE febmka-azdat,
ssald LIKE amt,
esald LIKE amt,
budtm LIKE febmka-budtm,
mnam1 LIKE febmka-mnam1,
jname LIKE febmka-jname,
vgman LIKE febmka-vgman,
valut LIKE febep-valut,
kwbtr(13) TYPE c,
chect_kf LIKE febmkk-chect_kf,
END OF gu_upload.
DATA:GU_DOWNLOAD LIKE GU_UPLOAD OCCURS 0 WITH HEADER LINE.
kishi*********************************
DATA: BEGIN OF itab OCCURS 0,
vgman LIKE febmka-vgman,
valut LIKE febep-valut,
kwbtr(13) TYPE c,
chect_kf LIKE febmkk-chect_kf,
END OF itab.
kishi)(_()00-8-09
DATA: BEGIN OF messtab OCCURS 0.
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF messtab.
DATA: BEGIN OF messtab1 OCCURS 0.
INCLUDE STRUCTURE messtab.
DATA: END OF messtab1.
DATA : BEGIN OF int_count OCCURS 0.
INCLUDE STRUCTURE alsmex_tabline.
DATA : END OF int_count.
DATA: c_tcode LIKE sy-tcode VALUE 'FF67',
c_upd LIKE ctu_params-updmode VALUE 'S',
c_def_size LIKE ctu_params-defsize VALUE 'X'.
*VALUES FOR STARTING COLUMNS AND ROWS IN THE EXCEL SHEET
DATA : c_begcol TYPE i VALUE '1',
c_begrow TYPE i VALUE '1',
*DATA IS ENDED AT THE 13TH COLUMN IN THE EXCELSHEET
c_endcol TYPE i VALUE '13',
*LAST ROW IN THE EXCEL SHEET
c_endrow TYPE i VALUE '65536',
c_path(3) TYPE c VALUE 'C:\'.
*Field Symbols
FIELD-SYMBOLS: <fs>.
SELECTION SCREEN PARAMETERS
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p_file LIKE rlgrap-filename DEFAULT
'C:\ ',
*This is the path for downloading file
P_FNAME2 LIKE RLGRAP-FILENAME ,
c_mode LIKE ctu_params-dismode DEFAULT 'N'.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*F4 HELP FOR FILE SELECTION
PERFORM validate_input_file.
START-OF-SELECTION.
CLEAR gu_upload.
REFRESH gu_upload.
UPLOAD THE DATA FROM FLAT FILE TO INTERNAL TABLE
PERFORM file_upload.
iopt-dismode = c_mode.
iopt-updmode = c_upd.
iopt-defsize = c_def_size.
POPULATE THE DATA THROUGHSCREENS
PERFORM bdc_upload.
END-OF-SELECTION.
*DISPLY THE ERROR RECORDS
PERFORM DISPLAY-DATA.
FORM file_upload *
FORM file_upload.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = c_begcol
i_begin_row = c_begrow
i_end_col = c_endcol
i_end_row = c_endrow
TABLES
intern = int_count
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
LOOP AT int_count.
ASSIGN COMPONENT int_count-col OF STRUCTURE gu_upload TO <fs>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
<fs> = int_count-value.
AT END OF row.
APPEND gu_upload.
CLEAR gu_upload.
ENDAT.
ENDLOOP.
*kishhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
LOOP AT gu_upload.
itab-vgman = gu_upload-vgman.
itab-valut = gu_upload-valut.
itab-kwbtr = gu_upload-kwbtr.
itab-chect_kf = gu_upload-chect_kf.
APPEND itab.
ENDLOOP.
*kishiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii
ENDFORM. "file_upload
*& Form BDC_UPLOAD
FORM bdc_upload.
LOOP AT gu_upload.
CLEAR bdcdata.
REFRESH bdcdata.
*& POPULATE THE DATA FOR FIRST SCREEN
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-JNAME'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'FEBMKA-BUKRS'
'IN14'.
perform bdc_field using 'FEBMKA-HBKID'
gu_upload-hbkid.
perform bdc_field using 'FEBMKA-HKTID'
gu_upload-hktid.
perform bdc_field using 'FEBMKA-AZNUM'
gu_upload-aznum.
perform bdc_field using 'FEBMKA-AZDAT'
gu_upload-azdat.
perform bdc_field using 'FEBMKA-SSALD'
gu_upload-ssald.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
perform bdc_field using 'FEBMKA-BUDTM'
gu_upload-budtm.
perform bdc_field using 'FEBMKA-MNAM1'
gu_upload-mnam1.
perform bdc_field using 'FEBMKA-JNAME'
gu_upload-jname.
*& POPULATE THE DATA FOR SECOND SCREEN
DATA : fnam(20) TYPE c,
idx TYPE c.
MOVE 1 TO idx.
LOOP AT itab.
PERFORM bdc_dynpro USING 'SAPMF40K' '8000'.
PERFORM bdc_field USING 'BDC_CURSOR'
'FEBMKK-CHECT_KF(03)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CONCATENATE 'FEBMKA-VGMAN(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam
itab-vgman.
CONCATENATE 'FEBEP-VALUT(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-valut.
CONCATENATE 'FEBMKA-KWBTR(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-kwbtr.
CONCATENATE 'FEBMKK-CHECT_KF(' idx ')' INTO fnam.
PERFORM bdc_field USING fnam itab-chect_kf.
idx = idx + 1.
ENDLOOP.
*perform bdc_dynpro using 'SAPMF40K' '8000'.
*perform bdc_field using 'BDC_CURSOR'
'FEBMKK-CHECT_KF(01)'.
*perform bdc_field using 'BDC_OKCODE'
'/00'.
*perform bdc_field using 'FEBMKA-VGMAN(01)'
'z001'.
*perform bdc_field using 'FEBEP-VALUT(01)'
'2007/04/26'.
*perform bdc_field using 'FEBMKA-KWBTR(01)'
' 5000-'.
*perform bdc_field using 'FEBMKK-CHECT_KF(01)'
'1122'.
perform bdc_dynpro using 'SAPMF40K' '8000'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKK-CHECT_KF(01)'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
*& POPULATE THE DATA FOR FOURTH SCREEN
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
perform bdc_field using 'BDC_OKCODE'
'=BUCH'.
perform bdc_field using 'FEBMKA-BUKRS'
'IN14'.
perform bdc_field using 'FEBMKA-HBKID'
gu_upload-hbkid.
perform bdc_field using 'FEBMKA-HKTID'
gu_upload-hktid.
perform bdc_field using 'FEBMKA-AZNUM'
gu_upload-aznum.
perform bdc_field using 'FEBMKA-AZDAT'
gu_upload-azdat.
perform bdc_field using 'FEBMKA-SSALD'
gu_upload-ssald.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
perform bdc_field using 'FEBMKA-BUDTM'
gu_upload-budtm.
perform bdc_field using 'FEBMKA-MNAM1'
gu_upload-mnam1.
perform bdc_field using 'FEBMKA-JNAME'
gu_upload-jname.
*perform bdc_dynpro using 'SAPMF40K' '0101'.
*perform bdc_field using 'BDC_OKCODE'
'/EENDE'.
*perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
perform bdc_dynpro using 'SAPMF40K' '0101'.
perform bdc_field using 'BDC_OKCODE'
'/EABBR'.
perform bdc_field using 'BDC_CURSOR'
'FEBMKA-BUKRS'.
*& USING THE CALL TRANSACTION
PERFORM call_transaction.
CLEAR BDCDATA. "<--- Add here
REFRESH BDCDATA. "<--- Add here
ENDLOOP.
ENDFORM. " BDC_UPLOAD
*& Form VALIDATE_INPUT_FILE
FORM validate_input_file.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path = ' c:\ '
mask = ',.txt,.*.'
mode = 'O'
title = 'Upload '
IMPORTING
filename = p_file
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
IF sy-subrc <> 0 AND sy-subrc <> 3.
MESSAGE e100(zm) WITH text-007.
ENDIF.
ENDFORM. " VALIDATE_INPUT_FILE
Start new screen *
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM. "bdc_dynpro
Insert field *
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM. "bdc_field
*& Form CALL_TRANSACTION
FORM call_transaction.
DATA: l_index LIKE sy-tabix.
CALL TRANSACTION c_tcode USING bdcdata
MODE c_mode
MESSAGES INTO messtab.
*POPULATE THE ERROR RECORDS INTO INTERNAL TABLE
IF SY-SUBRC NE 0.
GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.
GU_DOWNLOAD-HBKID = GU_UPLOAD-HBKID.
GU_DOWNLOAD-HKTID = GU_UPLOAD-HKTID.
GU_DOWNLOAD-AZNUM = GU_UPLOAD-AZNUM.
GU_DOWNLOAD-AZDAT = GU_UPLOAD-AZDAT.
GU_DOWNLOAD-ESALD = GU_UPLOAD-ESALD.
GU_DOWNLOAD-SSALD = GU_UPLOAD-SSALD.
GU_DOWNLOAD-BUDTM = GU_UPLOAD-BUDTM.
GU_DOWNLOAD-MNAM1 = GU_UPLOAD-MNAM1.
GU_DOWNLOAD-JNAME = GU_UPLOAD-JNAME.
GU_DOWNLOAD-VGMAN = GU_UPLOAD-VGMAN.
GU_DOWNLOAD-VALUT = GU_UPLOAD-VALUT.
GU_DOWNLOAD-KWBTR = GU_UPLOAD-KWBTR.
GU_DOWNLOAD-CHECT_KF = GU_UPLOAD-CHECT_KF.
APPEND GU_DOWNLOAD.
*DISPLAY THE PROGRESS OF PROCESS
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
PERCENTAGE = 0
TEXT = 'Downloading is in process'.
*DOWNLOADING THE ERROR RECORD
LV_OUT = P_FNAME2.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = LV_OUT
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = GU_DOWNLOAD.
ENDIF.
IF NOT messtab[] IS INITIAL.
PERFORM format_message.
ENDIF.
ENDFORM. " CALL_TRANSACTION
*& Form DISPLAY-DATA
FORM display-data.
SKIP.
WRITE: 'SY-SUBRC' , sy-subrc.
ENDFORM. " DISPLAY-DATA
FORM FORMAT_MESSAGE *
FORM format_message.
DATA: l_msg(100),
l_index LIKE sy-tabix.
LOOP AT messtab.
READ TABLE gu_upload INDEX l_index.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = messtab-msgid
lang = sy-langu
no = messtab-msgnr
v1 = messtab-msgv1
v2 = messtab-msgv2
v3 = messtab-msgv3
v4 = messtab-msgv4
IMPORTING
msg = l_msg
EXCEPTIONS
not_found = 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.
WRITE:/ l_msg.
ENDLOOP.
WRITE:/ l_msg.
ENDFORM.
Message was edited by:
vijayd duvvadaHi,
First , keep the mode "E" and check the debugger , you can exactly see where the error is and let me know, what error and where it is stoping.
By your coding, i suppose to think that, its proble in the amount (currency). When ever you are try to pass the value, and value is not there in upload file or data is mismatch, the call transaction will fail in mode 'A' and succesful in mode 'N'.
In that situation use this before the currecny field.
IF NOT FEBMKA-SSALD IS INTIAL.
perform bdc_field using 'FEBMKA-ESALD'
gu_upload-esald.
ENDIF.
tHANKS
Manju -
Call transaction using bdc tab and also skip first screen??
Hi,
Please help.
I want to call transaction PA30 fill it with values which are determined only at runtime and then skip first screen.
The screen doesn't have parameter fields so i cannot use 'set parameter id'.
I also cannot create a transaction with parameters as I only have these at runtime.
Anyone done anything like this???hi,
you might be populateing the itab bdc_tab with the corresponding values fronm the recording.
while doing the recording go until to the screen wher u want to finsih.
and populate the bdc_tab wit the ok code,screen number and the value.
this will do.
for eg see the code below.
METHOD analyze_log.
DATA : wrk_extid TYPE balhdr-extnumber.
DATA : wrk_date(10) TYPE c.
DATA : it_rspar TYPE TABLE OF rsparams .
DATA : wa_rspar TYPE rsparams.
DATA: it_bdcdata TYPE STANDARD TABLE OF bdcdata,
wa_bdcdata TYPE bdcdata.
DATA: params TYPE ctu_params.
CONSTANTS : object TYPE balhdr-object VALUE 'ZKIV_LOG'.
IF wa_kopf-vertr_nr IS NOT INITIAL.
CONCATENATE wa_kopf-vertr_nr '/' wa_kopf-nachtr_nr INTO wrk_extid.
wrk_date = '01.09.2006'.
SET PARAMETER ID 'BALOBJ' FIELD object .
SET PARAMETER ID 'BALEXT' FIELD wrk_extid.
wa_rspar-selname = 'ALDATE'.
wa_rspar-sign = 'I'.
wa_rspar-kind = 'P'.
wa_rspar-option = 'EQ'.
wa_rspar-low = wrk_date.
APPEND wa_rspar TO it_rspar.
ELSE.
CLEAR wrk_extid.
SET PARAMETER ID 'BALEXT' FIELD wrk_extid.
ENDIF.
Update BDC tab
--Call SLG1 using BDC--&
params-dismode = 'E'. "Show errors only
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLSLG3'.
wa_bdcdata-dynpro = '0100'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_CURSOR'.
wa_bdcdata-fval = 'BALHDR-ALDATE'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BALHDR-ALDATE'.
wa_bdcdata-fval = wrk_date.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_OKCODE'.
wa_bdcdata-fval = '=SELE'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-program = 'SAPLSLG3'.
wa_bdcdata-dynpro = '0100'.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_OKCODE'.
wa_bdcdata-fval = '=&F03'.
APPEND wa_bdcdata TO it_bdcdata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = 'BDC_SUBSCR'.
wa_bdcdata-fval = 'SAPLSBAL_DISPLAY 0101SUBSCREEN'.
APPEND wa_bdcdata TO it_bdcdata.
CALL TRANSACTION 'SLG1' USING it_bdcdata OPTIONS FROM params.
--End of BDC--&
ENDMETHOD.
here wat i m doing is that i dont want the subscreen 101 to be displayed..
Message was edited by:
Sandeep S
Maybe you are looking for
-
Ringtone file not showing up in itunes
when i open itunes, the file where ringtones goes on the top, next to apps, movies, or music, does not show up. how do i get or create a file for ringtones so that i can sync with my iphone?
-
Intermittent skip at BOF (beginning of file)
Hi: I'm trying to narrow down how and why this happens. With my 80 gig Video, and 8 gig nano, every once and a while a song will end, but instead of starting the next song at ZERO, it starts a few seconds to a few minutes into the song. I have Reset
-
Use Crystal to generate a list/count of Crystal Reports by folder on BOE
We use BOE XI R2 SP5 and have rolled out a good number of Crystal Reports in various folders on the server organized by client. We do not have the SDK. Now my manager would like us to be able to write a new Crystal Report that will give us a listing
-
I would like to know how to add filter like how we do in excel. I know the option of sort and filter in numbers, but it is not giving the drop down option.
-
How I can locate GPS location of where a text massage was send from ?