Understanding Service Error Recovery
You use service error recovery functionality to store the errors that occur after a business function calls a business service. Service error recovery occurs after you call a business service and is used to handle the errors that the calling business function receives from this call. The errors can be from either the jdeCallBusinessService API error codes or from errors in the response (payload) XML.
When one of these types of errors occurs, the system saves data that was generated by the business service in the Services Error Recovery table (F0045). You can then use the Service Error Recovery program (P0045) to review the errors and reprocess the transactions that ended in error. Or you can use the Services Error Recovery batch program (R0045) to reprocess the transactions.
When the jdeCallBusinessService API call is successful, but an error occurs during the execution, the data that is saved in the F0045 is the content of the tag <sz-errors>, which is returned in the payload. This string is saved in the BSSVERR field in the F0045. The rest of the data associated with the transactions that end in error are known by the calling business function, which enables the user to reprocess the transaction using the P0045 or R0045 program.
These fields in the F0045 table are used to reprocess the transaction:
BSSVPCK - BSSV Package
SBFMDNM - BSSV Method Name
BSSVXML - Input XML for BSSV
BSSVTRTY - BSSV Transaction Type
Before you can review service errors, or resend the data that was not successfully delivered by the business service, your business services must be coded to format the error strings that are returned to the business functions. The business function then processes and stores the service errors.
This diagram illustrates the process flow for service error recovery:
![Process flow for service error recovery](images/srvc_error_recovery.gif)
The following sections provide an overview of the two parts of the service error recovery flow:
Recognizing and storing service errors.
Reviewing errors and resending data.