LogiCoy has implemented OTM with DMS [Distributed Management System] using OpenESB which is currently running in production.
How OTM integration is implemented using OpenESB?
We at LogiCoy have accomplished sending data from OTM with DMS using OpenESB:
- OTM To DMS SFTP Upload
Description:
When data in the OTM request is of ObjectType: DOCUMENT, the “DocContentBinary” type [as sent in the request XML] which will be Base 64 encoded will be decoded based on the Mime Type [information of the Mime Type would be sent in the request XML to OTM].
For the decoding the request, the OpenESB exposed web service will receive the input and decode the encoded data. The file will then be converted based on the Mime Type as sent in the request XML.As of now the conversion should be with “application/pdf” or “image/jpeg” Mime Type and the files will be converted to .pdf or .jpeg files respectively. For file conversion a simple POJO is created which will convert the file from one format to another as well as decode the data.
After converting the files either to “.pdf” or “.jpeg” type, the file will be dropped at a designated SFTP location
The application will then send a response back to OTM with the status update information.
DMS then will be taking the files from the SFTP folder and process it at their end.
Step 1: Reading the XML request to get the MIME Type
Step 2: After successful check of Mime Type, decode the encoded data by sending data to POJO
Step 3: After decoding the data, new file of either “.pdf” or “jpeg” is created based on Step 1 and dropped at the SFTP location form where DMS will pick the files.
Error Handling in OpenESB:
Error handling is an integral part while designing OpenESB applications as OpenESB applications integrate heterogeneous IT systems across the organizational boundaries, vendor and partner IT assets. Focusing on error handling analysis early in the analysis and design phases ensures that appropriate error handling standards/guidelines are put in place for modules in different platforms.
Error reporting BPEL process flow:
The catch block of BPEL Interpreter’s execute method is the central point where all exceptions are caught and converted to BPEL faults. A BPEL fault needs to have a fault name (name) and data.
Types of Catch Statements used for the above integrations:
SystemException
SelectionFailureException
CatchAll