How to Implement Inventory Commitment Outside EnterpriseOne

Purpose of Document

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

  1. N0000602 - F00095ReserveObject: this is to secure sales order from other process
  2. This application follows Master Business Function N4200860 flow and actual commit is performed through InventoryAvailAndCommitment (B4200380 - Sales Orders, Update for Inventory Commitment)
  3. Edit Line routine calls CommitSalesOrderToInventory which creates cache to commit in End Doc
  4. N0000602 - F00095RemoveReservation: release record reservation

 

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

Sales Orders, Update for Inventory Commitment (B4200380 - InventoryAvailAndCommitment)
        Order Number -> BF mnSalesOrderNumber /* Order number F4211.DOCO */
        Or Ty -> BF szSalesOrderType /* Order Type F4211.DCTO */
        Order Co -> BF szSalesOrderCompany /* Order Company F4211.KCOO */
        Line Number -> BF mnSalesDetailLineNumber /* Line Number F4211.LNID */
        "Y" -> BF cBackorderFlag /* depends on your business logic */
        "1.00" -> BF mnOrderTotal /* Quantity to commit, possibly F4211.UORG  */
        "Y" -> BF cCurrencyControl /* Currency Control if the value is Y or Z for currency conversion from G/L Constant this value has to be 'Y' */
        "N4201360" -> BF szProgramID  /* This is important as based on this ProgramID it determines the original or transaction currently N4201360, EP42117, EP42118, and ER42997 can be assigned */

 

 


 

Note: Regardless business function called (N4201360, B4200370 or B4200380) Location information will be read by B4000780 - GetItmLocByCommitment (F41021 Get Location Quanties Committed) which contains detail routine on how to read Item Location (F41021) and Lot Master (F4108) records.

 

To discuss information further with Oracle experts and industry peers, we encourage you to review, join or start a discussion in the JDE1 Distribution Community.

To look at upcoming or archived Advisor Webcasts please see Advisor Webcast Details (Doc ID 548764.1) if your topic is not currently scheduled please suggest it.