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.
- 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.
- Modify the screen exit to include you field.
- Implement PBO modules to enable disable fields based on transaction VA01, VA02 and VA03.
- 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