Recognizing and Storing Service Errors

This section describes how the system recognizes errors and stores them when an error occurs while processing a business service. When you call a business service, it can fail for a number of reasons. The service error recovery flow differs based on the failure reason. The two different flows are based on these types of failure reasons:

  • A server connection issue or some other connection issue exists.

  • A failure occurs on the third-party end of the process.

In the event of a connection issue:

  1. An error status is returned from the business service to the business function.

  2. The business function hard-codes the error to 007:FIS.

    Note: The error 007:FIS is hard-coded for the Order Promising and Requisition Self Service business services, but might be different for other business services.
  3. The business function invokes the F0045 Log Service Errors business function (B0001250) to write data to the F0045.

In the event of a third-party error:

  1. The service receives errors from the third-party system or system errors.

  2. The service translates the error codes from the third-party system to JD Edwards EnterpriseOne error codes (DD alias).

  3. The service creates a string in the following format:

    "n1:alias1|n2:alias2|n3:alias3|...|nx:aliasx"

    • if nx = 0: error is at header level, system level, or the error is unique

    • nx<>0: transaction detail key where the error occurred

    • nx is DD GENKEY (40 characters)

    • Aliasx: error alias in E1 format

    • Aliasx is DD DTAI (10 characters)

  4. The service returns the error string to the calling function by means of the payload in the <sz-errors> tag.

  5. The calling function checks the error string.

    If the string is greater than 1,999 characters, the business function truncates the string to 1,999 characters. Some Oracle databases do not support more than two fields greater than 2KB in a table, and the XML BLOB field is already more than 2KB in the F0045 table. If the string is truncated, a truncation flag is set and sent to the error recovery business function.

  6. If the string is not null, the business function invokes the F0045 Log Service Errors business function (B0001250) to write data to the F0045 table.

    The error string is stored as is.

The flows differ in the way that they handle the error string. However, both flows use the F0045 Log Service Errors business function (B0001250) to write the error string to the F0045 table. The errors that occur while the system processes the call to jdeCallBusinessService are returned to the user and written to jdedebug.log.

Note: The third party might send back multiple errors for one transaction if those errors occur on different detail records.