Sales Order transactions VA01/VA02/VA03

Transactions VA01, VA02 and VA03 are used to create, change and display sales order respectively.
Everything you need to know about sales order transaction VA01/VA02/VA03 is here. Well not everything, but this blog gives you all enhancement options available.

User exit available

EXIT_SAPMV45A_910 IS-OIL/TAS: Exit Change-Flag Output determination
EXIT_SAPMV45A_911 TAS – Customer exit after creation of calloff
EXIT_SAPMV45A_920 User Exit: TAS data Incompletion Log on Doc.-header-level
EXIT_SAPMV45A_930 Userexit to allow overdelivery in Quantity schedule
EXIT_SAPMV45A_001 User Exit for Determining the Billing Plan Type
EXIT_SAPMV45A_002 Preassignment of Sold-to Party in Sales Documents
EXIT_SAPMV45A_003 Rev.Rec.: Copy Requirements An Header Level
EXIT_SAPMV45A_004 Rev.Rec.: Field Modification Sales
EXIT_SAPMV45A_005 Copyy Packing Proposal Into Outobund Delivery Orders

Screen exit

4309 4.0: Subscreen: Header – Additional data A
4312 4.0: Subscreen: Header – Additional data B
8309 Sales Document Header User Exit Header
8310 Sales Document Header User Exit Header
8459 Sales doc. Item User exit item (Additional data A)
8460 Sales Document Item User Exit Item (Additional data B)

PBO and PAI module of these screens are defined in user modifiable include, so correspoding code can written there.

Apart from above mentioned user-exit there many form exits define in program where you can put custom code. These form exits are well documented in in program SAPMV45A with sample code. To see these form exits open program SAPMV45A in SE80 and expand ‘subroutine’ node of tree. All form starting with USEREXIT can be used to write custom code. Some of the commonly used are

USEREXIT_AVAIL_CHECK_CREDIT
USEREXIT_CHECK_VBAK
USEREXIT_CHECK_VBAP
USEREXIT_CHECK_VBEP
USEREXIT_CHECK_VBKD
USEREXIT_CUST_MATERIAL_READ
USEREXIT_NEW_PRICING_VBAP
USEREXIT_NEW_PRICING_VBKD
USEREXIT_NUMBER_RANGE
USEREXIT_READ_DOCUMENT
USEREXIT_REFRESH_DOCUMENT
USEREXIT_SAVE_DOCUMENT
USEREXIT_SAVE_DOCUMENT_PREPARE

Most of the enhacement in VA01/VA02/VA03 are done using these form exits.

Adding additional input field to transaction:

Roughly using below step you can modify these transaction to include new input field.

  1. First include the new field in table VBAK or VBAP, depending on what level to want to add the input. VBAK is sales order header data and VBAP is sales order item data.
  2. Modify the screen exit to include you field.
  3. Implement PBO modules to enable disable fields based on transaction VA01, VA02 and VA03.
  4. Write code in PAI module or form-exit (depending on the requirement) to validate the input and give error message.

BAPI related with Sales Order processing

BAPI_SALESORDER_CHANGE Change or delete sales order
BAPI_SALESORDER_CREATEFROMDAT2 Create Sales Order
BAPI_SALESORDER_GETLIST Returns list of all Orders for Customer
BAPI_SALESORDER_GETSTATUS Returns status with regard to availability, processing status (for example, delivery status) and prices.
BAPI_SALESORDER_SIMULATE Same as Create Sales Order BAPI, however Sales Order is not updated. Simulate the Sales Order creation.

Note 93091 – Information about the BAPIs in Sales and Distribution
Note 550431 – FAQ: BAPI in sales – general questions

Tables related with sales order processing

VBAK Sales Document: Header Data
VBAP Sales Document: Item Data
VBEP Sales Document: Schedule Line Data
VBPA Sales Document: Partner
VBUK Sales Document: Header Status and Administrative Data
VBUP Sales Document: Header Status and Administrative Data
VBFA Sales Document Flow
VBKD Sales Document: Business Data
VBKFZ Cumulative Quantity Corrections
VBSN Change status relating to scheduling agreements

Leave a Reply