OTM Inbound Integrations (XML)

There are several ways of bringing in data into OTM system. Below are some of the methods:

  • via XML that follows Glog XML schema posted from a middleware applications like Oracle SOA, webMethods, Mulesoft, etc
  • Manaul XML uploads by OTM users
  • CSV Uploads
  • DB.XML Uploads
  • REST-API Calls
  • HTTP Post Requests from programming languages like PLSQL, etc

XML Inbound Integrations:

Most common way of receiving OTM Inbound data is via XML files from middleware applications. OTM can read XML files which are in the format specified by GlogXML Schema(OTM Standard XML Schema). You can download this schema from :

Posting Data to OTM using HTTP request

Any external system like EBS, SAP can frame this XML structure programatically and ‘POST’ this xml to OTM Integration servlet: glog.integration.servlet.WMServlet

Below is an PLSQL program posting Location element to OTM:

DECLARE

-- This is OTM Application URL Where string after GC3 is replaced as shown below
v_chr_url VARCHAR2(1000) := 'http://OTM-SERVER:7777/GC3/glog.integration.servlet.WMServlet';

-- This is OTM USER from which transmission needs to be created
v_otm_user VARCHAR2(100) := 'DBA.ADMIN';

-- This is password for the OTM USER
v_otm_pwd VARCHAR2(100) := 'CHANGEME';

-- You can programtically form the xml string and pass it to this variable
v_data_in VARCHAR2 (10000);
v_http_req UTL_HTTP.req;
v_http_resp UTL_HTTP.resp;
v_chr_resp_val VARCHAR2 (3000);

BEGIN
-- This is a sample transmission that creates location (Shipment Management -> Location Manager) in OTM
-- Note that in the Transmission Body, GLOGXMLElement chosen here is Location.
-- By choosing appropriate element, you can load required data.
-- In this script file, you see XML structure to send location information.
-- You can get this structure by referring the GLOGXML.xsd
-- Navigation to fetch this from OTM:
--   1. Login in to OTM using DBA.ADMIN user
--   2. Business Process Automation -> Integration -> Integration Manager -> GlogXML.xsd

v_data_in := '<Transmission>
<TransmissionHeader>
  <UserName>DBA.ADMIN</UserName>
  <Password>CHANGEME</Password>
  <IsProcessInSequence>Y</IsProcessInSequence>
</TransmissionHeader>
<TransmissionBody>
  <GLogXMLElement>
    <Location>
      <TransactionCode>IU</TransactionCode>
      <LocationGid>
        <Gid>
          <DomainName>WHD</DomainName>
          <Xid>TEST SH HAJOCA CORPORATION-45769</Xid>
        </Gid>
      </LocationGid>
      <LocationName>TEST SH HAJOCA COR,CLUTE,TX,USA</LocationName>
      <Address>
        <AddressLines>
          <SequenceNumber>1</SequenceNumber>
          <AddressLine>449 TEST PLANTATION</AddressLine>
        </AddressLines>
        <City>CLUTE</City>
        <ProvinceCode>TX</ProvinceCode>
        <PostalCode>32830</PostalCode>
        <CountryCode3Gid>
          <Gid>
            <Xid>USA</Xid>
          </Gid>
        </CountryCode3Gid>
      </Address>
      <LocationRefnum>
        <LocationRefnumQualifierGid>
          <Gid><Xid>ORIGIN</Xid></Gid>
        </LocationRefnumQualifierGid>
        <LocationRefnumValue>CUSTOMER</LocationRefnumValue>
      </LocationRefnum>
      <LocationRefnum>
        <LocationRefnumQualifierGid>
          <Gid><Xid>CUSID</Xid></Gid>
        </LocationRefnumQualifierGid>
        <LocationRefnumValue>1130</LocationRefnumValue>
        <LocationRole>
          <LocationRoleGid>
            <Gid><Xid>CUSTOMER</Xid></Gid>
          </LocationRoleGid>
        </LocationRole>
        <Corporation>
          <CorporationName>TEST CORPORATION</CorporationName>
        </Corporation>
      </LocationRefnum>
    </Location>
  </GLogXMLElement>
</TransmissionBody>
</Transmission>';

UTL_HTTP.set_transfer_timeout (1000);
UTL_HTTP.set_detailed_excp_support (ENABLE => TRUE);

-- Invoking the Web Service.
v_http_req := UTL_HTTP.begin_request (v_chr_url, 'POST');

-- Set the HTTP request headers
UTL_HTTP.set_header (v_http_req, 'content-type', 'text/html');
UTL_HTTP.set_header (v_http_req, 'content-length', LENGTH (v_data_in));

-- Write the data to the body of the HTTP request
UTL_HTTP.write_text (v_http_req, v_data_in);

-- Retrieving response of Transmission ID for OTM
v_http_resp := UTL_HTTP.get_response (v_http_req);
UTL_HTTP.read_text (v_http_resp, v_chr_resp_val, 3000);
UTL_HTTP.end_response (v_http_resp);

END;
/

Note: If you have multiple integrations to be built from an external system to OTM to load data coming in different formats like EDI, text files, etc. you should typically go for a middleware tool like Oracle SOA(BPEL), Webmethods etc. to translate these files from various formats to the XML format defined by the GlogXML schema.