Asynchronous Business Function Error During Confirm Shipment
Purpose of Document
Note: Before implementing batch Shipment Confirmation, ensure the functionality is working as desired in a test environment.
Asynchronous Business Function Error Appears in Confirm Shipment (P4205)
A single sales order contains 627 lines. If 100 lines are Ship Confirmed (P4205) at a time then no error is displayed. If all 627 lines are Ship Confirmed (P4205) at one time an asynchronous business function error is displayed, quantity in the Item Location (F41021) table is updated but no Cardex entries are created, causing integrity issues.
Sometimes the error is coming from BSFN N4200790 - F42UI05EditLine (F42UI05 Edit Line):
*ERROR* CallObject@1335da45: COSE#1000 Request timeout: timeout after 90000ms host ServerName:6014(52724) SocID:3740 PID:6915 BSFN:F42UI05EditLine user:USERID Env:JPD910 Complete in 90516ms. Business Function: F42UI05EditLine
Understanding Processing
The Item Location table (F41021) will be committed during F42UI05EditLine so that if the same item is entered on two different detail lines, the quantity available is decreased on a row by row basis. This functionality is by design. In the above example, ShipConfirmEndDoc ends in error and it does not go to the event 'Post Commit' event so auto rollback may not take place.
There are two different layers of updating the Item Location (F41021) table during Shipment Confirmation (P4205):
N4200790 - F42UI05EditLine (F42UI05 Edit Line) validates shipment confirmation detail information in exiting row updates Inventory Commitment buckets in F41021 through BSFN B4200370 - CommitSalesOrderToInventory (F41021 Update Order Commitment to Inventory). This event, inventory cache, which is to be committed through F4111EndDocument, will be created. enterpriseServerTimeout parameter in JAS.INI affect the outcome.
N4200790 - ShipconfirmEndDoc (Shipment Confirmation End Document) processes when clicking OK button update F41021 (On Hand Quantity and so on) through XT4111Z1 - F4111EndDocument. This routine is the same across EnterpriseOne applications that work with inventory. JDENETTimeout in JDE.INI may affect the outcome.
Best Practice
The best practice when processing a high volume of lines through Ship Confirmation is to implement Batch Shipment Confirmation (R42500/R47500) detailed in E1: 42: Ship Confirm Batch Application (R42500) (Doc ID 625613.1).
Reasons to consider using Batch Shipment Confirmation include:
The resources in JAS are limited and limited memory (JVM with maximum 1.2GB) has to be shared with concurrent users
There is a high chance of data integrity issue between F41021 and F4111 and F41021 written through F42UI05EditLine whereas F4111 will get committed through ShipConfirmEndDoc
In increasing the timeout parameter a certain process has to hold resources for longer period time so it will cause performance delay in HTML client
Rollback will take place through UBE Kernel when it hits any error in running Batch Shipment Confirmation
In HTML client, though a certain BSFN (e.g., F42UI05EditLine) is called Async event (e.g., Row Is Exited/Changed - Async event) it is to be handled INLINE (synchronously). Refer to E1: BSFN: Business Function Invoked in Control Exit Changed - Async is Not Asynchronous on the Web Client (Doc ID 636150.1).
If transaction volume is not high, the following changes should be considered:
jde.ini in the logic server (which controls connection between logic server and clients(JAS server))
[NETWORK QUEUE SETTINGS] JDENETTimeout=60 (change of this parameter has an adverse effect - database blocking. So consult Oracle before make any change)
jas.ini (when JAS (client) is talking to Logic server)
[JDENET] enterpriseServerTimeout=90000 (this is the value which affects your transaction for Asynchronous BSFN(s) get called. Along with above parameter JDENETTimeout you may set 360000 ms). See <Document 1307451.1> - E1: BSFN: How to Debug Asynchronous Business Function Error and Commit Fail Error in EnterpriseOne
[OWWEB] AsynchBSFNEnabled=true (since this value is ON at once Async BSFN gets called it determines time to handle within max value 720000 ms)
jdbj.ini (When JAS accesses Database server directly the parameter sets below will take effect. So this won't cause timeout error in dealing with BSFN or Call Object Kernel)
[JDBj-CONNECTION POOL] connectionTimeout=1800000
Refer to <Document 1307451.1> - E1: BSFN: How to Debug Asynchronous Business Function Error and Commit Fail Error in EnterpriseOne, which guide you how to debug it.
Known Issues in Shipment Confirmation Which May Cause Commit Fail
When a commit fail message is encountered, review the following:
Check JDE.log which presents any error which is determined by kernel and database errors Capture/Analyze callobject kernel log (namely jdedebug.log) and analyze it which shall contain database error.
Average Cost Update
Issue: P4205 issues error Commit Fail (Transaction Failure, Asynchronous business function error) in updating average cost
Cause: Commonly negative on hand quantity (F41021.PQOH) or Unit Cost (F4105.UNCS) is populated writh wrong value (commonly in testing environment)
Symptom: Same issue is to be simulated in any inventory transaction in updating average cost and in some database error may be appeared as "Numeric value 99999 out of range"
Resolution: Correct Unit Cost through P4105 (Item Cost) application and do not turn on Average Cost if your settings in P4112, P4113, P4114 and P4116 have "allow negative onhand quantity".
Reference:
<Document 625564.1> E1: 41: Weighted Average Cost (P4105/R41811/P4205/P4312/P4114/P4112)
<Document 1456043.1> E1: DB: How to Resolve Error Message "CLI0111E" in Enterprise Server JDE.LOG
Update Net Change Flag
Issue: P4205 falls into deadlock and associate kernel not found error appears in e1root.log
Symptom: Two different process compete to update same table column (F4102.MRPC) and falls into deadlock in processing shipment confirmation with In-Transit Account on
Resolution: Make sure business functions related are up to date
Issue: P4205 cancelling transaction in writing F3462 (Forecast Shipment Summary) with JDB9901232 - Canceling transaction because: TC052 InsertTable: Insert failed
Symptom: Issue occurs only in a certain environment or certain data set. F3462 is to be written when,
F4102.MPSP (Planning Time Fence Rule) = 'H' (Forecast Consumption by Period)
A specific order type is defined in UDC 40/CF (Shipped Forecast Consumption)
A specific line type is not defined in the special handling code of UDC 40/CF. For example, if you define special handling code "F,D,N", line type 'F', 'D' and 'N' are to be excluded
Resolution: Depends on your business needs, check which option meets as indicated in symptom
Reference:
<Document 779434.1> E1: 43: Commit Failed Error in PY after copying Business Data from PD to PY
<Document 625964.1> E1: 34: Forecast Consumption for EnterpriseOne
Memory corruption
To discuss information further with Oracle experts and industry peers, we encourage you to review, join or start a discussion in the JDE1 Distribution Community.
To look at upcoming or archived Advisor Webcasts please see Advisor Webcast Details (Doc ID 548764.1) if your topic is not currently scheduled please suggest it.