Steps for debugging a transaction VA01
dear experts,
can you please guide me through the steps I need to take to debug a programme transaction VA01?
Thanks
Hello
Search the forum for 'debug popup' .
This wll help you to get into debug after the popup appears.
This will let you look at the call stack and perhaps determin how you got there.
Regards
Greg Kern
Similar Messages
-
Steps for debugging the ABAP program
Hi
Im a SAP-BW Consultant. I have a program in R/3-Side. I want to debugg that program.
Please give me the steps for debugging that program .
KumarHi Ravi,
Check this link
http://help.sap.com/saphelp_nw2004s/helpdata/en/b3/d322540c3beb4ba53795784eebb680/content.htm
I give you some usefull Tips.
Type /h in command Bar.
Then press F8 then system will automatically goes to debugging mode.
Then press F5. Then it shows the Each and every line of your program.
or type break-point in your SE38 program. Then press F8. it will goes to the Debugging mode.
Thanks.
Reward If Helpful.
Message was edited by:
Viji -
BAPI for Transaction VA01?
How to Develope an interface program to upload the sales order data from legacy system to SAP using BAPI for Transaction VA01.Explain me clearly?
VA01:
BAPI_SALESORDER_CREATEFROMDAT1
BAPI_SALESORDER_CREATEFROMDAT2
steps for bapi creation
STEP 1 - Define a structures for the BAPI
In this step a structures for the parameters and tables of the function module used for the BAPI are defined.
Use Data type -> Structure
Define the following structures:
ZBAPI_ORDER_STATUS_IMPORT which contains the following fields:
ORDERID Order number (Keyfield)
SPRAS Language
ExcludeInactive - Checkbox - Exclude inactive status
ZBAPISTAT:
STEP 2 - Write Function Module
Important notes:
Each BAPI must have its own function group.
Under the attributes tab remember to select Processing Type Remote Enabled module, otherwise the function module cannot be invoked via RFC and used as a BAPI
Import/Export parameters can only be BY VALUE for an RFC enabled function module
We are only creating one BAPI in this example, but you can create related BAPIs in the same function pool, so they will be able to share global data.
Code
Notes:
The subroutine SET_RETURN_MESSAGE is a standard routine used for BAPIs that use the BAPIRETURN structure
In form Z_BAPI_GET_ORDER_SYSTEM_STATUS there is a test IF 1 = 2. If the test is true a message is displayed. The condition will obviously never be true, and we will never want to display a message in a BAPI. The reason why it is included is, that it create a reference for the message, so that the WHERE USED functionality can be used for the message. This is the SAP standard way to handle it, copied from the Company Code GetList BAPI.
INCLUDE LZBAPISTATUSUXX
THIS FILE IS GENERATED BY THE FUNCTION LIBRARY. *
NEVER CHANGE IT MANUALLY, PLEASE! *
INCLUDE LZBAPISTATUSU02.
"Z_BAPI_GET_ORDER_SYSTEM_STATUS
INCLUDE LZBAPISTATUSTOP - Global data
FUNCTION-POOL ZBAPISTATUS. "MESSAGE-ID Z3
Types:
begin of Type_tj02t,
istat like tj02t-istat,
txt04 like tj02t-txt04,
txt30 like tj02t-txt30,
end of type_tj02t.
DATA:
Declarations for TABLE parameter
T_BAPISTAT like ZBAPISTAT occurs 0,
G_BAPISTAT like ZBAPISTAT,
Table for object texts
t_tj02t type type_tj02t occurs 0,
g_tj02t type type_tj02t.
Structure for return messages
DATA:
BEGIN OF MESSAGE,
MSGTY LIKE SY-MSGTY,
MSGID LIKE SY-MSGID,
MSGNO LIKE SY-MSGNO,
MSGV1 LIKE SY-MSGV1,
MSGV2 LIKE SY-MSGV2,
MSGV3 LIKE SY-MSGV3,
MSGV4 LIKE SY-MSGV4,
END OF MESSAGE.
INCLUDE LZBAPISTATUSF01 - Subroutines
***INCLUDE LZBAPISTATUSF01 .
*& Form SET_RETURN_MESSAGE
This routine is used for setting the BAPI return message.
The routine is a standard routine for BAPIs that handles the message
structure for the BAPIRETURN structure. It has been copied from the
BAPI Company Code Getlist
-->P_MESSAGE text
<--P_RETURN text
form SET_RETURN_MESSAGE USING VALUE(P_MESSAGE) LIKE MESSAGE
CHANGING P_RETURN LIKE BAPIRETURN.
CHECK NOT MESSAGE IS INITIAL.
CALL FUNCTION 'BALW_BAPIRETURN_GET'
EXPORTING
TYPE = P_MESSAGE-MSGTY
CL = P_MESSAGE-MSGID
NUMBER = P_MESSAGE-MSGNO
PAR1 = P_MESSAGE-MSGV1
PAR2 = P_MESSAGE-MSGV2
PAR3 = P_MESSAGE-MSGV3
PAR4 = P_MESSAGE-MSGV4
LOG_NO = ' '
LOG_MSG_NO = ' '
IMPORTING
BAPIRETURN = P_RETURN
EXCEPTIONS
OTHERS = 1.
endform. " SET_RETURN_MESSAGE
FUNCTION Z_BAPI_GET_ORDER_STATUS
FUNCTION z_bapi_get_order_system_status.
""Local interface:
*" IMPORTING
*" VALUE(I_AUFNR) TYPE AUFNR
*" VALUE(I_SPRAS) TYPE SPRAS DEFAULT SY-LANGU
*" VALUE(I_EXCLUDEINACTIVE) TYPE CHAR1 OPTIONAL
*" EXPORTING
*" VALUE(RETURN) TYPE BAPIRETURN
*" TABLES
*" T_BAPISTAT STRUCTURE ZBAPISTAT
DATA:
l_aufnr LIKE afko-aufnr,
l_objnr LIKE jest-objnr.
Check if order exists
SELECT SINGLE aufnr
FROM afko
INTO l_aufnr
WHERE aufnr = BAPI_ORDER_STATUS_IMPORT-orderid.
IF sy-subrc NE 0.
CLEAR message.
message-msgty = 'E'.
message-msgid = 'Z3'.
message-msgno = '000'.
message-msgv1 = BAPI_ORDER_STATUS_IMPORT-orderid.
PERFORM set_return_message USING message
CHANGING return.
IF 1 = 2.
The only reason to include this statement, that will obviously
never execute, is that it will create a referecence so that you
can find out where a particular message is being used. This
functionality is used by the BAPIs programmed by SAP
MESSAGE e000(z3).
ENDIF.
ENDIF.
CHECK return IS INITIAL.
Read order status
CONCATENATE 'OR' BAPI_ORDER_STATUS_IMPORT-orderid INTO l_objnr.
IF BAPI_ORDER_STATUS_IMPORT-i_excludeinactive = 'X'.
SELECT objnr stat inact
FROM jest
INTO TABLE t_bapistat
WHERE objnr = l_objnr AND
inact 'X'.
ELSE.
SELECT objnr stat inact
FROM jest
INTO TABLE t_bapistat
WHERE objnr = l_objnr.
ENDIF.
IF sy-subrc 0.
No object status found
CLEAR message.
message-msgty = 'E'.
message-msgid = 'Z3'.
message-msgno = '001'.
message-msgv1 = BAPI_ORDER_STATUS_IMPORT-orderid.
PERFORM set_return_message USING message
CHANGING return.
IF 1 = 2.
MESSAGE e001(z3).
ENDIF.
ENDIF.
CHECK return IS INITIAL.
Read order status texts
SELECT istat txt04 txt30
FROM tj02t
INTO TABLE t_tj02t
FOR ALL ENTRIES IN t_bapistat
WHERE istat = t_bapistat-stat AND
spras = BAPI_ORDER_STATUS_IMPORT-i_spras.
SORT t_tj02t BY istat.
LOOP AT t_bapistat INTO g_bapistat.
READ TABLE t_tj02t
WITH KEY istat = g_bapistat-stat BINARY SEARCH
INTO g_tj02t.
IF sy-subrc = 0.
MOVE:
g_tj02t-txt04 TO g_bapistat-txt04,
g_tj02t-txt30 TO g_bapistat-txt30.
MODIFY t_bapistat FROM g_bapistat TRANSPORTING txt04 txt30.
ENDIF.
ENDLOOP.
ENDFUNCTION.
OBJNR like JEST-OBJNR
STAT like JEST-STAT
INACT like JEST-INACT
TXT04 like TJ02T-TXT04
TXT30 likeTJ02T-TXT30
Important note:
You will have to define a structure for every parameter in the BAPI. You cannot use the same structures used in existing applications because BAPI structures are frozen when BAPIs are released and then there are restrictions on changing them.
STEP 3 - Create the API Method Using the BAPI WIZARD
The BAPI wizard is used toTo expose the remote function module as a BAPI. The wizard will generate some additional code, so the function module is a valid method of the BOR. This allows the BAPi to be called as a workflow method in addition to be called by an outside program.
Note: Each function module corresponds to a method in the BOR
Go to the Business Object Builder SWO1.
You can either create the new Object type as a subtype of an existing business object or create a new business object from scratch. In this example it would be obvious to create the Object type as a subtype of BUS2005 Production order. However, to illustrate how to create a new Object type from scratch, we will do this.
In the Object/Interface type field write the name of the new Business Object: ZORDERSTAT. Press enter and fill in the additional fields necessary to create the object type.
Supertype: Not relevant because we are creating our object from scratch
Program. This is the name of the program where the wizard generates code for the Object type, NOT the function module we created earlier. The program name must not be the name of an existing program.
Press enter and create the new business object. Note that when you create the business object a standard interface, an attribute ObjectType and the methods ExistenceCheck and Display are automatically generated. These cannot be changed !
The next step is to add the Z_BAPI_GET_ORDER_STATUS method to the business object. Select Utilities -> API methods -> Add method and write the name of the function module in the dialog box. Next the dialog ox show below will be shown. This is the start screen of the BAPI wizard. Proceed with wizard by pressing the button.
After you have finished the wizard, you will notice that the ZGetOrderStatus has been added to the business object:
You can double-click on the method to see its properties. To use the business object you must change the Object type status to Implemented. Use menu Edit->Change releases status->Object type->To implemented. No you can test the object (Press F8).
Note that the BAPI wizard has added a wrapper class for the function module so it can be sued as method in the business object. Choose menu Goto->Program to display the program:
Implementation of object type ZORDERSTAT *****
INCLUDE <OBJECT>.
BEGIN_DATA OBJECT. " Do not change.. DATA is generated
only private members may be inserted into structure private
DATA:
" begin of private,
" to declare private attributes remove comments and
" insert private attributes here ...
" end of private,
KEY LIKE SWOTOBJID-OBJKEY.
END_DATA OBJECT. " Do not change.. DATA is generated
BEGIN_METHOD ZGETORDERSTATUS CHANGING CONTAINER.
DATA:
BAPIORDERSTATUSIMPORT LIKE ZBAPI_ORDER_STATUS_IMPORT,
RETURN LIKE BAPIRETURN,
TBAPISTAT LIKE ZBAPISTAT OCCURS 0.
SWC_GET_ELEMENT CONTAINER 'BapiOrderStatusImport'
BAPIORDERSTATUSIMPORT.
SWC_GET_TABLE CONTAINER 'TBapistat' TBAPISTAT.
CALL FUNCTION 'Z_BAPI_GET_ORDER_STATUS'
EXPORTING
BAPI_ORDER_STATUS_IMPORT = BAPIORDERSTATUSIMPORT
IMPORTING
RETURN = RETURN
TABLES
T_BAPISTAT = TBAPISTAT
EXCEPTIONS
OTHERS = 01.
CASE SY-SUBRC.
WHEN 0. " OK
WHEN OTHERS. " to be implemented
ENDCASE.
SWC_SET_ELEMENT CONTAINER 'Return' RETURN.
SWC_SET_TABLE CONTAINER 'TBapistat' TBAPISTAT.
END_METHOD.
STEP 4 - Final stepsWhen the Business object has been checked and the documentation created, the following steps must be carried out:
Release the BAPI function module (in the Function Builder).
Release the business object type (in the BOR ObjectType -> Change release status to -> Implemented ).
Release the BAPI as a method in the BOR (Release the methods you has created - Set the cursor on the method then
Edit -> Change release status -> Object type component -> To released )
For potential write BAPIs: Release the IDoc and its segments
You can now display the BAPI in the BAPI Explorer:
for detailed expalnation
http://www.erpgenie.com/abap/bapi/example.htm
do reward if helpful -
Need to write BDC program for Transaction VA01(Sales order creation)
Dear Friends,
I need to write a BDC program for uploading data into sap from an excel sheet file. The data contain Material Description,Customer Name,Date of Delivery,Quantity,Unit of measure etc.
material desc customer date of delivery quantity unit of measure
abcdf xyz ltd 24.12.2011 2 4 gm
The transaction is VA01.How will I find the correct fields and related tables? What are the related fields needed in the transaction VA01.
Thanking you
Sacheen Pukhrambam
Moderator Message: Put some self-effort before posting your question. Thread locked.
Edited by: Suhas Saha on Nov 25, 2011 1:25 PMHello,
You could try using a BDC with VL04 but first preference would be to see if there are any BAPI functions (search for BAPI) that can do this.
If BUS2032 doesn't have an attribute that you want (eg shipping point) then sub-delegate to ZBUS2032 and add the attribute, it's straightforward. You just have to know how to determine the value programmatically.
regards
Rick Bakker
hanabi technology -
Implementing GOS for standard transaction VA01/VA02/VA03
Hi Experts,
I need to implement GOS ( Generic Object Services ) for standard transaction VA01/VA02/VA03 .
Can anyone tell me how to achieve this ?
I have seared for this and found the badi GOS_MULT_PUBLISH could be useful for this purpose.
But I don't know how to implement this so that GOS button will be visible for tcode VA01/VA02/VA03.
Thanks and regards,
SNJYHi there,
the most typical reason why the GOS button does not appear is because the user is not of Dialog type. Please go to SU01 and make sure that your user is a Dialog user (not Service, nor System, etc.)
And, the parameter Patrick is talking about is called SGOSNOBUT.
Cheers,
Juan
Edited by: Juan Pablo Barcenas on Jun 8, 2011 4:50 PM -
Transaction VA01 separate LUW / commit DB when creating in Background PO
Hi experts,
I have a request to create a PO for a particular item of a sales document, and for the PO created I need to fill one component and to lock it. I found out that the only way to create for sure a PO is the FM BAPI_ORDER_CREATE. To update the components and to lock it I need a BDC. I did not found any FM which might do something like this.
The place where I trigger the creation of PO is user_exit_save_document. My logic is the following: I create the PO with BAPI_ORDER_CREATE in another LUW then trigger commit both with BAPI commit and commit work for this separate LUW, In the same LUW in which I created the PO, after the commit, I call a BDC Function Module that updates the component and locks the PO.
I observed that the BAPI ORDER CREATE works fine - it always creates me a PO. When running in the next step the BDC FM , it always returns me the message "PO (before created) does not exist". In debug Mode everything works fine, PO is created and also BDC FM does not return me any error.
It seems to me that when the logic runs in dialog mode all the PO tables are not updated before I run the BDC. As I am openning a separate LUW and I trigger explicitly COMMIT in this separate LUW I was wondering why does not the update of PO tables take place? Is this because the transaction VA01 does not allow any commits for the programms that are called from the transaction? Or what am I missing?
I did a kind of workaround and I don#t run the BDC only after the batch input is created, but I was wondering why am I wrong.
Thank you for the support,
FlorinHi
I suppose the problem is the time taken to run the saving process, this process is still running while your BDC is starting.
U should use a COMMIT WORK and WAIT in order to be sure the saving process is over before calling the BDC.
Now I don't understand where you have place the COMMIT for the BAPI
Max
P.S.: BAPI ORDER CREATE doesn't exist in my systen, I have BAPI_PO_CREATE1
Max
Edited by: max bianchi on Aug 15, 2011 1:40 PM -
BDC for multiple line items (VA01)
Hi Experts,
I create a BDC for VA01 transaction for single line item in that now i want to upload multiple line items also with o/p of total no. of records uploaded, no. of records posted and the no. of error records...
Can any body explain with sample code...Hi,
if the flat file is containing header and item records...
first split those records tooo two internal tables header and item..
Loop at header ...
process of recording steps for header....
Loop at item...
here create a varialbe with char 2 .. for index value....
process of item recording steps..
increment the index value by 1....
here u have to pass 'p+' OK_CODE..
Endloop ..(item)
Endloop...(header)
for more info goo through this link...
http://www.sap-img.com/bdc.htm
hope helpful
Raghunath.S -
Ship-to address blanks out after changing in header of transaction VA01
Experts,
When I change the ship-to party address(ex: street and city) in header->partner in VA01 transaction and hit the button 'Branch Transfer' (Implemented Badi) in main screen of VA01, then the ship-to address blanks out and just remains WE and Ship-to party no. and remaining everything like name, street, city and postal code erases.
When I did the same change without hitting the 'Branch Transfer' button in the same main screen of transaction VA01' it works fine and it kept all the fields like WE, Ship-to party no, name, street, city and postal code.
I spent lot of time in debugging by checking what is happening before and after hitting 'Branch Transfer' button and I also checked the internal tables XVBPA and XVBADR but I didn't find the correct solution.
One more thing I would like to share with you is, once I change the ship-to party address in VA01 it is keeping the old address and new address in the tables XVBADR and XVBPA with the address numbers as WE $0000.
Could you please verify and let me know what exactly the problem when I change the ship-to part address in the transaction VA01.
<Points offer removed by moderator>
Regards,
Kalikonda.
Edited by: Vinod Kumar on Sep 26, 2011 11:36 AMExperts,
Is there any solution for this ?
Regards,
Kalikonda. -
Please send detail steps for uploading legacy data
Hi friends,
please send detail steps for uploading legacy data
Thanking u in advance,
Diwa.HI U CAN USE LSMW TO UPLOAD LEGACY DATA
LSMW is used for migrating data from a legacy system to SAP system, or from one SAP system to another.
Apart from standard batch/direct input and recordings, BAPI and IDocs are available as additional import methods for processing the legacy data.
The LSMW comprises the following main steps:
Read data (legacy data in spreadsheet tables and/or sequential files).
Convert data (from the source into the target format).
Import data (to the database used by the R/3 application.
But, before these steps, you need to perform following steps :
Define source structure : structure of data in the source file.
Define target structure : structure of SAP that receives data.
Field mapping: Mapping between the source and target structure with conversions, if any.
Specify file: location of the source file
Of all the methods used for data migration like BDC, LSMW , Call Transaction which one is used most of the time?
How is the decision made which method should be followed? What is the procedure followed for this analysis?
All the 3 methods are used to migrate data. Selection of these methods depends on the scenario, amount of data need to transfer. LSMW is a ready tool provided by SAP and you have to follow some 17 steps to migrate master data. While in BDCs Session method is the better choice because of some advantages over call transaction. But call transaction is also very useful to do immediate updation of small amout of data. (In call transaction developer has to handle errors).
SO Bottom line is make choice of these methods based of real time requirements.
These methods are chosen completely based on situation you are in. Direct input method is not available for all scenario, else, they are the simplest ones. In batch input method ,you need to do recording for the transaction concerned. Similarly, IDoc, and BAPI are there, and use of these need to be decided based on the requirement.
Try to go through the some material on these four methods, and implement them. You will then have a fair idea about when to use which.
LSMW Steps For Data Migration
How to develop a lsmw for data migration for va01 or xk01 transaction?
You can create lsmw for data migration as follows (using session method):
Example for xk01 (create vendor)
Initially there will be 20 steps but after processing 1 step it will reduced to 14 for session method.
1. TCode : LSMW.
2. Enter Project name, sub project name and object name.
Execute.
3. Maintain object attributes.
Execute
select Batch Input recording
goto->Recording overview
create
recording name.
enter transaction code.
start recording
do recording as per ur choice.
save + back.
enter recording name in lsmw screen.
save + back
Now there will be 14 steps.
2. MAINTAIN SOURCE STRUCTURES.
Here you have to enter the name of internal table.
display change
create
save + back
3. MAINTAIN SOURCE FIELDS.
display change
select structure
source_fields->copy fields.
a dialogue window will come .
select -> from data file
apply source fields
enter No. of fields
length of fields
attach file
save + back
4. MAINTAIN STRUCTURE RELATIONS
display change
save + back
5. MAINTAN FIELD MAPPING & CONVERSION RULE
display change
click on source field, select exact field from structue and enter
repeat these steps for all fields.
save+back
6. MAINTAIN FIXED VALUES, TRANSACTION, USER DEFINED
execute
save + back
7. SPECIFY FILES.
display change
click on legacy data
attah flat file
give description
select tabulatore
enter
save + back
8. ASSIGN FILE
execute
display change
save + back
9. IMPORT DATA.
execute
display change
save + back
10. DISPLAY IMPORTED DATA
enter ok, it willl show records only.
back
11. CONVERT DATA
execute
display change
save + back
12. DISPLAY CONVERTED DATA
execute
display change
save + back
13. CREATE BATCH INPUT SESSION
tick keep batch input folder
F8
back
14. RUN BATCH INPUT SESSION.
sm35 will come
Object name will be shown here
select object & process -
Hello gurus,
as this is technical question but still,
Can you plz give me the techniqe for Dbugging
Thank youHi,
/h is used for debugging
whenever you face a problem in SAP execute the same transaction again and then enter /h in the command field. this will swith on the debugging mode and then the program will be displayed and you will have control on each step.
The following keys are used by abapers.
F5 to (single step) is used to execute the statment step by step.
F6 is used to execute only a Perform statment.
F7 is used to execute come out of the Perform statment
F8 is used to execute completly.
Before you go to debugging mode you should be aware of some of the technical terms like.
Parameter
Select option
Variables
Constant
Tables
Structure
Data field
Function module
Sub routines
Modular program
and so on -
"No transaction type is available for creating a transaction" service order
Hi all,
I am new in IC .
I try to create service order or service ticket for incoming calls
We are using CRM 7.0
After I confirm the account I try to create service order
But no screen displayed and error "No transaction type is available for creating a transaction" occurs
in customizing there is a transaction type SRVO, also I copied it to ZRVO
But here how can I define that this transaction type is assigned to this application??
Please reply in detail steps.
Thank you.Hi Rupesh,
Thanks for your reply..
I made a lot of controls but I can't find where I am wrong..
My senario is, taking phones, create interaction record and create order for further investigation.
I copied IC_AGENT role.
I copied transaction type 0010 to Z010
I create business transaction named ZBTP for transaction type Z010
I made Define Transaction Types for Navigation for Z010
Then Define Business Role -> Assign Function Profiles
Here I assign my business transaction ZBTP to IC_BT function profile
But when I connect tot the system with user having this business role
I can create interaction record with type Z010, it is ok.
When I press Service Order it gives this error.
Work center id for Service order is : IC_UIU_SVO
I copied my business role from IC_AGENT, and here this work center id was not active
In my business role I made it active. Is this work center can't used in IC senario
Also how can I understand which transaction type is needed for it??
If I know which transaction type is needed to create service order or service ticket under IC, then I will control it of course..
I also copied transaction type TSVO(service IC) to ZSVO and do the above things for this type too..
But nothing changed..
Please help !! -
Implementation of Note 660016 for Follow up Transactions in CRM 2007
Hi All,
We have a requirement to not show all the business activities and tasks available in crm for all the transactions as follow-ups.
For this reason we implemented the note - 660016. Now its working fine.. It is not showing business acitivities and tasks as follow-up transactions in the CRM GUI and Web UI 2007 for all the transactions.
But when I create a business activity as a followup for ztransaction in define copying control for business transactions.. It is showing in the CRM GUI but not in the WebUI.
But at the same time when I create a service complaint as a followup for my ztransaction, I am seeing the service complaint as a follow up in both CRM GUI and Web UI.
Is the implementation of this note restricting business activities and taks in WebUI forever or do I need to write any extra logic or is this any configuration issue ?
Regards,
Raghu
Edited by: Raghu Danda on Mar 8, 2009 1:17 PM
Edited by: Raghu Danda on Mar 9, 2009 5:14 AMHi Robert,
Thanks for your reply
I checked the link, But I didnt get the full information there.
Firstly, my problem is not with upgrade and
the second thing is before implementing the note 660016, I am able to see both in CRM GUI and Web
UI all the business acitivities and tasks along with other transaction types as follow-up transactions.
After implementing the note, I am not able to see only the business activities and tasks in the Web UI
as follow-ups and in CRM GUI, its appearing as follow-ups.
Hope you got my question now...
If this is not done in customization I need to code according to my scenario..
When I kept a break point this class is triggering from another class.
Do I need to code in the class CL_CRM_UIU_BT_ACT_CUST_GET, according to my scenario.
Again I have a question here, will you please tell me in which component this class exists, so that I
will enhance that component.
Because when I debug after clicking on the Follow-Up button,this class is calling some where
down...So I am unbale to get the right component for this.
Regards,
Raghu
I -
Is BDC's CALL TRANSACTION 'VA01' is not equals to ONLINE(manual) creation?
Hi Experts,
Ours is IS-Oil.
If the user do not enters/inputs OIC_MOT (Mode Of Transport) at ITEM level on the External Details popup, SAP will get it from Customar Master-KNA1 and populates on it, because its a mandatory field (OIC_MOT), but, do not throws an Error message and interupts the sales order creation process.
We have a inbound IDOC posting function module for sales order (VA01), which posts the sales oreders by using BDC (CALL TRANSACTION 'VA01') in the system. In this function module, we are not populating the OIC_MOT field contained segment by hoping SAP will populate/default it while it hits CALL TRANSACTION 'VA01' of my BDC of my FM of IB IDOC. But, SAP is not defaulting/populating and throwing error message (saying 'OIC_MOT field is a mandatory input field' data is missing) and IDOC is failing, pls. let me know Wht its so? is the BDC's CALL TRANSACTION 'VA01' is not equals to ONLINE (manual ) creation of sales order?
Thank youHi
Several transactions can ba a different behavior between online and bdc process, but if you simulate the trx by SM35 you should find out these gaps
I don't know OIL vertical, but the main transactions have a bapi can be used insted of BDC program (BAPI_SALESORDER_CREATEFROMDAT2, but perhaps there's a particular BAPI for OIL).
Max -
Error while posting the Idoc 'Update error, transaction VA01'
Hi Gurus,
When an inbound Idoc for sales order is trying to post we are getting the error 'Update error, transaction VA01'.
Aslo following are the details of the error:
Update error, transaction VA01
Message no. 00377
Diagnosis
An error occurred in CALL TRANSACTION USING or CALL DIALOG USING
during a synchronous update.
The error was caused by the transaction VA01.
Update information
Return code: 009
Text : Error during insert table FPLTC (RC= 1, Key= )
Procedure
Pleas analyse your Batch-Input data.
You can also examine your posting data using the transaction SM13.
Can somebody let me know what would be the cause.
Also the we are trying to post the Idoc with a Id which is having maximum Authorization.Hi,
Where you able to resolve your issue, I would appreciate if you can share the solution.
Thanks -
Problem in the BDC Table Control for the T.Code VA01
Hi,
I faced probelm in the BDC of the VA01. In the Table Control
the records are entered upto 12 line items. after 13th line item overwrites the first record. How to solve the Problem.
Please help me.or use this
Internal table definition *
data : begin of bdcdata occurs 0.
include structure bdcdata.
data : end of bdcdata.
data: begin of messtab occurs 0.
include structure bdcmsgcoll.
data: end of messtab.
data: v_chr_opengrp type c,
r_matnr like mara-matnr, "variable for material conversion
r_werks like marc-werks, "variable for plant
v_str_fname type string.
data: begin of count2,
inrec(9) type n, " input I_MATERIAL count
create(9) type n, " create count
error(9) type n, " error count
bdc(9) type n, " count of BDC creates
end of count2.
types: begin of ty_source,
partn_numb(10) type n ,"Customer Number 1
ref(035),
sales_org(4) , "Sales Organization
distr_chan(2) , "Distribution Channel
division(002), "DIVISION
doc_type(4) , "Sales Document Type
purch_no(020), "Purchase order
material like vbap-matnr,
reqqty(018),
reqdate(010),
end of ty_source,
begin of ty_header ,
partn_numb(10) ,"Customer Number 1
ref(035),
sales_org(4) , "Sales Organization
distr_chan(2) , "Distribution Channel
division(002), "DIVISION
doc_type(4) , "Sales Document Type
purch_no(020), "Purchase order
end of ty_header,
begin of ty_item,
partn_numb(10) ,"Customer Number 1
ref(035),
material like vbap-matnr,
reqqty(018),
reqdate(010),
end of ty_item.
data : msg(240) type c, " Return Message
e_rec(8) type c, " Error Records Counter
rec_no(8) type c, " Records Number Indicator
s_rec(8) type c, " Successful Records Counter
t_rec(8) type c, " Total Records Counter
v_matnr like mara-matnr.
data: val(2) type n value 01.
data : begin of bdc_itab occurs 0.
include structure bdcdata.
data : end of bdc_itab.
data : t_source type standard table of ty_source with header line,
t_header type standard table of ty_header initial size 1,
t_item type standard table of ty_item initial size 1,
t_target type standard table of bdcdata initial size 1.
data : w_source type ty_source,
w_source1 type ty_source,
w_header type ty_header,
w_item type ty_item,
w_target type bdcdata,
count type i,
count1 type n.
Variable Declaration
data: w_fname type string,
fnam(20),
date1(10),
i(2) type n,
v_count type i,
v_group type apqi-groupid.
*& selection screen
selection-screen :begin of block bl1 with frame title text-001.
parameters : p_fname type rlgrap-filename, "Input file
p_update(1) default 'N', "Input for update mode
p_bdcgrp(12) default 'SD_ORDERS'. "Input for session name
selection-screen end of block bl1.
**&SELECTION SCREEN VALIDATIONS
at selection-screen on value-request for p_fname.
call function 'KD_GET_FILENAME_ON_F4'
exporting
program_name = 'ZMATERIAL'
dynpro_number = '1000'
field_name = 'P_FNAME'
changing
file_name = p_fname.
*& Start of selection
start-of-selection.
if p_fname is initial.
message i016(rp) with 'Please enter a file name'.
leave list-processing.
else.
move p_fname to v_str_fname.
endif.
call function 'GUI_UPLOAD'
exporting
filetype = 'ASC'
filename = v_str_fname
has_field_separator = 'X'
tables
data_tab = t_source
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.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
sort t_source by ref partn_numb.
loop at t_source into w_source.
add 1 to count2-inrec.
w_source1 = w_source.
AT NEW PARTN_NUMB. "10/31 KVB
at new ref.
w_header-doc_type = w_source1-doc_type..
w_header-sales_org = w_source1-sales_org . "'0001'
w_header-distr_chan = w_source1-distr_chan. "'01'
w_header-division = w_source1-division. " '01'
w_header-purch_no = w_source1-purch_no.
w_header-partn_numb = w_source1-partn_numb.
w_header-ref = w_source1-ref.
append w_header to t_header.
endat.
w_item-partn_numb = w_source1-partn_numb.
w_item-material = w_source1-material.
w_item-reqqty = w_source1-reqqty.
w_item-ref = w_source1-ref.
w_item-reqdate = w_source1-reqdate.
append w_item to t_item.
clear :w_item,w_header.
endloop.
loop at t_header into w_header.
perform bdc_dynpro using 'SAPMV45A' '0101' .
perform bdc_field using 'BDC_CURSOR' 'VBAK-SPART'.
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'VBAK-AUART' w_header-doc_type.
perform bdc_field using 'VBAK-VKORG' w_header-sales_org.
perform bdc_field using 'VBAK-VTWEG' w_header-distr_chan.
perform bdc_field using 'VBAK-SPART' w_header-division.
perform bdc_dynpro using 'SAPMV45A' '4001' .
perform bdc_field using 'BDC_OKCODE' '/00'.
perform bdc_field using 'BDC_CURSOR' 'VBKD-BSTKD'.
perform bdc_field using 'VBKD-BSTKD' w_header-purch_no.
perform bdc_field using 'KUWEV-KUNNR' w_header-partn_numb.
i = 1.
loop at t_item into w_item where partn_numb = w_header-partn_numb
and ref = w_header-ref.
at new partn_numb.
clear count1.
count = 0.
endat.
count = count + 1.
if count gt 5.
clear i.
i = 2.
perform bdc_dynpro using 'SAPMV45A' '4001' .
perform bdc_field using 'BDC_OKCODE' '=POAN'.
endif.
count1 = count1 + 1.
concatenate 'VBAP-POSNR(' i ')' into fnam.
perform bdc_field using fnam
count1.
concatenate 'RV45A-MABNR(' i ')' into fnam.
perform bdc_field using fnam w_item-material.
concatenate 'RV45A-KWMENG(' i ')' into fnam.
perform bdc_field using fnam w_item-reqqty..
concatenate 'RV45A-ETDAT(' i ')' into fnam.
perform bdc_field using fnam w_item-reqdate.
concatenate 'VBKD-BSTKD_E(' i ')' into fnam.
perform bdc_field using fnam w_item-ref.
i = i + 1.
clear: w_item.
endloop.
clear w_header.
perform bdc_dynpro using 'SAPMV45A' '4001'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform post_transaction.
refresh bdc_itab.
clear bdc_itab.
endloop.
*endloop.
end-of-selection.
perform finalization.
Start new screen *
form bdc_dynpro using program dynpro.
clear bdc_itab.
bdc_itab-program = program.
bdc_itab-dynpro = dynpro.
bdc_itab-dynbegin = 'X'.
append bdc_itab.
endform. "bdc_dynpro
Insert field *
form bdc_field using fnam fval.
if fval <> ''.
clear bdc_itab.
bdc_itab-fnam = fnam.
bdc_itab-fval = fval.
append bdc_itab.
endif.
endform. "bdc_field
**& Form get_filename
text
--> p1 text
<-- p2 text
*form get_filename .
*call function 'WS_FILENAME_GET'
exporting
def_filename = space
def_path = file
mask = ',.,..'
mode = 'N'
title = text-015
importing
filename = file
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5.
*endform. " get_filename
*& Form post_transaction
text
--> p1 text
<-- p2 text
form post_transaction .
refresh messtab.
clear messtab.
call transaction 'VA01' using bdc_itab
mode p_update
update 'S'
messages into messtab.
read table messtab with key msgtyp = 'E'.
if sy-subrc eq 0.
perform process_error_messages.
add 1 to count2-bdc.
if v_chr_opengrp is initial.
perform bdc_open_group.
endif.
call function 'BDC_INSERT'
exporting
tcode = 'VA01'
tables
dynprotab = bdc_itab
exceptions
internal_error = 1
not_open = 2
queue_error = 3
tcode_invalid = 4
others = 5.
if sy-subrc <> 0.
case sy-subrc.
when 1.
write: / 'Internal error'.
when 2.
write: / 'Not open error'.
when 3.
write: / 'queue error'.
when 4.
write: / 'tcode invalid error'.
when others.
write: / 'other error'.
endcase.
endif.
else.
add +1 to count2-create.
format intensified off.
format color col_normal.
format color col_normal off.
endif.
clear bdc_itab.
refresh bdc_itab.
endform. " post_transaction
*& Form finalization
text
--> p1 text
<-- p2 text
form finalization .
if v_chr_opengrp = 'X'.
call function 'BDC_CLOSE_GROUP'
exceptions
not_open = 1
queue_error = 2
others = 3.
endif.
get time.
skip 2.
write: / 'Time', sy-uzeit.
skip.
format color col_total on.
write: / 'Total Records: ', 40 count2-inrec.
write: / 'PERNR not of Emp Group 6 ', 40 count2-error.
write: / 'Records Created: ', 40 count2-create.
write: / 'BDC Create in group: ', 40 count2-bdc.
if v_chr_opengrp = 'X'.
skip 1.
format intensified on.
format color col_negative on.
write: / 'PLEASE USE TRANSACTION "SM35" ',
'TO PROCESS THE GENERATED BDC SESSION ... ',
p_bdcgrp.
endif.
endform. " finalization
*& Form bdc_open_group
text
--> p1 text
<-- p2 text
form bdc_open_group .
call function 'BDC_OPEN_GROUP'
exporting
client = sy-mandt
group = p_bdcgrp
holddate = sy-datum
keep = 'X'
user = sy-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 eq 0.
v_chr_opengrp = 'X'.
endif.
endform. " bdc_open_group
*& Form process_error_messages
text
--> p1 text
<-- p2 text
form process_error_messages .
data: begin of loc_aux_message.
include structure message.
data: end of loc_aux_message.
data : msgno type sy-msgno.
loop at messtab.
move messtab-msgnr to msgno.
call function 'WRITE_MESSAGE'
exporting
msgid = messtab-msgid
msgno = msgno
msgty = messtab-msgtyp
msgv1 = messtab-msgv1
msgv2 = messtab-msgv2
msgv3 = messtab-msgv3
msgv4 = messtab-msgv4
importing
messg = loc_aux_message
exceptions
others = 1.
if sy-subrc eq 0.
format color col_negative on.
write: /10 loc_aux_message.
format color col_negative off.
else.
format color col_negative on.
write: /10 t_source-partn_numb.
write: / 'Error creating message'.
format color col_negative off.
exit.
endif.
endloop.
endform. " process_error_messages
Maybe you are looking for
-
I keep getting this message after the download: "Before viewing PDF documents in this browser you must launch Adobe Reader and accept the End User License Agreement, then Quit and relaunch the browser." I am not getting anything about accepting the E
-
Why some mail from Comcast mail server is not received?
I am a new iMAC user (Mavericks 10.9.2). I just setup my Mail with 4 accounts using the guided setup on the MAC for the first account and then instructions from Comcast for the rest. All 4 accounts are setup for POP. All accounts are setup NOT to del
-
Need Information : How can I define Organization as Plant or laboratory
Dear guru, I'm new in OPM. Can you enligth me how to define Organization as Plant or Laboratory? because when I create Recipe, my organization doesn't come up. I migth got clue that I should define it at Product Development Parameter form, but I cann
-
Hi, I am getting Error Message while doing GR for inbound delivery through VL06I for KANBAN receipts Message no.PK366 You are posting a goods receipt that sets several Kanbans to the status Full. At the same time, the material is being posted to stor
-
Getting XP window "Adobe PDF Document", says "There is a problem with Adobe Acrobat/Reader. If it is running, please exit and try again." ?Should I delete Adobe Reader XI and download a new one?