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.
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.,
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.
Answer 3: Possible parameters are as follows:
Values for parameter:
1 - Write Work File
2 - Write Cache
Note:
Answer 4: Refer below flow chart
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:
Answer 6 : Do NOT change any parameters as it will cause memory error across system and you may experience slower performance.
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.
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: