This document is to discover possible cause of cache issue in sales order entry application. The audience for this note is someone with developer level knowledge. This document only contains examples and direction. It is not meant to be all encompassing.
Answer 1: Check whether B4200312 - F4211EditDoc (F4211 Edit Doc) ends in error. This business function compares / verifies Sales Order Header Cache with Sales Order Detail Cache. For example, summary of the detail line(s) has to be equal to header.
Example error may be appear as follows:
This error may come when there is a dependency among BSFNs including the header file. In this example, the actual error is coming from F4211EditDoc which has to read data from LPDSF42UI02Cache as this lpds is defined at B4202090.h so make it sure you have installed baseline ESUs and its dependent ESU(s). The complaint from jdecm_rb.c is that allocated memory (lpdsF42UI02Cache) is smaller than actual memory which is assigned through B4200312. That is, the code of B4200312 is later than the code of B4202090.h.
Notes:
Answer 2: To handle user input data in a flexible manner, P4210 handles data / cache as follows:
Note: For further detail, see 1265902.1
Answer 3: F42UI02 is not a physical table rather this is data structure to hold cache for header extension as F42UI01 is not able to hold necessary header information. Note: The data structure of F42UI02 (DSF42UI02Cache) is defined at B4202090.h. For this reason, B4200310, B4200311, B4200312 and B4202090 are dependent on each other.
Sales Order Master BSFNs are dependent on all the *.h files defined in B4200310.h with #include statement. Open b4200310.h and verify list of header file of tables and business functions.
In adding/changing Sales Order through P4210/P42101 these tables are meant for Data Structure but in batch (for example, R47011 - 'EDI Inbound Purchase Order Edit/Create') application EnterpriseOne may write actual tables. This is to prevent possible issue may be caused by the size of memory in holding data in cursor.
Note: In case customization is crucial for your daily transaction make it sure dependent object has been altered properly (ie: change of data structures, BSFN Data Structure, Processing Option Data Structure, Table, Business View, Index, etc).
Answer 4: B4200311 and B4200312 are extensions of B4200310 as the functionality keeps on increasing with new functionality or additional validation. All of these objects belong to parent DLL CSALES.dll.
Answer 5: For this example, sales order entry application fails to create cache for sales order detail line as result "Return Value is 2 for F4211FSEditLine (BSFNLevel = 1)" in the log. In one scenario, the value for 'Sales Price Based On Date' in System Constants was changed from '2' to '8. Even though the value of 8 was added to the UDC 40/DB it is still not a valid value. To fix this: