Data Recorded in F00095 (Business Object Reservation) has to be retained until SV TP_Commit_Status returns CO TP_ACTION_SUCCESS or CO TP_ACTION_FAIL through ODBC/JDBC middleware
c. EVENT: Post Button Clicked of (CONTROL) OK
Call BSFN XT4312Z1 - F4312EndDoc (F43121 End Document) with Transaction Processing ON without Asynchronous Flag (so calling synchronously) when P4312|W4312A gets called by other application(s) or P4312 has to call another application.
When it meets below condition P4312 comes to this routine:
Condition
Processing Option
Call
Others
PO szPO_DisplaySOBack is equal to "1"
Display 1. Sales Order Backorders 1 = Display the release form
P42117|W42117M
refer to <Bug 10744827>: NO BACKORDER RELEASE FORM - SAR: 4847698
PO szPO_LandedCostProcessing is equal to "1" And VA frm_cProcessLandedCost is equal to "1"
Process 6. Landed Cost 1 = Display Landed Cost Selection Form
App:P43291 , Form:W43291A , Ver: PO szPO_LandedCostVersion
PO szPO_PrintTraveler is equal to "1"
Process 7. Receipt Traveler Document 1 = Print
UBE:R43512 , Ver: PO szPO_P43512Vers (or XJDE0001 which is default version)
Process 16. Activate Automatic G/L Batch Posting 1 = Automatically post batch
UBE:R09801 , Ver: VA evt_szR09801Version_VERS (or ZJDE0009 which is default version for batch type 'O')
VA frm_cRunF4312EndDocInSync_EV01 is equal to "1"
P4312 got called from P49640 (Transportation Load Confirmation)
InboundTransportation is Y (SY49 from P99410)
SL CountryCode is equal to "BR"
Brazilian localization
c. EVENT: Post Button Click - Asynch of (CONTROL) OK
Call BSFN XT4312Z1 - F4312EndDoc (F43121 End Document) with Transaction Processing ON when P4312 does not meet above condition
d. (Form Level) EVENT: Post Commit
Call BSFN N0000602 - F00095RemoveReservation (F00095 Remove Business Object Reservation)
3. Return to calling FORM: Work With Purchase Orders to Receive [FIND BROWSE] (W4312F)
Retain Batch Number until user click 'Close' button
Note:
For this case, identical records are written into the table with different time flag
Batch number remains unchanged until the user clicks Close button in W4312F form
Unless W4312A is calling another application it always goes to Post (OK) button Click - Asynch event
N0000001 - BatchOpenBatchControlProcessing is client only NER that depends on batch control settings which can call an additional form. For detailed information on this, refer to <Document 1317478.1> E1: BSFN: Frequently Asked Questions on Batch Control Processing and Related Business Functions in EnterpriseOne.
Cause
Transaction Processing is OFF from client's environment at Post Button Click - Asynch (of OK button). Remove record reservation comes before all transactions are committed to the DB (sql> COMMIT TRANSACTION) because database middleware won't return any information on transaction processing (either CO TP_ACTION_SUCCESS or CO TP_ACTION_FAIL)
Solution
How To Debug?
The following represents the general debug steps (these can vary depending upon the situation):
Verify the P4312 event rules. Note that Transaction Processing and Asynchronous flag cannot be reviewed through the event rules. This will confirm if any bugs are missing from the environment.
Capture jasdebug.log to trace the flow of events. This is important because this log traces communication between JAS (request) and logic server (response).
Capture callobject kernel (jdedebug) log and analyze it. Note that this type of issue can be intermittent when transaction volume is heavy or network is busy. As a result, it may not be easy to capture the actual issue on the first attempt. So for this case, the callobject kernel log here is a clean log which shows all internal routines (e.g., settings, flows and so on).
Possible cause?
Transaction Processing for F4312EndDoc got implemented through <Bug 10908215>: ERP8 SP23_K1 ROLLBACK ISSUE ON - SAR: 7893180. Reference the following two documents:
Transaction Processing <Document 1320968.1> E1: DB: Listing of Applications with Transaction Processing by EnterpriseOne Release
Record Reservation <Document 1142464.1> E1: FDA: F00095 Record/Object Reservation in EnterpriseOne Interactive Application
In distribution/manufacturing Record Reservation,
Prevent duplicate transaction
Minimize possible deadlock by isolating transaction
If there are any locking/blocking issues, the process will timeout because all transactions are critical - so by nature the transaction has to be all or nothing
How to Fix?
In case Transaction Processing Flag is not ON:
Go to OMW (Object Management Workbench)
Look for object P4312
Move it to available OMW project
Check Out
Tick Transaction Processing whenever F4312EndDoc gets called
Check In
Generate Serialized Object for P4312
Note:
Information written here is a case study only
In facing similar issue, check whether there are any reported issues against the objects P4312, XT4312Z1 and XT4312Z2
Another possible example is when F4312EditLine was not handled properly
Specific user interface (non-general routine to perform receipt)
F4312EditLine creates additional cache to commit (cache name F43121Z)
It is not allowed to change Transaction Processing settings in Post OK button clicked
Currently P4312 is the only application which calls End Doc at EVENT: Post Button Click - Asynch of (CONTROL) OK
<Internal_Only>Please comment if you have any other cases which turn out to be duplicate receipt</Internal_Only>