How to implement hard commit not through R42520 but through custom application? The expectation is to update related tables (F41021, F4111 and F4211) with Location and Lot where available quantity does exist.
It is always recommended to make use of standard report Inventory Commitment (R42997) but this document may be referenced when it is required to commit from outside E1.
Before implement this, refer below documents and make sure that you understood it properly:
E1: 42: Inventory Commitments In Sales (Doc ID 625559.1)
E1: 42: Hard Commitments and Locations (Doc ID 651051.1)
Possible Implementations
Example 1 - based on Print Pick Slips (R42520)
1. N0000602 - F00095ReserveObject: this is to secure sales order from other process
2. PickSlipsInventoryCommitment (N4201360, Pick Slips Inventory Commitment): this will hard commit data and update sales order based on available location, lot combination then update hard commit quantity from F41021
3. UpdateF4211PickSlipData (B4200640, F4211 Update Pick Slip Information): this is to update pick slip number from F4211 and write Sales Order Ledger (F42199)
4. N0000602 - F00095RemoveReservation: release record reservation
Example 2 - Based on Inventory Commitment (R42997) - this the standard routine to commit sales orders
1. N0000602 - F00095ReserveObject: this is to secure sales order from other process
2. InventoryAvailAndCommitment (B4200380, Sales Orders, Update for Inventory Commitment) (this will perform actual commitment): this will hard commit data and update sales order based on available location, lot combination then update hard commit quantity from F41021
3. (Optional) UpdateF4211PickSlipData: this is to update pick slip number from F4211 and write Sales Order Ledger (F42199)
3'. Or call B4200260 - WriteSalesHistoryOrLedger to write Sales Ledger
4. N0000602 - F00095RemoveReservation: release record reservation
Example 3 - Based on - Shipment Confirmation (P4205) routine
1. N0000602 - F00095ReserveObject: this is to secure sales order from other process
2. CommitSalesOrderToInventory (B4200370, F41021 Update Order Commitment to Inventory). This function is to soft/hard commit based on item number and branch/plant combination.
3. N0000602 - F00095RemoveReservation: release record reservation
Example 4 - Based on - Backorder Release (P42117) routine
Example 5 - Make use of existing routine
Call Inventory Commitment (R42995|ZJDE0001) version by assigning order information through report interconnection (Report Data Structure). This report is good example how Hard Commit (or commit in general) is take place. To hard commit this report will call same BSFN.
Detail Implementations
Most commonly commit will be take place through InventoryAvailAndCommitment (B4200380) so below explain how it can be implemented.
a. Data Structure D4200380 is defined as below (refer typedef struct tagDSD4200380 in B4200380.h)
b. Example of implementation