ORDER05 (call transaction) or SALESORDER_CREATEFROMDAT2 (using BAPI)
Hello all,
Should we use ORDER05 or SALESORDER_CREATEFROMDAT2 to place sales orders in SAP?
I know ORDERS05 is using call transaction to create it an the other one is using a BAPI.
One was released for version 46C and the other one from 620
It seems as we need to use the second one but I'm not sure the functionality or what is the purpose for this last message type.
My disconcert is just because I was expecting ORDERS06 for new versions...
Thanks in advance.
Jorge Rosa.
Edited by: Jorge Rosa on Feb 8, 2012 2:46 PM
Hello Jorge,
May be thread in the SD foruns would help you more than database:
http://forums.sdn.sap.com/forum.jspa?forumID=246&start=0
http://forums.sdn.sap.com/forum.jspa?forumID=328&start=0
Regards,
Eduardo Rezende
Similar Messages
-
Hi Guys,
I am calling a transaction in portal using the following code.
CALL METHOD l_portal_manager->navigate_absolute
EXPORTING
navigation_target = 'pcd:portal_content/com.csa.Prototype/com.csiro.Page/SAPWebGUI/sap_transaction_html_gui'
navigation_mode = if_wd_portal_integration=>co_show_external
WINDOW_FEATURES = 'TOOLBAR=FALSE,LOCATION=FALSE,RESIZABLE'
business_parameters = bparams
launcher_parameters = lparams.
But when I test in portal, its pop up a page and shows message No Page Found.
Any idea what should be done.
Thanks
SenthilHi Lekha,
Here is the existing code
l_api_component = wd_comp_controller->wd_get_api( ).
l_portal_manager = l_api_component->get_portal_manager( ).
MOVE 'OkCode' TO param-key.
MOVE '/00' TO param-value.
APPEND param TO lparams.
MOVE 'TCode' TO param-key.
MOVE 'MRBR' TO param-value.
APPEND param TO lparams.
MOVE 'SO_BELNR-LOW' TO param-key.
MOVE stru_invoice-belnr TO param-value.
APPEND param TO bparams.
MOVE 'SO_GJAHR-LOW' TO param-key.
MOVE stru_invoice-gjahr TO param-value.
APPEND param TO bparams.
CALL METHOD l_portal_manager->navigate_absolute
EXPORTING
navigation_target = 'pcd:portal_content/com.csiro.Prototype/com.csi.Page/SAPWebGUI/sap_transaction_html_gui'
navigation_target = 'ROLES://portal_content/com.csiro.Prototype/com.csi.Page/SAPWebGUI/sap_transaction_html_gui'
navigation_mode = if_wd_portal_integration=>co_show_external
WINDOW_FEATURES = 'TOOLBAR=FALSE,LOCATION=FALSE,RESIZABLE'
business_parameters = bparams
launcher_parameters = lparams.
Here they trying to call sap_transaction_html_guilink and giving tcode as a parameter.
Does it work ?
Thanks
Senthil -
Calling Transaction from ALV using OO Method
Hi,
My requirement is as follows....
I have an ALV grid with columns such as month wise Total of a GL account say JAN, feb etc...
When I double click on any of these cells it should take me to the respective Transaction (say FBL3n for the GL account and the company code) . I am able to track the GL account for which the total is displayed and company code is one of my selection criteria. In the main screen of the FBL3N we have to enter the posting date and i also want the Radio button against "all items', presently default is against 'Open Items'. So how can i proceed.
Thanks and Regards,
NamitDATA gr_event_handler TYPE REF TO lcl_event_handler . .. ..
*--Creating an instance for the event handler
CREATE OBJECT gr_event_handler .
*--Registering handler methods to handle ALV Grid events
SET HANDLER gr_event_handler->handle_double_click FOR gr_alvgrid .
CLASS lcl_event_handler IMPLEMENTATION .
*Handle Double Click
METHOD handle_double_click .
PERFORM handle_double_click USING e_row e_column es_row_no .
ENDMETHOD .
CLASS lcl_event_handler DEFINITION
*Double-click control
Methods:
handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column
i_fieldrows TYPE lvc_t_row.
w_fieldrows LIKE LINE OF i_fieldrows,
CALL METHOD o_alvgrid->get_selected_rows
IMPORTING
et_index_rows = i_fieldrows.
LOOP AT i_fieldrows INTO w_fieldrows.
READ TABLE i_batch INTO w_block INDEX w_fieldrows-index.
if sy-subrc = 0.
* CLASS LCL_EVENT_RECEIVER DEFINITION
CLASS LCL_EVENT_RECEIVER DEFINITION.
* Event receiver definitions for ALV actions
PUBLIC SECTION.
CLASS-METHODS:
* Row Double click for dirll down.
HANDLE_DOUBLE_CLICK
FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
IMPORTING E_ROW
E_COLUMN
ES_ROW_NO.
ENDCLASS.
* Implementation
* Every event handler that is specified below should also be set after
* the object has been created. This is done in the PBO processing.
* with the following command
* SET HANDLER oEventreceiver->handle_toolbar FOR o_Alvgrid.
CLASS LCL_EVENT_RECEIVER IMPLEMENTATION.
*& Method handle_double_click
* This method is called when the user double clicks on a line to drill
* down.
* The following are exported from the ALV
* LVC_S_ROW
* LVC_S_COL
* LVC_S_ROID
METHOD HANDLE_DOUBLE_CLICK.
* The double click drill down processing should be
* coded in the form below.
PERFORM F9007_HANDLE_DOUBLE_CLICK USING E_ROW
E_COLUMN
ES_ROW_NO.
ENDMETHOD.
ENDCLASS.
*& Form F9007_HANDLE_DOUBLE_CLICK
* This form is called when the user double clicks on a line to drill
* down.
* -->P_E_ROW_ID - Row ID text
* -->P_E_COLUMN_ID - Column ID
* -->P_ES_ROW_NO - Row number
FORM f9007_handle_double_click USING p_row
p_column
p_row_no.
DATA: lw_output LIKE LINE OF i_output.
* RG:16/11/2004 - Start of Changes
* Need to check that a subtotal or grand total line has not been
* double-clicked, otherwise the report will produce a short dump!
check p_row+0(1) is initial.
* RG:16/11/2004 - End of Changes
READ TABLE i_output INDEX p_row INTO lw_output.
CASE p_column.
WHEN 'KNUMA'.
IF NOT lw_output-knuma IS INITIAL.
SET PARAMETER ID 'VBO' FIELD lw_output-knuma.
CALL TRANSACTION 'VBO3' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'VBAK_VBELN'.
IF NOT lw_output-vbak_vbeln IS INITIAL.
SET PARAMETER ID 'AUN' FIELD lw_output-vbak_vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'VBRK_VBELN'.
IF NOT lw_output-vbrk_vbeln IS INITIAL.
SET PARAMETER ID 'VF' FIELD lw_output-vbrk_vbeln.
CALL TRANSACTION 'VF03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM. " F9007_HANDLE_DOUBLE_CLICK -
why we go for BAPI instead of call transaction ?
Hi,
BAPI is a higher end usage for tranfering the data from SAP to non-SAP and vice-versa. for ex: if we are using VB application,where in that we want to connect to SAP and retireve the data,and then change and update the data in SAP for that purpose we can use that.Apart from that, we can also use it for
Uploading/Downloading the data from SAP to Non-SAP like call transaction, provided we have an existing BAPI for that.BAPI function modules will also do all the checks required for data integrity like Transactions for call transaction.
There is one more advantage using BAPI instead of call transaction. When we go for upgradation, there might be pozzibility to change the screen elements for transactions depending on the requirement. In that case,our call transaction pgm may or may not work (depending on the screen changes they have made). Unless and until we prepare new call transaction we cant use the old call transaction pgm. But in BAPI, SAP promises that they are going to keep the old BAPI and for new functionality they will provide an upgraded BAPI. Until we write a new BAPI pgm, we can use the exisitng BAPI pgm.
********please reward points if the information is helpful to you********** -
D/W BAPI and sesssion ,call transaction
Hi ,
can any one help me in finding difference from BAPI and call transaction ,session method .
If you can provide any URL that can be vary useful .
Thank u,
Mahendra.Hi Mahendra,
http://www.sap-img.com/abap/difference-between-batch-input-and-call-transaction-in-bdc.htm
BAPI stands for Business API(Application Program Interface).
Please check these links which will give you step by step for learning BAPI.
http://www.erpgenie.com/sap/abap/bapi/example.htm
http://www.sap-img.com/bapi.htm
http://help.sap.com/saphelp_nw04/helpdata/en/e0/9eb2370f9cbe68e10000009b38f8cf/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/43/b46c1e53c111d395fa00a0c94260a5/content.htm
http://www.sappoint.com/abap/bapiintro.pdf#search=%22BAPI(SAP)%22
http://www.erpgenie.com/sap/abap/bapi/index.htm
http://www.erpgenie.com/sap/abap/bapi/conventions.htm
http://www.erpgenie.com/sapgenie/docs/BAPI%20Programming.doc
http://64.233.167.104/custom?q=cache:eyMZ5qPOH-0J:www.erpgenie.com/sapgenie/docs/BAPI%2520Intro.doc+bapi&hl=en&ct=clnk&cd=6&ie=UTF-8&client=pub-2723892367221695
http://64.233.167.104/custom?q=cache:c7cwsXMxq-UJ:www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf+bapi&hl=en&ct=clnk&cd=1&ie=UTF-8&client=pub-6389415953938571
http://www.sapgenie.com/abap/bapi/example.htm
http://www.sappoint.com/abap/bapiintro.pdf
http://www.sappoint.com/abap/bapiprg.pdf
http://www.sappoint.com/abap/bapiactx.pdf
http://www.sappoint.com/abap/bapilst.pdf
http://www.sappoint.com/abap/bapiexer.pdf
http://service.sap.com/ale
http://service.sap.com/bapi
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCMIDAPII/CABFAAPIINTRO.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/CABFABAPIREF/CABFABAPIPG.pdf
http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE8/BCFESDE8.pdf
http://www.planetsap.com/Bapi_main_page.htm
http://www.topxml.com/sap/sap_idoc_xml.asp
http://www.sapdevelopment.co.uk/
http://www.sapdevelopment.co.uk/java/jco/bapi_jco.pdf
List of all BAPIs
http://www.planetsap.com/LIST_ALL_BAPIs.htm -
No locks realease with CALL TRANSACTION
Hi all,
I have a problem. I have a call transaction statement inside of a Loop. The problem is that it brings in the messtab a message that says that the product that I'm trying to modify is locked after each loop pass. I've tried to correc it using COMMIT WORK AND WAIT, WAIT UP TO 5 seconds, DEQUEUE ALL and modifying the update technique of the call transaction to S and L....but nothing helps.
In addition, I have the same problem but instead of using a call transaction statement I used a BAPI ( BAPI_PRDSRVAPS_SAVEMULTI2)
I use the BAPI in this way.
CALL FUNCTION 'BAPI_PRDSRVAPS_SAVEMULTI2'
EXPORTING
logical_system = wl_logsis
SAVE_OPTIONS =
COMMIT_CONTROL = ''
BUSINESS_SYSTEM_GROUP =
TABLES
PRODUCT_LOCATION_VERSION = t_location_ver
PRODUCT_LOCATION_VERSION_X = t_location_verx
RETURN = t_return1.
Please some ideas...
Thanks.Hi guys,
I've been trying in the way you said but I've not be able to solve the problem. This is part of the code I wrote before calling BAPI in order to get success.
wl_tabix = 1.
WHILE wl_tabix ne 1.
CALL FUNCTION 'ENQUEUE_/SAPAPO/E_MATKEY'
EXPORTING
MODE_/SAPAPO/MATKEY_LOCK = 'E'
MANDT = SY-MANDT
MATNR = gt_outtab-matnr
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
MOVE sy-subrc TO wl_tabix.
IF wl_tabix ne 1.
CALL FUNCTION 'DEQUEUE_/SAPAPO/E_MATKEY'
EXPORTING
MODE_/SAPAPO/MATKEY_LOCK = 'E'
MANDT = SY-MANDT
MATNR = gt_outtab-matnr.
ENDIF.
ENDWHILE.
Please, some ideas for this because I'm still stuck on it.
Thanks. -
Hı all
ı write like code part but messtab everytime empty
data opt type ctu_params.
opt-dismode = 'E'.
opt-updmode = 'S'.
call transaction 'F-36' using bdcdata messages into messtab options from opt.
you can see below bdcdata information
SAPMF05A 320 X
0 BDC_CURSOR RF05A-NEWKO
0 BDC_OKCODE /00
0 BSEG-WRBTR 30000
0 BSEG-ZFBDT 30.01.2012
0 BSEG-GSBER
0 BSED-WSTAT C
0 BSED-WNAME YNS AMBALAJ SAN VE TİC
0 BSED-BOENO 5177313
0 BSED-BANK 0208-00148
0 BSED-ACCOU 268136107
0 RF05A-NEWBS 15
0 RF05A-NEWKO 109359
SAPMF05A 301 X
0 BDC_CURSOR BSEG-WRBTR
0 BSEG-GSBER
0 BDC_OKCODE /00
0 BSEG-WRBTR *
0 BSEG-ZFBDT 41011
SAPMF05A 301 X
0 BDC_CURSOR BSEG-WRBTR
0 BDC_OKCODE #AD?
why messages is empty help me please
regard sinanMerhaba,
Muhtemelen tamamı Türkçe gönderimler silinecektir. Bu yüzden geri kalanını inglizce yazacağım.
There can be several reasons. First of all, is your definitions like that?
DATA : bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
DATA : messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
-Add MODE parameter with 'A' value so you can analyze batch step by step.
-Is options important? Try call transaction without options parameter. If it is; try change sequence of parameters. messages parameter to last of parameters. Here is my suggestion:
CALL TRANSACTION 'F-36' USING bdcdata OPTIONS FROM opt MODE 'A' MESSAGES INTO messtab.
- last thing i can suggest search BAPI.
Take care.
Çağatay -
Issue in background job for call transaction
Dear All,
I am facing a strange issue with call transaction. I need to add some Purchase requisitons in the APO using Call transactionmethod. It is working fine In All screen mode and No Screen Mode. But when I schedule the program in BAckground processing it is not wokring fine. It is not creating any Purchase requisitioins. When I debug the background Job it is creating Purchase requisitions.
Please find the code below
DATA: l_wa_params TYPE ctu_params.
l_wa_params-dismode = l_c_mode.
l_wa_params-updmode = 'A'.
l_wa_params-defsize = 'X'.
l_wa_params-racommit = 'X'.
CALL TRANSACTION '/SAPAPO/RRP3' USING fp_i_bdcdata OPTIONS FROM l_wa_params
MESSAGES INTO l_i_bdcmsgcoll.Hi,
I have exactly the same problem with transaction /SAPAPO/RRP5.
Thanks in advance for your help,
Yannick CAREL -
How to get a message from call transaction in RFC call
Hello :
I would like to ask one favor i make a 2 call transaction in a RFC funtion when i make the first CALL TRANSACTION using te next statement.
CALL TRANSACTION 'F-43'
USING bdcdata MESSAGES INTO messtab2 OPTIONS FROM l_fromopt.
I recive the number of the document in the field sy-msgv1 from the message table messtab2 , then i make the second CALL TRANSACTION and i am waiting to get the other number of the document from the table messtab3 using the next statatement.
CALL TRANSACTION 'FIBLFFP'
USING bdcdata MESSAGES INTO messtab3 OPTIONS FROM l_fromopt. but now the table messtab3 don't send the number of document , and i need to get the number of this document for making a REFERENCE.
thanks a lot for you helpFORM bdc_transaction USING tcode TYPE tcode.
DATA: l_mstring(480).
DATA: l_subrc TYPE sy-subrc,
lwa_t100 TYPE t100.
DATA : gv_ctumode TYPE ctu_params-dismode VALUE 'A'.
call transaction using
BREAK-POINT.
REFRESH gt_messtab.
CLEAR gwa_messtab.
gv_ctumode = gc_ctumode.
CALL TRANSACTION tcode USING gi_bdcdata "#EC CI_CALLTA
MODE gv_ctumode
UPDATE gc_cupdate
MESSAGES INTO gt_messtab.
l_subrc = sy-subrc.
IF sy-subrc <> 0.
WRITE: / 'CALL_TRANSACTION',
tcode,
'returncode:',
l_subrc,
'RECORD:',
sy-index.
LOOP AT gt_messtab INTO gwa_messtab.
CLEAR lwa_t100.
SELECT SINGLE * FROM t100 INTO lwa_t100 WHERE sprsl = gwa_messtab-msgspra
AND arbgb = gwa_messtab-msgid
AND msgnr = gwa_messtab-msgnr.
IF sy-subrc = 0.
l_mstring = lwa_t100-text.
IF l_mstring CS '&1'.
REPLACE '&1' WITH gwa_messtab-msgv1 INTO l_mstring.
REPLACE '&2' WITH gwa_messtab-msgv2 INTO l_mstring.
REPLACE '&3' WITH gwa_messtab-msgv3 INTO l_mstring.
REPLACE '&4' WITH gwa_messtab-msgv4 INTO l_mstring.
ELSE.
REPLACE '&' WITH gwa_messtab-msgv1 INTO l_mstring.
REPLACE '&' WITH gwa_messtab-msgv2 INTO l_mstring.
REPLACE '&' WITH gwa_messtab-msgv3 INTO l_mstring.
REPLACE '&' WITH gwa_messtab-msgv4 INTO l_mstring.
ENDIF.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
id = gwa_messtab-msgid
lang = sy-langu
no = gwa_messtab-msgnr
v1 = gwa_messtab-msgv1
v2 = gwa_messtab-msgv2
v3 = gwa_messtab-msgv3
v4 = gwa_messtab-msgv4
IMPORTING
msg = l_mstring
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.
CONDENSE l_mstring.
IF NOT l_mstring IS INITIAL.
WRITE: / gwa_messtab-msgtyp, l_mstring(250).
MESSAGE l_mstring TYPE 'I'.
ENDIF.
ELSE.
WRITE: / gwa_messtab.
ENDIF.
ENDLOOP.
SKIP.
ENDIF. -
Call transaction in a BDC program...
Hi,
I can see in one of the BDC program, the call transaction command is used. This BDC program updates the Vendor master table.
CALL TRANSACTION BLF00-TCODE USING FT
MODE ANZ_MODE
UPDATE UPDATE.
Now, I am trying to know what transaction code it is using in above call transaction to update vendor master.
Regards,
Rajesh.Put a break point on that statement in that program and run your program using MODE 'A', step thru the screens, when you get to that statement in debug mode, simply click on the BLF00-TCODE and see the value.
Regards,
Rich Heilman -
CALL TRANSACTION in user dialog
Hi!
I'm having problem to use syntax CALL TRANSACTION in user dialog (SE80). My syntax is as follows:
CALL TRANSACTION 'F-43' USING BDCDATA MODE 'N' UPDATE 'S'
MESSAGES INTO t_msg.
My problem is I cannot execute this syntax in background mode although I set the MODE as N(Do not display) or P(Do not display; debugging possible).
However, if I set MODE as A(Display screen) or E(Display only if an error occurs), it works but foreground execution.
Hope to get respond from you guys.
Thank you and best regards.Hi,
Chk this link if it can help you.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes/sdn_oss_bc_aba/~form/handler%7b5f4150503d3030323030363832353030303030303031393732265f4556454e543d444953504c4159265f4e4e554d3d3732353531%7d
Regards,
Balaji
*Rewrds for helpful answers -
Pls tell me how to check the errors in BDC CALL TRANSACTION
lemme know
HI ,
check for the bold part..
REPORT ZCONCUR_UPLOAD_TO_SAP NO STANDARD PAGE HEADING
LINE-SIZE 170
LINE-COUNT 58
MESSAGE-ID ZM.
Internal Table *
*-Internal table for the Header input data from the Comma Delimited file
DATA: BEGIN OF IT_DATA_HEADER OCCURS 0,
ID TYPE C, "Identifier
BUKRS(6), "Company Code
WAERS(7), "Currency
NEWKO(12), "Vendor
XBLNR(16), "First Name
XBLNR1(16), "Last Name
BLDAT(12), "Document/Posting date
PK(15), "Reference
WRBTR(15), "Amount
BKTXT(27), "Doc.header text
BKTXT1(27), "Item text
SELNO(8), "Serial No
END OF IT_DATA_HEADER.
*-Internal table for the item input data from the Comma Delimited file
DATA: BEGIN OF IT_DATA_ITEM OCCURS 0,
ID TYPE C, "Identifier
NEWKO(19), "Vendor
BUKRS(6), "Company Code
KOSTL(12), "Cost center
WRBTR(15), "Amount
SGTXT(50), "Text
SELNO(8), "Serial No Header
SELNO1(8), "Serial No item
END OF IT_DATA_ITEM .
*-Internal table for the Header input data from the Comma Delimited file
*-Removing " " From Comma Delimited file
DATA: BEGIN OF IT_FINAL_HEADER OCCURS 0,
ID TYPE C, "Identifier
BUKRS LIKE BKPF-BUKRS, "Company Code
WAERS LIKE BKPF-WAERS, "Currency
NEWKO TYPE RF05A-NEWKO, "Vendor
XBLNR LIKE BKPF-XBLNR,
XBLNR1 LIKE BKPF-XBLNR,
BLDAT(10), " LIKE BKPF-BLDAT, "Date
PK(15), "Reference
WRBTR(15), "Amount
BKTXT LIKE BKPF-BKTXT, "Doc.header text
BKTXT1 LIKE BKPF-BKTXT, "Item text
SELNO TYPE I, "Serial No
FLAG TYPE C,
END OF IT_FINAL_HEADER.
*-Internal table for the Item input data from the Comma Delimited file
*-Removing " " From Comma Delimited file
DATA: BEGIN OF IT_FINAL_ITEM OCCURS 0,
ID TYPE C, "Identifier
NEWKO TYPE RF05A-NEWKO, "Account
BUKRS LIKE BKPF-BUKRS, "Company Code
KOSTL LIKE BSEG-KOSTL, "Cost Center
WRBTR(15), "Amount
SGTXT LIKE BSEG-SGTXT, "Text
SELNO TYPE I, "Serial No
SELNO1 TYPE I, "Serial No
END OF IT_FINAL_ITEM.
**-Internal table for the input data from the file
DATA : BEGIN OF P_DOWNLOAD OCCURS 0,
V_FILEREC(1000) TYPE C,
END OF P_DOWNLOAD.
*--- Internal Table for Success messages
DATA : BEGIN OF I_SUCC OCCURS 0,
HEADER(50),
MSG(100), "SUCCESS message
END OF I_SUCC.
*--- Internal Table for error messages
DATA : BEGIN OF I_ERROR_LOG OCCURS 0,
HEADER(50),
MSG(100), "Error message
END OF I_ERROR_LOG.
*--- Internal table for getting the BDC data
DATA : BEGIN OF IT_BDCDATA OCCURS 0.
INCLUDE STRUCTURE BDCDATA. " Table to hold BDC data
DATA : END OF IT_BDCDATA.
*--- Internal table for reading the messages of call transaction
DATA : BEGIN OF IT_MESSAGE_TAB OCCURS 0.
INCLUDE STRUCTURE BDCMSGCOLL. "Table to hold messages
DATA : END OF IT_MESSAGE_TAB.
DATA DECLARATIONS *
DATA:
V_ERROR_COUNTER TYPE I, " error records counter
V_MSG(100), " used for Error message
V_LINES TYPE I, " used for format message
V_HEAD LIKE SY-CPROG, " Heading for report
XMODE VALUE 'N', " EXECUTION MODE
V_SUCCESS_COUNTER TYPE I, " Success records counter
V_UNAME LIKE APQI-USERID, " User Name
V_TOTAL TYPE I. " Total records uploaded
DATA : V_SELNO TYPE I.
DATA : V_CHECK TYPE I.
DATA : V_HEADER(50) TYPE C. "Header Information
DATA : V_SUCC_MSG LIKE BDCMSGCOLL-MSGV1."Success Message
DATA : V_ZERO(4) VALUE '0.00'. "Checking Zero
DATA : V_CHECK_ZERO LIKE BSEG-WRBTR. "Checking Zero
DATA : V_CHECK_ZERO1 LIKE BSEG-WRBTR. "Checking Zero
DATA : V_SYSTEMDATE LIKE BKPF-BUDAT.
DATA : V_VALUE TYPE I.
DATA : V_VALUE1 TYPE I.
DATA : V_VALUE2 TYPE I.
Flags
DATA:
F_BDC_OPEN, " BDC session open check.
F_CONTINUE_PROCESSING. " To continue further processing
CONSTANTS *
CONSTANTS:
C_SESSION_NAME LIKE APQI-GROUPID VALUE 'F-43', "Session
C_X VALUE 'X'. " Used for falgs
SELECTION SCREEN *
*--- Selection Screen with Block and title
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-038.
PARAMETER: P_FNAME LIKE RLGRAP-FILENAME DEFAULT
'C:\Concur.txt'.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION SCREEN ON VALUE-REQUEST
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
FILE_NAME = P_FNAME
EXCEPTIONS
OTHERS = 1.
IF SY-SUBRC <> 0.
MESSAGE E999 WITH 'Error in opening a file'(009).
ENDIF.
Top-of-page *
TOP-OF-PAGE .
*---perform to display the standard header
PERFORM STANDARD_HEADER.
--START OF SELECTION--
START-OF-SELECTION.
Upload data
PERFORM UPLOAD_DATA.
move data to bdcdata internal table
PERFORM MOVE_DATA_F43.
*--- Posting the valid data to F-43
IF F_BDC_OPEN = C_X.
*---perform to close bdc group
PERFORM CLOSE_GROUP.
ENDIF.
END OF SELECTION *
END-OF-SELECTION.
CHECK F_CONTINUE_PROCESSING IS INITIAL.
PERFORM DISPLAY_REPORT.
*& Form MESSAGE_FORMAT
MESSAGE FORMAT
FORM MESSAGE_FORMAT.
CLEAR V_MSG.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MESSAGE_TAB-MSGID
LANG = 'EN'
NO = IT_MESSAGE_TAB-MSGNR
V1 = IT_MESSAGE_TAB-MSGV1
V2 = IT_MESSAGE_TAB-MSGV2
V3 = IT_MESSAGE_TAB-MSGV3
V4 = IT_MESSAGE_TAB-MSGV4
IMPORTING
MSG = V_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
V_MSG = SPACE.
ENDIF.
ENDFORM. " MESSAGE_FORMAT
*& Form F4_HELP
FORM F4_HELP.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_FILENAME = ' '
DEF_PATH = 'C:\'
MODE = 'O'
TITLE = TEXT-025 "'Upload File'
IMPORTING
FILENAME = P_FNAME
EXCEPTIONS
SELECTION_CANCEL = 3
SELECTION_ERROR = 4.
CASE SY-SUBRC.
WHEN 3.
MESSAGE I000 WITH TEXT-007. " Selection Cancel.
WHEN 4.
MESSAGE I000 WITH TEXT-008. " Selection Error.
ENDCASE.
ENDFORM. " F4_HELP
*& Form STANDARD_HEADER
STANDARD_HEADER
FORM STANDARD_HEADER.
FORMAT COLOR COL_HEADING INTENSIFIED OFF.
CASE V_HEAD.
WHEN 'Summary Report'(001).
WHEN 'SUCC_REPORT'.
**---To display the field headings for Success report.
ULINE (154).
WRITE : /001 SY-VLINE,
002 'Header Details '(011),
052 SY-VLINE,
053 'Document Number'(036),
154 SY-VLINE.
ULINE (154).
WHEN 'Error Report'.
**---To display the field headings for error report.
ULINE (154).
WRITE : /001 SY-VLINE,
002 'Header Details '(011),
052 SY-VLINE,
053 'Error Message/Text'(035),
154 SY-VLINE.
ULINE (154).
ENDCASE.
ENDFORM. " STANDARD_HEADER
*& Form DISPLAY_REPORT
Display Report Details
FORM DISPLAY_REPORT.
PERFORM SUMMARY_REPORT.
PERFORM SUCC_REPORT.
PERFORM ERROR_REPORT.
ENDFORM. " DISPLAY_REPORT
*& Form SUMMARY_REPORT
Success & Error Count Number
FORM SUMMARY_REPORT.
WRITE : /030 SY-TITLE.
SKIP 1.
WRITE : /005 'Program Name : '(032),
024 SY-REPID,
080 'Date :'(033),
088 SY-DATUM.
SKIP 1.
V_HEAD = 'Summary Report'(001).
ULINE (132).
WRITE : /1 SY-VLINE,
5 'No. of Records read from the Data file'(014),
45 ':', V_TOTAL LEFT-JUSTIFIED,
132 SY-VLINE,
/1 SY-VLINE,
5 'No. of Records successfully posted'(015),
45 ':', V_SUCCESS_COUNTER LEFT-JUSTIFIED,
132 SY-VLINE,
/1 SY-VLINE,
5 'No. of Records Failed'(023),
45 ':'(031), V_ERROR_COUNTER LEFT-JUSTIFIED,
132 SY-VLINE.
IF NOT F_BDC_OPEN IS INITIAL.
WRITE: /1 SY-VLINE,
5 'Session Name'(022),
45 ':'(031), C_SESSION_NAME LEFT-JUSTIFIED,
132 SY-VLINE.
ENDIF.
ULINE (132).
IF NOT F_BDC_OPEN IS INITIAL.
WRITE: /1 SY-VLINE,
5 'Session Name'(022),
45 ':'(031), C_SESSION_NAME LEFT-JUSTIFIED,
132 SY-VLINE.
ENDIF.
ULINE (132).
ENDFORM. " SUMMARY_REPORT
*& Form ERROR_REPORT
Error Report
FORM ERROR_REPORT.
IF NOT I_ERROR_LOG[] IS INITIAL.
SORT I_ERROR_LOG. " by tcode.
V_HEAD = 'Error Report'(013).
NEW-PAGE.
LOOP AT I_ERROR_LOG.
WRITE: /001 SY-VLINE,
002 I_ERROR_LOG-HEADER,
052 SY-VLINE,
053 I_ERROR_LOG-MSG,
154 SY-VLINE.
ULINE (154).
ENDLOOP.
ENDIF.
ENDFORM. " ERROR_REPORT
*& Form ERROR_REPORT
Success Report
FORM SUCC_REPORT.
IF NOT I_SUCC[] IS INITIAL.
SORT I_SUCC. " by tcode.
V_HEAD = 'SUCC_REPORT'(034).
NEW-PAGE.
LOOP AT I_SUCC.
WRITE: /001 SY-VLINE,
002 I_SUCC-HEADER,
052 SY-VLINE,
053 I_SUCC-MSG,
154 SY-VLINE.
ULINE (154).
ENDLOOP.
ENDIF.
ENDFORM. " SUCC_REPORT
*& Form OPEN_SESSION
FORM OPEN_SESSION.
DATA : V_DATE LIKE SY-DATUM. " For Hold Date.
V_DATE = SY-DATUM - 1. " Hold date
V_UNAME = SY-UNAME. " User name
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = C_SESSION_NAME
HOLDDATE = V_DATE
KEEP = 'X'
USER = V_UNAME
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'Session can not be opened'(019).
STOP.
ENDIF.
F_BDC_OPEN = 'X'.
ENDFORM. " OPEN_SESSION
*& Form BDC_INSERT
FORM BDC_INSERT USING P_TCODE TYPE ANY.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = P_TCODE
TABLES
DYNPROTAB = IT_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'Unable to insert, Error record'(037).
STOP.
ENDIF.
ENDFORM. " BDC_INSERT
*& Form CLOSE_GROUP
FORM CLOSE_GROUP.
CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE I000 WITH 'Session can not be closed'(021).
STOP.
ENDIF.
ENDFORM. " CLOSE_GROUP
*& Form UPLOAD_DATA
Upload Data From the text file
FORM UPLOAD_DATA.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = P_FNAME
FILETYPE = 'DAT'
TABLES
DATA_TAB = P_DOWNLOAD
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
OTHERS = 10.
IF SY-SUBRC NE 0.
MESSAGE E000 WITH 'File does not Exist'(003).
ELSEIF P_DOWNLOAD[] IS INITIAL.
MESSAGE E000 WITH 'Input file is empty'(004).
ENDIF.
DATA: V_INDEX LIKE SY-TABIX.
IF NOT P_DOWNLOAD[] IS INITIAL.
LOOP AT P_DOWNLOAD.
V_INDEX = SY-TABIX.
*Removing double quotes
DO.
REPLACE '"' WITH '' INTO P_DOWNLOAD.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
ENDDO.
MODIFY P_DOWNLOAD INDEX V_INDEX.
CONDENSE P_DOWNLOAD.
IF P_DOWNLOAD(1) = '1'.
*Finding the header information, creating key field
V_SELNO = SY-TABIX.
ENDIF.
WE ARE NOT HAVING KEY FIELD IN HEADER/ITEM IN THE FILE.
SO WE ARE CREATING MANUAL KEY FIELD IN INTERNAL TABLE (SELNO).
IF P_DOWNLOAD(1) = '1'.
Moving header information into IT_DATA_HEADER Internal Table
SPLIT P_DOWNLOAD AT ',' INTO
IT_DATA_HEADER-ID
IT_DATA_HEADER-BUKRS
IT_DATA_HEADER-WAERS
IT_DATA_HEADER-NEWKO
IT_DATA_HEADER-XBLNR
IT_DATA_HEADER-XBLNR1
IT_DATA_HEADER-BLDAT
IT_DATA_HEADER-PK
IT_DATA_HEADER-WRBTR
IT_DATA_HEADER-BKTXT
IT_DATA_HEADER-BKTXT1.
IT_DATA_HEADER-SELNO = V_SELNO.
CONDENSE : IT_DATA_HEADER-ID, IT_DATA_HEADER-BUKRS,
IT_DATA_HEADER-WAERS, IT_DATA_HEADER-NEWKO,
IT_DATA_HEADER-XBLNR, IT_DATA_HEADER-XBLNR1,
IT_DATA_HEADER-BLDAT, IT_DATA_HEADER-PK,
IT_DATA_HEADER-WRBTR, IT_DATA_HEADER-BKTXT,
IT_DATA_HEADER-BKTXT1, IT_DATA_HEADER-SELNO.
APPEND IT_DATA_HEADER.
CLEAR IT_DATA_HEADER.
ELSEIF P_DOWNLOAD(1) = '2'.
Moving header information into IT_DATA_ITEM Internal Table
SPLIT P_DOWNLOAD AT ',' INTO
IT_DATA_ITEM-ID
IT_DATA_ITEM-NEWKO
IT_DATA_ITEM-BUKRS
IT_DATA_ITEM-KOSTL
IT_DATA_ITEM-WRBTR
IT_DATA_ITEM-SGTXT.
IT_DATA_ITEM-SELNO = V_SELNO.
IT_DATA_ITEM-SELNO1 = SY-TABIX.
CONDENSE: IT_DATA_ITEM-ID,IT_DATA_ITEM-NEWKO,IT_DATA_ITEM-BUKRS,
IT_DATA_ITEM-KOSTL,IT_DATA_ITEM-WRBTR,
IT_DATA_ITEM-SGTXT,IT_DATA_ITEM-SELNO,
IT_DATA_ITEM-SELNO1.
APPEND IT_DATA_ITEM.
CLEAR IT_DATA_ITEM.
ENDIF.
ENDLOOP.
*SORT HEADER & ITEM INTERNAL Table
SORT IT_DATA_HEADER BY SELNO.
SORT IT_DATA_ITEM BY SELNO SELNO1.
*Header Information
LOOP AT IT_DATA_HEADER.
IT_FINAL_HEADER-ID = IT_DATA_HEADER-ID.
IT_FINAL_HEADER-BUKRS = IT_DATA_HEADER-BUKRS.
IT_FINAL_HEADER-WAERS = IT_DATA_HEADER-WAERS.
IT_FINAL_HEADER-NEWKO = IT_DATA_HEADER-NEWKO.
CONCATENATE IT_DATA_HEADER-XBLNR IT_DATA_HEADER-XBLNR1
INTO IT_FINAL_HEADER-XBLNR.
IT_FINAL_HEADER-BLDAT = IT_DATA_HEADER-BLDAT.
IT_FINAL_HEADER-PK = IT_DATA_HEADER-PK.
IT_FINAL_HEADER-WRBTR = IT_DATA_HEADER-WRBTR.
IT_FINAL_HEADER-BKTXT = IT_DATA_HEADER-BKTXT.
IT_FINAL_HEADER-BKTXT1 = IT_DATA_HEADER-BKTXT1.
IT_FINAL_HEADER-SELNO = IT_DATA_HEADER-SELNO.
APPEND IT_FINAL_HEADER.
CLEAR IT_FINAL_HEADER.
ENDLOOP.
*Item Information
LOOP AT IT_DATA_ITEM.
CHECKING ZERO IN THE IT_DATA_ITEM-WRBTR FIELD
It will not append the IT_FINAL_ITEM
V_CHECK_ZERO = IT_DATA_ITEM-WRBTR.
IF V_CHECK_ZERO NE V_CHECK_ZERO1. "V_ZERO.
IT_FINAL_ITEM-ID = IT_DATA_ITEM-ID.
IT_FINAL_ITEM-NEWKO = IT_DATA_ITEM-NEWKO.
IT_FINAL_ITEM-BUKRS = IT_DATA_ITEM-BUKRS.
IT_FINAL_ITEM-KOSTL = IT_DATA_ITEM-KOSTL.
IT_FINAL_ITEM-WRBTR = IT_DATA_ITEM-WRBTR.
IT_FINAL_ITEM-SGTXT = IT_DATA_ITEM-SGTXT.
IT_FINAL_ITEM-SELNO = IT_DATA_ITEM-SELNO.
IT_FINAL_ITEM-SELNO1 = IT_DATA_ITEM-SELNO1.
APPEND IT_FINAL_ITEM.
CLEAR IT_FINAL_ITEM.
CLEAR : V_CHECK_ZERO,V_CHECK_ZERO1.
ENDIF.
ENDLOOP.
SORT IT_FINAL_HEADER BY SELNO.
SORT IT_FINAL_ITEM BY SELNO.
ENDIF.
ENDFORM. " UPLOAD_DATA
*& Form MOVE_DATA_F43
Call Transaction F-43
FORM MOVE_DATA_F43.
*MOVE THE SYSTEM DATE TO
CLEAR V_SYSTEMDATE.
V_SYSTEMDATE = SY-DATUM.
LOOP AT IT_FINAL_HEADER.
CLEAR V_CHECK.
V_CHECK = IT_FINAL_HEADER-SELNO.
MOVE HEADER DATA TO BDCDATA INTERNAL TABLE
PERFORM BDC_BUILD_HEADER.
MOVE ITEM DATA TO BDCDATA INTERNAL TABLE
PERFORM BDC_BUILD_ITEM.
<b>* Call Transcation (F-43)
CALL TRANSACTION 'F-43' USING IT_BDCDATA
MODE XMODE
UPDATE 'S'
MESSAGES INTO IT_MESSAGE_TAB.</b>
IF error record found, it will move to batch Input session
IF SY-SUBRC <> 0.
V_ERROR_COUNTER = V_ERROR_COUNTER + 1. " Inc the counter
CLEAR V_LINES.
DESCRIBE TABLE IT_MESSAGE_TAB LINES V_LINES.
READ TABLE IT_MESSAGE_TAB INDEX V_LINES.
*--- <b>Perform to read the messages
PERFORM MESSAGE_FORMAT.</b>*--- Appending the error records into error table
CONDENSE IT_FINAL_HEADER-BUKRS.
CONDENSE IT_FINAL_HEADER-NEWKO.
CONDENSE IT_FINAL_HEADER-XBLNR.
CONDENSE IT_FINAL_HEADER-BLDAT.
CONCATENATE IT_FINAL_HEADER-BUKRS ','
IT_FINAL_HEADER-NEWKO ','
IT_FINAL_HEADER-XBLNR ','
IT_FINAL_HEADER-BLDAT
INTO V_HEADER.
I_ERROR_LOG-HEADER = V_HEADER.
I_ERROR_LOG-MSG = V_MSG.
APPEND I_ERROR_LOG.
CLEAR I_ERROR_LOG.
*-- Posting the error record to Session
IF F_BDC_OPEN IS INITIAL.
PERFORM OPEN_SESSION.
ENDIF.
PERFORM BDC_INSERT USING 'F-43'.
ELSE.
V_SUCCESS_COUNTER = V_SUCCESS_COUNTER + 1.
*-- READING ONLY SUCCESS MESSAGE(MSGNR 312)
LOOP AT IT_MESSAGE_TAB WHERE MSGNR = '312'.
V_SUCC_MSG = IT_MESSAGE_TAB-MSGV1.
ENDLOOP.
*--- Perform to read the messages
PERFORM MESSAGE_FORMAT.
*--- Appending the Success records into Success table
CONDENSE IT_FINAL_HEADER-BUKRS.
CONDENSE IT_FINAL_HEADER-NEWKO.
CONDENSE IT_FINAL_HEADER-PK.
CONDENSE IT_FINAL_HEADER-XBLNR.
CONDENSE IT_FINAL_HEADER-BLDAT.
CONCATENATE IT_FINAL_HEADER-BUKRS ','
IT_FINAL_HEADER-NEWKO ','
IT_FINAL_HEADER-PK ','
IT_FINAL_HEADER-XBLNR ','
IT_FINAL_HEADER-BLDAT
INTO V_HEADER.
I_SUCC-HEADER = V_HEADER.
I_SUCC-MSG = V_SUCC_MSG.
APPEND I_SUCC.
CLEAR I_SUCC.
ENDIF.
V_TOTAL = V_TOTAL + 1.
REFRESH: IT_BDCDATA,
IT_MESSAGE_TAB.
CLEAR: IT_BDCDATA,
IT_MESSAGE_TAB.
ENDLOOP.
ENDFORM. " MOVE_DATA_F43
Start new screen *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROGRAM.
IT_BDCDATA-DYNPRO = DYNPRO.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
Insert field *
FORM BDC_FIELD USING FNAM FVAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
*& Form BDC_BUILD_HEADER
Header Information
FORM BDC_BUILD_HEADER.
Header Details
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0100'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '/00'.
PERFORM BDC_FIELD USING 'BKPF-BLDAT'
IT_FINAL_HEADER-BLDAT.
PERFORM BDC_FIELD USING 'BKPF-BLART'
'KR'.
PERFORM BDC_FIELD USING 'BKPF-BUKRS'
IT_FINAL_HEADER-BUKRS.
Moveing System date to Posting date in the document
CLEAR IT_FINAL_HEADER-BLDAT.
CONCATENATE V_SYSTEMDATE4(4) V_SYSTEMDATE0(4)
INTO IT_FINAL_HEADER-BLDAT.
PERFORM BDC_FIELD USING 'BKPF-BUDAT'
IT_FINAL_HEADER-BLDAT.
PERFORM BDC_FIELD USING 'BKPF-WAERS'
IT_FINAL_HEADER-WAERS.
PERFORM BDC_FIELD USING 'BKPF-XBLNR'
IT_FINAL_HEADER-PK.
PERFORM BDC_FIELD USING 'BKPF-BKTXT'
IT_FINAL_HEADER-BKTXT.
PERFORM BDC_FIELD USING 'FS006-DOCID' '*'.
IF IT_FINAL_HEADER-WRBTR CA '-'.
REPLACE '-' WITH SPACE INTO IT_FINAL_HEADER-WRBTR.
CONDENSE IT_FINAL_HEADER-WRBTR.
PERFORM BDC_FIELD USING 'RF05A-NEWBS' '25'.
ELSE.
PERFORM BDC_FIELD USING 'RF05A-NEWBS' '31'.
ENDIF.
PERFORM BDC_FIELD USING 'RF05A-NEWKO'
IT_FINAL_HEADER-NEWKO.
*-- Item Vendor Details
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0302'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'BSEG-WRBTR'
IT_FINAL_HEADER-WRBTR.
PERFORM BDC_FIELD USING 'BSEG-SGTXT'
IT_FINAL_HEADER-BKTXT1.
ENDFORM. " BDC_BUILD_HEADER
*& Form BDC_BUILD_ITEM
Item Information
FORM BDC_BUILD_ITEM.
DATA L_FIRST TYPE C.
LOOP AT IT_FINAL_ITEM WHERE SELNO = V_CHECK.
IF L_FIRST IS INITIAL.
L_FIRST = C_X.
Line Item ( PstKy,Account & New Company Code)
CONDENSE IT_FINAL_HEADER-BLDAT.
IF IT_FINAL_ITEM-WRBTR CA '-'.
REPLACE '-' WITH SPACE INTO IT_FINAL_ITEM-WRBTR.
CONDENSE IT_FINAL_ITEM-WRBTR.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0302'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' '/00',
'RF05A-NEWBS' '50',
'RF05A-NEWKO' IT_FINAL_ITEM-NEWKO,
'RF05A-NEWBK' IT_FINAL_ITEM-BUKRS.
ELSE.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0302'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' '/00',
'RF05A-NEWBS' '40',
'RF05A-NEWKO' IT_FINAL_ITEM-NEWKO,
'RF05A-NEWBK' IT_FINAL_ITEM-BUKRS.
ENDIF.
Amount & Text
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0300'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' '/00',
'BSEG-WRBTR' IT_FINAL_ITEM-WRBTR,
'BSEG-SGTXT' IT_FINAL_ITEM-SGTXT,
'DKACB-FMORE' 'X'.
Cost Center
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' 'ENTE',
'COBL-KOSTL' IT_FINAL_ITEM-KOSTL.
ELSE.
Line Item ( PstKy,Account & New Company Code)
IF IT_FINAL_ITEM-WRBTR CA '-'.
REPLACE '-' WITH SPACE INTO IT_FINAL_ITEM-WRBTR.
CONDENSE IT_FINAL_ITEM-WRBTR.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0300'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' '/00',
'RF05A-NEWBS' '50',
'RF05A-NEWKO' IT_FINAL_ITEM-NEWKO,
'RF05A-NEWBK' IT_FINAL_ITEM-BUKRS.
ELSE.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0300'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' '/00',
'RF05A-NEWBS' '40',
'RF05A-NEWKO' IT_FINAL_ITEM-NEWKO,
'RF05A-NEWBK' IT_FINAL_ITEM-BUKRS.
ENDIF.
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' 'ENTE'.
Amount & Text
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0300'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' '/00',
'BSEG-WRBTR' IT_FINAL_ITEM-WRBTR,
'BSEG-SGTXT' IT_FINAL_ITEM-SGTXT,
'DKACB-FMORE' 'X'.
Cost Center
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' 'ENTE',
'COBL-KOSTL' IT_FINAL_ITEM-KOSTL.
ENDIF.
ENDLOOP.
*Save Details
PERFORM BDC_DYNPRO USING 'SAPMF05A' '0300'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM BDC_DYNPRO USING 'SAPLKACB' '0002'.
PERFORM BDC_FIELD USING: 'BDC_OKCODE' 'ENTE'.
ENDFORM. " BDC_BUILD_ITEM
Thanks
Mahesh -
Hi experts,
I have a screen where I can call another transaction. My problem is if I call another transaction, how can I know what was the previos program. So I need to pass the program name with call transaction somehow.
I did'nt find the relevant information in syst.Hi
Try like this
call transaction <t-code>
using (bdc table)
mode (display mode)
update ( update mode)
messages into message itab.
The bdc table must be declared like bdcdata
The (display mode) determines how the transaction will be processed: u2018Au2019 (display all), u2018Eu2019 (display errors only), or u2018Nu2019 (no display)
The (update mode) : u2018Su2019 (synchronous) or A (asynchronous).
Regards
ABG. -
CALL transaction vs manual updation
Dear all,
I faced a very rear problem today so i want to share with you as well as want to find out the reason why it has happened....
I am working in the transaction VL02N and when i go and delete the handling unit number manually through the transaction,the entry of the handling unit number is deleted from the table VEKP.but when i delete the handling unit number through the CALL TRANSACTION using the program ,the entry from the table VEKP is not deleted.
I had heard upto now that CALL TRANSACTIONS are only the movement from screens as we so manually through the transactions...So why this difference...Quite strange.....
Does anybody know why this happed... and how could i bring the both in sync...
Regards
Kanishakyou could process your call transaction in the light and see what happens.
Since the coding behind is the absolute same, there shouldnt be a difference. Or you have some customer mdifications/enhancements which are programmed to act different between call transaction and manually using the TA. -
Call Transaction - Synchronous vs Asynchronouus
Hi ,
I have a text file which has 5 records containing LFA1-NAME1 & LFA1-LAND1 values.
Records 1,2,4,5 have correct values while Record 3 has wrong information.
I have uploaded the data using Call Transaction Asynchronous mode using following statement:
CALL TRANSACTION 'XK01' using BDCDATA mode 'N' update 'A' messages into
BDCMSGCOLL.
Since , its in Asynchronous mode after Records 1,2 are uploaded its skipping 3 rd record and Record 4,5 are uploaded. Its fine.
Now I have uploaded the data using Call Transaction Synchronous mode using following statement:
CALL TRANSACTION 'XK01' using BDCDATA mode 'N' update 'S' messages into
BDCMSGCOLL.
Surprisingly, here too after Records 1,2 are uploaded its skipping 3 rd record and Record 4,5 are uploaded.
What I generally know is with Synchronous Update mode Records 1,2 should uploaded and since Record 3 is wrong, the updation process should stop.Records 4,5 should not get uploaded. But its not happening.
Can I know what is the reason?
If required, I can also post the code.
Thanks,
Shivaa...Hi Shiva,
Synchronous & Asynchronous mode in Data transfer have nothing to do with error records.
When Commit work occurs, Synchronous update retain the same dialog work process for updating database. While in Asynchronous mode, it search for update process for database update and program execution continue with the same dialog work process.
In case of error record, the program will not reach to that level where it has to trigger the commit work (it triggers only when the record does not contain any error) and so all the records except 3rd will get uploaded.
Regards,
Ni3
Maybe you are looking for
-
Hi, I had to restore my computer to factory setting. When I was finished and reinstalled itunes. None of my music showed up. Where is it and why didn't it show up when I reinstalled itunes? I even plugged in my apple shuffle and it didn't appear.
-
I can't upgrade my iPhone 4 to iOS 5.1.1 from the iPhone using wifi!! the installation start but before finishing an error occurred and the installation stop! help
-
How to get subclass method in an inheritance?
Hi guys, I got the following classes: public abstract class Animal { private Long id; private String name; public Long getId() {return id;} public void setId(Long id) {this.id = id;} public String getName() {return name;}
-
Changing primary DNS server in Unity 10.5
We have a Unity server that has a DNS setting that is no longer valid. I was wondering if it would change the license MAC and invalidate the licenses if I were to change that primary and secondary DNS setting. Thanks, Jordan
-
Itunes Freezes when attempting to Burn CD's
My itunes freezes when I attempt to burn CD's. I have uninstalled and reinstalled itunes with no change. I have attempted to update CD/DVD burner drivers. No luck any advice?