The FIFORouting service provides a control and reporting mechanism for interaction between business processes and the FIFO subsystem.
The FifoTask parameter specifies the task that this service should execute. Currently, there are two operational tasks this service provides: FifoResponse and FifoErrorRecord.
The FifoErrorRecord parameter specifies that the FIFORouting service should parse an error record from the error queue, retrieve the errant business process data, and report on it, as described above. This parameter should be used in conjunction with a retrieval of an error record from the error queue. The primary document in this mode of operation must be an FifoError XML record.
When executed in the FifoErrorRecord mode, the FIFORouting service will retrieve data pertaining to the errant business process and include it in ProcessData for the current business process. All data, including documents, may then be used directly within the current business process. The service will generate data of the following format:
<ProcessData> ... <PrimaryDocument SCIObjectID=""/> ... <FifoProcess ErrorType="" WorkFlowContextId="" WorkFlowId="" WorkFlowInitiator=""> <ProcessData> <FifoDetails> <FifoInitializationBpReport AdvancedStatus="" BasicStatus="" PrimaryDocumentId="" ServiceName="" WfdName="" WfdVersion="" WorkFlowContextId="" WorkFlowId=""> <StatusReport> </StatusReport> <ProcessData> <PrimaryDocument SCIObjectID="" /> </ProcessData> </FifoInitializationBpReport> </FifoDetails> </ProcessData> </FifoProcess> </ProcessData>
The FifoReponse parameter specifies that the FIFORouting service should return a positive or negative success response to the FIFO subsystem. An optional parameter, FifoStatus, may also be specified. This status indicates whether or not the business process was a success and if it is an error, designations the FIFO subsystem to report an error. The FifoStatus parameter considers ERROR to be a failure and any other string data to be success.
The FifoResponse parameter is used to provide early response at to the success or failure of a FIFO business process. For example, assume business process A is the process that must be executed in FIFO. Business process A contains 10 steps. The first 5 steps must be executed in order; however, the last 5 steps provide data execution functionality where order is not important. In this example, optimal performance will be achieved by utilizing the FIFORouting service in FifoResponse mode to return the response at step 6. This will allow the next message to be processed immediately following the execution of this service and allow steps 7 through 11 to execute fully parallel.