This document is to give brief explanation on how Cardex (F4111) gets inserted and updated. Through EnterpriseOne, as a word Ledger implies, only limited applications can update Cardex (Item Ledger). Additionally this document will explain PostedCodeInventory (IPCD, As Of Posted Code) or cAsOfPostedCode: This code designates the status of the posting of each particular transaction in the Inventory Ledger file. And this document may answer when F4111.DGL (jdGLDate) is determined.
Through this document, user can understand better on which routine(s) insert/update Cardex (Item Ledger) File (F4111).
Note that any change made against item quantity, cost or location/lot are recorded into Item Ledger (F4111) so in this document the term 'Inventory Transaction' is broadly used. For detail, refer to <Document 1276239.1> - E1: 41: Inventory Transaction MBF XT4111Z1 Clarification.
Inventory Transaction Master Business Function (XT4111Z1, Inventory Transactions) follows a typical transaction master business function flow except that this function is to be called other master business function which is made up of,
End Document MBF (Master Business Function) of calling routine (e.g., F4312EndDoc (XT4312Z1) in P4312 - Purchase Order Receipt)
|--- F4111EndDocument (XT4111Z1, F4111 End Document)
|--- InventoryCardexShell (B4100050, F4111 Format Item Ledger Record)
|--- WriteCardexRecord (B4100040, F4111 Write Item Ledger)
|--- sql> Insert into F4111
The list of business function below can add or update F4111.
Related Functions | Action | Calling XT4111Z1 | Calling B4100050 | Calling B4100040 | IPCD | Others |
B3100730 (UpdateRoutingForPOReceipts, F3112 Update Routings for PO Receipts) | Y | ds4100040.cAsOfPostedCode = _J('X') | Only writes an IM record for quantities issued to cardex (Does NOT currently write a record for scrapped quantities) for Outside Operation. | |||
B3100770 (B3100770CompletionsEditDoc, W. O. Completions Edit Doc) | Y | dsXT4111Z1.cAsOfPostedCode = _J('S') | ||||
B3102080 (Co_ByCompletionsEditLine, Co_By Completions Edit Line) | Y | lpdsXT4111Z1->cAsOfPostedCode = _J('S') | ||||
B3102270 (F3111WOIssuesEditLine , F3111 WO Issues Edit Line) | Y | dsXT4111Z1.cAsOfPostedCode = _J('S') | ||||
B3104260 (ItemLedgerDetailUpdateProcessing, Item Ledger Detail Update Processing) | Update | If as-is ipcd = 'S' then set ' ' otherwise maintain the original value based on ICU, DGL, PID and KCO Update F4111.IPCD only |
This function updates the Item Ledger file (F4111) and the GL date in the F39120W (Advanced Stock Valuation) table. Refer detail here. |
|||
B4100040 (WriteCardexRecord, F4111 Write Item Ledger) | Insert | Refer to typical inventory transaction above | ||||
B4100050 (InventoryCardexShell, F4111 Format Item Ledger Record) | Y | Inventory Cache is written through Edit Line routine and this function is calling WriteCardexRecords | ||||
B4100090 (LotMasterCardexShell, F4111 Format Item Ledger for Lot Master) | Y | dsWriteCardex.cAsOfPostedCode = _J('X') | Call WriteCardexRecord This function can be called where program ID ends in 4108, 41081 and 41280 (e.g., P41280) This record can be written as, "Lot Status Change" "Grade Change" "Potency Change" ** Check routines which call LotMasterCardexShell |
|||
B4100230 (LocationCardexShell, F4111 Format Item Ledger for Location Update) | Y | dsWriteCardex.cAsOfPostedCode = lpDS->cPostingCode | Call WriteCardexRecord Call this to write "Location Add" for szTransactionExplanation ** Check routines which call LocationCardexShell |
|||
B4100850 (UpdateF4111ForAsOfGen, F4111 - Update For As-Of Gen) | Update | dsF4111.ilipcd = lpDS->cPostedCodeInventory Update DGL and IPCD |
Refer to <Document 625402.1> - E1: 41: As Of Processing (P4111/ P41112/ R41760 / R41540/ R41542) | |||
B4100870 (ClearF41112AndIPCDFromF4111, Clear F41112 And IPCD From F4111) | Update | dsF4111.ilipcd = _J(' ') after deleting F41112 Update IPCD = ' ' where IPCD = 'Y' (Processed - R41542) |
This is rollback of As Of Processing. Refer above document. This function is available for 9.1 |
|||
B4100910 (F4111CheckIntegrityWithF0911, F4111 Check Integrity With F0911) | Refer to <Document 1678098.1> - E1: 41: 9.1 Enhancement - Inventory to G/L Reconciliation Process (P41500/R41500/R41501) | |||||
B4100960 (F4111ToF0911Reconciliation, F4111 To F0911 Reconciliation) | ||||||
B4100961 (UpdateGPFInF0911, Update GPF In F0911) | ||||||
B4103110 (ConsignmentAdjCommit, Consignment Adjustment Commit) | Y | dsInvtry.cAsOfPostedCode = lpdsCache->cAsOfPostedCode | Call InventoryCardexShell to write "Standard Cost Change" when there is cost variance for szTransactionExplanation or szExplanation. |
|||
B4200670 (UpdateF4111ForSalesUpdate, F4111 Update Cardex for Sales Update) | Update | Update KCO*, DOC*, DCT*, ICU*, DGL*, DCTO, DOCO, KCOO, LNID, IPCD = 'Y', TERM*, UKID, TDAY*, USER*, PID*, CRDJ* | Refer B4200670*** | |||
B4208020 (DoLineLevelInventorySales, Do Line Level Inventory Sales) | If F4211.SO02 = 1 (Commit took place during shipment confirmation) then call (UpdateF4111ForSalesUpdate, Else, Call F4111EditLine to write Cardex (cAsOfPostedCode not assigned so it is set to ' ') |
|||||
N3103060 (RevalueInventoryOnActualCostCalc, Revalue Inventory On Actual Cost Calculation) | Update | Multiple functions |--- F3102FileServer (N3103030, F3102 File Server) |--- RevalueInventoryOnActualCostCalc IPCD = "X" TREF = "WO" PID = "ER31114" |
Update the parent scrap - IS from P31114 See <Document 855913.1> - E1: 31A: How the IPCD Code Works with Different Manufacturing Transactions |
|||
N4200790 (F42UI05EditLine, F42UI05 Edit Line) | Y | P4205 or equivalent |--- F42UI05EditLine |--- F4111EditLine (cAsOfPostedCode = 'S' in writing inventory cache |
||||
N4900540 (DeliverConfirmEditLine, Deliver Confirm Edit Line) | Y | Same with N4200790 | ||||
N4900730 (DispositionLoadIntCallInvServer, Disposition Load Internal Call Inventory Server) | Y | Calling F4111EditLine without specifying cAsOfPostedCode | ||||
N54R0028 (UpdateStock, Update Stock from Work Order) | Y | Calling F4111EditLine without specifying cAsOfPostedCode | ||||
XT4111Z1 (F4111EditLine, F4111 Edit Line) | Y | Specify cAsOfPostedCode in calling F4111EditLine except for update Scrap Quantity (which sets AsOfPostedCost = X) | Inventory Transaction Master Business Function. Generally this function gets called by other transactional master business function. F4111EditLine: validate/defaults and cache for inventory transaction F4111EndDoc: commits cache created through Edit Line XXXXXEditLine |--- F4111EditLine XXXXXEndDocument |--- F4111EndDocument |--- InventoryCardexShell |--- WriteCardexRecord |--- Insert F4111 |
|||
XT4113Z1 (F4113FSEditLine, F4113 FS Edit Line) | Y | |||||
XT4114Z1 (F4114EditLine, F4114 Edit Line) | Y | |||||
XT4116Z1 (F4116FSEditLine, F4116 FS Edit Line) | Y | |||||
XT4312Z2 (F4312EditLine, F43121 Edit Line) | Y | No assignment except outside operation (If F4311.LITM ends with *OP then set cAsOfPostedCode = 'X') |
(For detail, refer to <Document 625975.1> - E1: 31A: R31802A Manufacturing Accounting Setup and Use )
|--- WorkOrderProcessing (B3104170, Work Order Processing)
|--- ItemLedgerDetailUpdateProcessing (B3104260, Item Ledger Detail Update Processing) which gets called when F0911FSEditLine (B0900049, F0911 Edit Line) does not contain any error (so GL Cache got created).
|--- UpdateInventoryAndSales (B4208020, Update Inventory And Sales)
|--- DoLineLevelInventorySales (B4208020, Do Line Level Inventory Sales) this is wrapper function to handle inventory transaction during Sales Update
|--- UpdateF4111ForSalesUpdate (B4200670, F4111 Update Cardex for Sales Update) [When F4211.SO02 = '1', that is, F4111 has been written through Shipment Confirmation]
|--- F4111EditLine (XT4111Z1, F4111 Edit Line) [When F4111 was not written through Shipment Confirmation]
(Note: this callstack applies only to 8.10 and above)
: In case you follow general routine of sales order processing,
PostedCodeInventory (IPCD, As Of Posted Code) or cAsOfPostedCode: This code designates the status of the posting of each particular transaction in the Inventory Ledger file. Valid codes are,
Codes | Description 01 | Others |
Not posted to the As Of File | ||
S | Item Value Yet to be Impacted | The value of your inventory has yet to be impacted by the transaction. |
X | Movement with no Value Change | The transaction was a movement of inventory only that had no effect on its value. |
Y | Posted to the As Of File | This transaction has been recorded in the 'As Of' generation file (F41112) |
Note:
Why lots of cardex (F4111) records do not have GL Date (F4111.DGL) which is foreign key for General Ledger (F0911)?
Answer 1> For some transaction, creation of G/L and/or update of Cardex is performed through subsequent application (e.g, R31802A, R42800 etc.) General way to set G/L Date can be,
: Note that any transaction which does not affect G/L should not have G/L date from Cardex.