Cache/Work File (workfile) in Procurement

Purpose of Document

This note is to discuss cache and workfile in EnterpriseOne procurement. This note is a trouble shooting guide when the issue is coming from cache or work file.

Document discusses Work Files in Procurement (F4301Z, F4311Z, F43121Z and F4314Z) based on the list of applications below,

Note that Purchase Order can be created/updated through multiple applications (including Sales and Manufacturing and so on). For this example, any routine which writes F4301 (Purchase Order Header)/F4311 (Purchase Order Detail) are defined as purchase order.

In creating Purchase Order, temporary tables (namely Work File/Workfile/WF) such as F4301Z (PO Header Work File), F4311Z (Purchase Order Generator File), F43121Z (Receiver workfile) and F4314Z (Voucher Match Selection File) can be used to hold data temporarily before it gets committed to Purchase Order Header/Detail, PO Receipt and Voucher Match.

In this note, workfile/work file stands for physical tables whereas cache stands for memory/cache or data structure. In purchase order processing cache is to be used heavily because (as temporary table stored value for limited times) cache can be referenced in any other form/application till it gets terminated.

Unlike Sales Order, only P43060 (Order Release/Generate) has implementation to write work file to support consolidation (because lines can not be consolidated with cache). However R4311Z1I (PO Unedited Transaction Inbound Processor) shall not utilize work file unlike R47010 (EDI Inbound Purchase Order Edit/Create). In your running P43060 if you specify line consolidation option, which writes F4301Z/F4311Z.

Question 1 : What are the temporary tables used in processing Procurement?

Answer 1 : The tables listed below can hold transactional data in the memory or in the database but F43121Z and F4314Z are purely used for cache (long pointer data structure to hold PO receipt and Voucher Match),

cf.,


Question 2 : Why are temporary tables used in Processing Purchase Order?

Answer 2 : The reason is to optimize performance and data integrity. For example, if a huge volume of data has to be handled, writing a temporary file can be more cost effective (by avoiding round trips to database server) than making use of cache as physical memory which has its own limitation.

This calculation assumes the keys and indices to a certain table is left unchanged. If keys or indices are changed, the cache should still work, however the following calculation will be off. Approximately 193K will be used by the cache that is non-data related. Plus, the size of memory will be equivalent to the size of data in a certain table. In Unicode and 2 bytes Asian language, it requires two bytes per character. That is why, the usage of memory in Unicode environment will be higher than single byte environment.

For example (based on E1 application release 9.1),

F4301Z = (in bytes) 193000 + (2750 * Number of rows)
F4311Z = (in bytes) 193000 + (5794 * Number of rows)
F43121Z = (in bytes) 193000 + (5581 * Number of rows)
F4314Z = (in bytes) 193000 + (6464 * Number of rows)
: Note that the size of data can be retrieved by checking F4301Z.h in include folder.

Question 3 : How does system determine whether to write cache or workfiles (work files)?

Answer 3: Possible parameters are as follows:

Values for parameter:

1 - Write Work File
2 - Write Cache


Note:

Question 4: Is there a diagram to represent the flow of data through voucher match?

Answer 4: Refer below flow chart

Flow of Data Manipulation


Question 5: If there is data in these tables can it be purged?

Answer 5: Yes the data from these work file tables (F4301Z, F4311Z, F43121Z, F4314Z) can be purged.
In general, these files are made up of columns:

Note:


Question 6 : Can the parameters to write to cache or a workfile be changed?

Answer 6 : Do NOT change any parameters as it will cause memory error across system and you may experience slower performance.


Question 7 : Table (Data) Structure has been changed through baseline ESUs, what is the follow-up action?

Answer 7: If there is any change in Table Structure, the table needs to be generated through EnterpriseOne OMW tools. Usually this has to be described in Special Instruction of baseline ESU that has been installed. By generating table which synchronize table specification in your Database (Update metadata in your DB), this action is MANDATORY.
In the log, there is cache written in F42UI002 but we cannot find this table. Is this a valid table ID? If so where can we find it?
Note: F42UI002 is just data structure to hold extended value of Sales Order Header Information. This data structure is defined at B4202090.h file and is referenced by B4200310.h, B4200311.h and B4200312.h files. Upon compilation JDE will assign memory for this data structure.


Question 8: Which applications can create a purchase order?

Answer 8 :

Multiple applications can create/update purchase order, simplified object list is,

Application ID Application Description Called by Others
P13730 CAM - Manage Work Order Parts
P17730 Work Order Parts Detail
P3111 Work Order Parts List
P31113 Work Order Inventory Issues
P3112 Work Order Routing
P3157 Kanban Processing
P3161 Outside Operation Revisions via B3102380
P31B69 Operation Header Parent Powerf
P31B96 Speed Operation Update
P31P201 Work Order Parts List via B3401360
P34004 Supply/Demand Inclusion Rules via B3401360
P3401 Message Summary via B3401360
P3411 MRP/MPS Detail Message Revisio via B3401360
P3413 MPS Time Series via B3401360
P400511 Return Material Authorization
P4021 Supply and Demand Inquiry via B3401360
P40G024 Push to Grower Block to Harves via B40G0180
P40G03 Grower Harvest Maintenance via B40G0180
P40G030 Speed Harvest Update via B40G0180
P40G30 Grower Harvest and Weigh Tag R
P40G300 Final Settlement
P40G301 Grower Speed Weigh Tag
P41351 Kit Selection via N4201050
P4210 Sales Order Entry via B4200310 for ST/OT, SD/OT. PO can be created
<Document 1390905.1> E1: 42: How to maintain Order Integrity between SD/OD and ST/OT
P43011 PO Generator
P43032 Purchase Order Generator
P43060 Blanket Order Release
P4310 Purchase Orders
P43101 Purchase Order Workbench
P4311S Self-Service - Purchase Order
P4312 PO Receipts
P4314 Voucher Match
P43250 Receipt Routing Movement and D
P43250SS Self-Service - Movement in Rou
P43252 Routing Ledger Inquiry
P43253 Routing Disposition
P4332 Original Orders Entry
P43360 Release Open Quotations
P4371 Suggested Reorder Stock Items
P43E060 Requisition Expeditor
P43S01 SRM - PO Acknowledgement
P44H711 Lot Start Workfile Maintenance
P45731 Free Goods Award
P49650 Deliver Confirm
P49655 Unscheduled Deliveries
P5310 Change Request Entry
P53301 Change Request Subcontract Det
P90CD015 CRM - Manage Work Order Parts
PCW10 Matrix Entry
R30445A Multi-Level Costed Bill Report via B3401360
R32491 Configured Item Segment Print via B3401360
R3411 MRP/MPS Detail Message Process via B3401360
R34410 Supplier Schedule Release Gene
R34A490 SCP Inbound Planning Messages via B3401360
R40211Z Recurring Orders Edited Creati via N4201050
R4051 Supply and Demand Report via B3401360
R4210IC Create Intercompany Sales Orde
R4210Z Batch Edit and Creation via N4201050
R42770 Generate Rebate Claims
R43092Z1I Receipt Routing Unedited Trans
R4311Z1I PO Unedited Transaction Inboun
R437001 Sales Order Purchase Order Gen
R437002 Stocked Item Reorder Point Bat
R43E060 Batch Requisition Consolidatio
R44H7113 Generate Homebuilder Committme
R47011 EDI Inbound Purchase Order Edi
R48803 Order Type Conversion via B3401360

Note: