OTM and GTM Cloud
OTM and GTM Cloud
OTM and GTM Cloud
April 2019
Copyright Notice
Oracle® Transportation and Global Trade Management Cloud Integration Guide, 19B
Part No. F14043-02
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
This software and related documentation are provided under a license agreement containing
restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly
permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate,
broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any
form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless
required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-
free. If you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone
licensing it on behalf of the U.S. Government, then the following notice is applicable:
U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated
software, any programs installed on the hardware, and/or documentation, delivered to U.S.
Government end users are "commercial computer software" pursuant to the applicable Federal
Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication,
disclosure, modification, and adaptation of the programs, including any operating system, integrated
software, any programs installed on the hardware, and/or documentation, shall be subject to license
terms and license restrictions applicable to the programs. No other rights are granted to the U.S.
Government.
This software or hardware is developed for general use in a variety of information management
applications. It is not developed or intended for use in any inherently dangerous applications, including
applications that may create a risk of personal injury. If you use this software or hardware in
dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup,
redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim
any liability for any damages caused by use of this software or hardware in dangerous applications.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be
trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC
trademarks are used under license and are trademarks or registered trademarks of SPARC
International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or
registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.
This software or hardware and documentation may provide access to or information about content,
products, and services from third parties. Oracle Corporation and its affiliates are not responsible for
and expressly disclaim all warranties of any kind with respect to third-party content, products, and
services unless otherwise set forth in an applicable agreement between you and Oracle. Oracle
Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to
your access to or use of third-party content, products, or services, except as set forth in an applicable
agreement between you and Oracle.
Documentation Accessibility
For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program
website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.
Access to Oracle Support
Oracle customers that have purchased support have access to electronic support through My Oracle
Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit
http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. iii
Contents
COPYRIGHT NOTICE ................................................................................. III
CONTENTS................................................................................................. IV
FIGURES ................................................................................................... IX
TABLES...................................................................................................... IX
iv Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
RATE.XSD .......................................................................................................... 5-10
6. INBOUND TRANSMISSION PROCESSING ........................................... 6-1
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. v
OVERVIEW ......................................................................................................... 10-2
CONFIGURATION.................................................................................................. 10-3
DATABASE CONFIGURATION .................................................................................................... 10-3
APPLICATION SERVER WORKFLOW CONFIGURATION ........................................................................ 10-5
INBOUND ........................................................................................................... 10-6
SECURITY ........................................................................................................................ 10-6
OUTBOUND ......................................................................................................... 10-6
OTHER QUEUE MANAGEMENT UTILITIES.................................................................... 10-7
OPTIONAL ORACLE SETTINGS ................................................................................. 10-8
CORRELATION OF TRANSMISSIONACK TO TRANSMISSION ............................................. 10-8
SUPPRESSION OF TRANSMISSIONACK ...................................................................... 10-8
TRANSMISSIONREPORT SENT VIA QUEUE ................................................................ 10-8
11. DIRECT DATABASE INTEGRATION ................................................. 11-1
vi Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
PROCESSING GLOBAL TRADE MANAGEMENT CONTENT .................................................. 15-2
16. GLOBAL TRADE MANAGEMENT SCREENING SERVICE ..................... 16-1
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. vii
ADDING SHIP UNITS ............................................................................................................ 24-3
UPDATING SHIP UNITS ......................................................................................................... 24-4
DELETING SHIP UNITS .......................................................................................................... 24-5
ALTERNATIVE INTERFACES FOR UPDATING SHIP UNITS ..................................................................... 24-5
TIPS FOR SHIPMENTS AS WORK OR SAWS .................................................................................. 24-6
ORDER-CENTRIC MODIFICATIONS ........................................................................... 24-7
SHIPMENTMODVIAORDERLINE ................................................................................................ 24-8
SHIPMENTMODVIAORDERSU .................................................................................................. 24-8
DATA REQUIREMENTS ........................................................................................................... 24-8
SENDING SHIPMENTS (SHIPMENT AS WORK) ................................................................................ 24-8
viii Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
EXTERNAL SYSTEM SERVLET ................................................................................... 25-1
EMAIL ............................................................................................................................. 25-2
FTP ................................................................................................................................25-3
HTTP .............................................................................................................................. 25-3
MESSAGECENTER................................................................................................................. 25-3
Figures
Figure 2-1 ............................................................................................................................ 2-5
Tables
Table 2-1: Definitions ............................................................................................................ 2-1
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. ix
Table 5-1: Shipment.xsd........................................................................................................ 5-1
x Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Table 21-1 ......................................................................................................................... 21-1
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. xi
Table 24-2: Tips for Shipments As Work or SAWs ................................................................... 24-6
xii Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Send Us Your Comments
Oracle® Transportation and Global Trade Management Cloud Integration Guide, 19B
Oracle welcomes your comments and suggestions on the quality and usefulness of this publication.
Your input is an important part of the information used for revision.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. xiii
Preface
This manual is for members of the Transportation and Global Trade Management Cloud
implementation teams, who are responsible for connecting the system to other external systems
through integration interfaces. This manual explains how to send and receive integration messages
and the format of each message.
This manual does not cover the installation of any components required to import or export. See the
Administration Guide and Installation Guide in your Transportation and Global Trade Management
Cloud installer for installation and configuration instructions.
Change History
Date Document Revision Summary of Changes
Accessibility changes.
xiv Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
1. Integration Overview
Oracle Transportation and Global Trade Management Cloud exposes a large number of interfaces to
support integration with external applications. There are two distinct use cases for application
integration covered in this guide: Business Process Integration and User Interface Integration. Data
Tier Integration is covered in the Data Management Guide.
Business Process Integration is defined in this guide as the sending and receiving of functional
messages between applications. These messages are implemented as Transmission or Mobile
Device Communication XML documents.
The Transmission XML document is the primary application integration message and is covered in
detail in the following chapters in this guide. Mobile Device Communication integration is built on the
infrastructure described in the main chapters of this guide but uses a different XML message format
and is optimized for high volume, small messages e.g. for Fleet power or trailer devices. The details
for this integration are covered in the Chapter 17: Mobile Device Communications.
The valid formats of all messages are described by Integration XML Schema Definition (XSD)
documents.
The purpose of each XSD and the available messages defined by it.
The application level message protocol describing the process of message exchange.
The transport level protocols supported for inbound and outbound message communication.
User Interface Integration is defined in this guide as the retrieval and modification of application data
to support customer-defined user interfaces. This is achieved by the use of the Transportation and
Global Trade Management Cloud Representational State Transfer (ReST) API, which is covered in
Chapter 20: REST API Reference.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 1-1
2. Understanding the Integration Schemas
This section will describe the overall format and design of the Integration XML Schema Definition
(XSD) schemas for use when implementing interfaces.
Definitions
The following definitions are used widely in the remainder of the document and deserve detailed
explanation of their exact meaning.
Term Definition
Primary Document These are the global element definitions for XML
documents which can be sent as messages to and
from Transportation and Global Trade
Management Cloud. The main example is the
Transmission.
Transaction interface These are the definitions which relate to the high
level business object interface e.g. for Orders,
Shipments, Invoices etc. The Transmission
primary document will contain one or more
Transaction interface elements.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 2-1
Note: In prior versions, the Transmission related schema definitions were contained in the
GLogXML.xsd and GLogXML-GTM.xsd schema definitions. Starting in version 6.4.2, these
definitions have now been reorganized into a new set of schemas with a new namespace
URL and split by functional area.
This is a significant change and will be covered in detail in the following section - Transmission
Schema.
The Mobile Device Communication Message Schema defines the format in which you send or receive
mobile device messages and are covered in Chapter 17: Mobile Device Communications.
The Workflow Web Service related schemas are used by a set of Web Services which expose Agent
workflow triggers. See Workflow Web Service for details.
xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
Business Process Automation > Integration > Integration Manager > Retrieve Schemas
When integrating to Transportation and Global Trade Management Cloud using XML, you must create
documents that follow the structure and rules of the Transportation and Global Trade Management
Cloud XML schemas. We recommend that you use an XML management tool to view the schema files.
This will help in understanding the Transportation and Global Trade Management Cloud data elements
and relationships.
The W3C XML Schema site (http://www.w3.org/XML/Schema) provides links to several such tools. The
examples in this document use the freely available Oracle XSD Visual Editor which is a built-in part of
the JDeveloper IDE (see Jdev overview on the Oracle website for details.)
For a full description of the Visual Editor tool please see Developing Applications Using XML in the
Oracle Fusion Middleware User’s Guide for JDeveloper online documentation (http://docs.oracle.com).
Transmission Schema
Schema Files
The following schema files contain all definitions for the Transmission schema:
2-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Schema Name Description
LocationContact.xsd Transaction interfaces for Location and Contact business objects and
other related common types used in other interfaces e.g. Involved
Party.
Item.xsd Transaction interfaces for Item and Package related business objects.
Order.xsd Transaction interfaces for Purchase Orders and Order Release business
objects.
XML Namespaces
Starting in version 6.4.2 a new namespace URL will be used to identify XML messages which are valid
according to the new set of schema files listed in the preceding table.
The following table lists the namespace URLs and associated physical file name for each new schema
defined in version 6.4.2:
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 2-3
Table 2-3: XML Namespaces
GTM.xsd http://xmlns.oracle.com/apps/gtm/transmission/v6.4
Transmission
o The Transmission is the primary document used for messages inbound to and
outbound from the system. Each Transmission can contain multiple transactions to be
processed. A unique Transmission Number is assigned to each inbound and outbound
message.
TransmissionAck
o The TransmissionAck is the response message to the receipt of the Transmission. It
contains the confirmation for the receipt of the Transmission with the unique assigned
Transmission Number, or an error if the Transmission could not be persisted.
TransmissionReport
o The TransmissionReport summarizes the errors that were detected during the
processing of the Transmission. The report is optionally sent after all the transactions
in the Transmission have been completed (successfully processed or with generated
errors). The requirement to receive a TransmissionReport is indicated in the inbound
Transmission Header.
Transmission Processing Styles
There are two different styles for processing the contents of a Transmission:
Transactional style: where the Transactions within the Transmission are processed as
messages used to create, modify or delete transactional content or to trigger processing for
transactional content.
Query style: where the Transactions within the Transmission are request/reply transactions to
retrieve content or return the results of processing against transactional content.
The style used is based on a combination of the value of the Transmission Type Transmission
header property and the interfaces present in the Transmission body content. If no Transmission Type
value is specified the style defaults to Transactional.
It is not supported to mix Transactional style content with Query style content in the same
Transmission. It is also not valid to request Query style processing for interfaces which do not support
that style.
2-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Transactional Style Interfaces
Transactional Interfaces are ‘submitted’ to Transportation and Global Trade Management Cloud for
subsequent processing similar to asynchronous processing1. This allows the Transportation and Global
Trade Management Cloud Application server to manage workload and ensure changes to persistent
object data are handled within a transactional context.
The following diagram shows how the documents are used when processing an inbound transactional
Transmission XML into Transportation and Global Trade Management Cloud.
Figure 2-1
1. Transmission XML document is sent to Transportation and Global Trade Management Cloud.
The nature of the sending component depends on the transport protocol used e.g. it will be an
HTTP client if sending the message via HTTP POST.
2. Transmission message is persisted for later processing generating a unique Transmission
number in the process.
3. A TransmissionAck document is returned which will contain the Transmission number. The
nature of the response depends on the transport protocol used e.g. if using HTTP it will be a
synchronous response to the initial HTTP POST. If using message oriented middleware the
response will be queued to a configured ‘Acknowledgment’ queue.
4. The background Transmission processing daemon retrieves the Transmission at some time
later and processes it e.g. creates or updates the business object using the original XML
message content.
5. A TransmissionReport is optionally sent to confirm the status (PROCESSED or ERROR) of the
Transmission message. Again the report message contains the Transmission number for
correlation. The sending of the report is configurable i.e. ‘always’, ‘never’ or ‘on error only’.
The nature of the receiving component depends on transport method e.g. it can be a Servlet
URL, Message Queue, Web Service endpoint and the transport method can be different to
original inbound transport method.
1 Strictly speaking the process is a synchronous transaction that accepts the message for later
processing followed by the asynchronous processing of message. The synchronous part returns the
reference which can be used to track the results of processing.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 2-5
Query Style Interfaces
Query style interfaces are used when synchronous processing is required for example, for a rating
request.
The following diagram shows the documents used when processing an inbound query Transmission.
Figure 2-2
1. Transmission XML is sent to Transportation and Global Trade Management Cloud. The nature
of the sending component depends on the transport protocol used e.g. it will be an HTTP client
if sending message via HTTP POST.
2. The internal processing is called. The Transmission Type property must be present and be
either ‘QUERY’ or ‘SERVICE’ depending on the interface to be processed.
3. The processing results are returned as either a TransmissionAck or a new Transmission
document. The document used can depend on:-
a. The protocol used. For example, Web Service calls must always return the document
declared in the WSDL output parameter.
b. Customer-defined property settings (if not using a Web Service). For example, when
sending multiple RIQ requests via HTTP, the following property will result in a
Transmission being returned:
glog.integration.remoteQuery.WrapReplyInTransmission=1
Transmission Structure
The Transmission XML document has a root element with local name Transmission. The current
namespace URL is http://xmlns.oracle.com/apps/otm/transmission/v6.4.
2-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Figure 2-3
The Transmission schema uses Substitution Groups to define the possible interface elements that
can be contained by a GLogXMLElement. This removes the need for the Transmission schema to list all
possible interface elements. This approach allows future schemas to define new interfaces without
having to change the Transmission schema which is a more extensible approach.
The GLogXMLTransaction is essentially a marker element which specifies the base type –
GLogXMLTransactionType - of the elements that can be used in its place i.e. substituted for it. Only
elements whose type extends the GLogXMLTransactionType can be substituted for the
GLogXMLTransaction element. At present there are three types which extend
GLogXMLTransactionType to further qualify the interface and provide additional control for how the
interface can be used. See figure below for a schema diagram of the three types and the subsequent
explanation.
Figure 2-4
OTMTransactionIn – Interfaces which are only valid for inbound processing must extend this
type
OTMTransactionOut - Interfaces which are only valid for outbound processing must extend
this type
OTMTransactionInOut - Interfaces which are valid for both inbound and outbound processing
must extend this type
For example, the TransOrder interface is valid inbound and outbound and so has the following schema
definition (some information has been removed to aid clarity for this discussion):
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 2-7
Figure 2-5
The TransOrder element definition declares that the element is a TransOrderType and that the
element can be substituted for the GLogXMLTransaction element. The TransOrderType extends the
OTMTransactionInOut type which ensures that it is a valid substitution (because it in turn extends the
GLogXMLTransactionType). The OTMTransactionInOut type declares that is valid for both inbound
and outbound Transmissions.
The following is an example Transmission XML document containing two transaction interfaces
(TransOrder followed by ShipmentStatus).
Figure 2-6
AckSpec
The AckSpec element controls whether or not a TransmissionReport message is sent when the
transactions within a Transmission have been completely processed i.e. when they have been
persisted and any dependent workflow has been completed.
2-8 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
The AckOption child element specifies when to receive a TransmissionReport. If unspecified, the
behavior is property controlled where the default property setting
(glog.integration.TransmissionReport=”on error”) is equivalent to the ERROR option.
Note: The EmailAddress or ServletURL elements can be specified directly although these
elements are deprecated and so may be removed in a future update. For example, it is not
possible to specify user credentials when using these elements.
GIDs are global identifiers that Transportation and Global Trade Management Cloud uses to define a
primary key for various types of information (e.g., orders, shipments, locations, payment vouchers,
etc.). A GID consists of the following two parts:
Domain name: (optional). The domain name typically identifies a company or business unit
and is used to separate data and secure it from other data in a shared, web-based
environment. For example, if you are using Transportation and Global Trade Management
Cloud in an environment where many companies may be using the same Transportation and
Global Trade Management Cloud installation, the domain allows you to isolate data in
Transportation and Global Trade Management Cloud for each company. Therefore, many users
from different companies can work in the same Transportation and Global Trade Management
Cloud installation (or web site) and use data that is private and specific to their company. If
you do not include a domain name in a GID, it can be viewed across all domains in your
system.
External ID (XID): (mandatory). The ID that defines the item on the external system. An
external system is any system other than Transportation and Global Trade Management Cloud.
It is recommended to only use uppercase characters in GIDs and XIDs in your transmissions. The
Transportation and Global Trade Management Cloud user interface normally only search for uppercase
text strings and therefore it may be difficult to find records with mixed case XIDs.
Note: You should also be careful not to create GIDs with trailing spaces, as these records will
not be retrievable via the User Interface.
Transaction Code
Transaction Codes tell Transportation and Global Trade Management Cloud what to do with the
transactions it receives from other systems. Transaction Code elements will have the type
TransactionCodeType which is an enumerated type and should contain one of the following values:
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 2-9
I: Insert. Use this transaction code to send new information to Transportation and Global
Trade Management Cloud. Transportation and Global Trade Management Cloud creates a new
record. If the record already exists, then the transaction will generate a "record already exists"
error.
II: Insert and Ignore. When used, if the record already exists, then it is not updated and the
"record already exists" error message is not logged. If it does not exist, then it is inserted.
U: Update. Transportation and Global Trade Management Cloud updates an existing record.
UU: Transportation and Global Trade Management Cloud updates the existing record while
suppressing “no data found” constraint violations.
IU: Insert and Update. Transportation and Global Trade Management Cloud creates a new
record unless it already exists, in which case Transportation and Global Trade Management
Cloud updates the existing record with the new information.
UI: Update and Insert. This works the same way as IU.
D: Delete. Use this transaction code to delete an existing record.
DD: Transportation and Global Trade Management Cloud deletes the existing record while
suppressing “no data found” constraint violations.
NP: No Persist. Use this transaction code to keep Transportation and Global Trade
Management Cloud from persisting data to the database. For example, enter NP if you do not
want to persist public locations. This is the default TransactionCode when the data is sent
outbound from Transportation and Global Trade Management Cloud.
RC: Replace Children. Use this transaction code to delete all child data corresponding to the
top level parent, update the top level parent, and insert the new child data. You use the
ReplaceChildren element to specify what child elements Transportation and Global Trade
Management Cloud should replace. The remaining elements are processed using the IU
transaction code.
RP: Replace Primary/Parent. Use this transaction code to replace the primary/parent object
without replacing the child objects. This will remove all fields in the primary/parent object that
are not contained in the incoming xml, and will perform an insert/update on all the child data.
R: Replace. Use this transaction code to replace the primary/parent and child objects. This is a
combination of the RC and RP transaction codes.
Replace Children
Replace Children content is for inbound use only and is defined in elements whose type is
ReplaceChildrenType. It is used in conjunction with a TransactionCode value of “RC”. By specifying
the ManagedChild content elements, it is possible to limit which child objects are replaced by new
values within the present Transmission. See the Extended Inbound Validation section for more details.
Send Reason
Send Reason information is outbound only and is defined in elements whose type is SendReasonType.
The information is used to show the internal application event which resulted in the generation of the
outbound Transmission, for example, a SHIPMENT CREATED event.
Integration Saved Queries are used in inbound transmissions and are defined by elements whose type
is IntSavedQueryType. It allows an interface to support a method of identifying an object to be
modified when the objects primary key is not known. An Integration Saved Query essentially
represents an SQL query that must already have been created in the user interface. The element
content will then contain the GID of this query and any parameters required by the query as
arguments.
2-10 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Flex Fields
Flex fields are so called because they provide a flexible set of table columns for Transportation and
Global Trade Management Cloud implementers to configure their data model to suit their functional
needs. They can be entered via the User Interface and/or via Integration.
Flex fields cover a number of data types and have been added to most of the major business objects
and their corresponding interfaces and are available for both inbound and outbound messages.
Table 2-4
Not all flex field types have been added to all interfaces. Please consult the relevant schema
documentation to determine the support available for each business object.
In addition to the above, the RATE_GEO and RATE_OFFERING outbound interfaces have equivalent
Flex Fields available which are defined slightly differently due to the database centric nature of these
(outbound only) interfaces. These interfaces use the following elements:
Table 2-5
The GLogDateTimeType schema type is a platform neutral representation of the date and time to the
accuracy of seconds. It is a string in the format YYYYMMDDHHMMSS where:
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 2-11
An example value is “20121031083030” which represents October 31 st, 2012 at 30 seconds after
8.30a.m.
Additionally, the GLogDateTimeType can hold a Time Zone ID element (TZId) and a Time Zone Offset.
When date elements are inbound the Time Zone ID is used to calculate times relative to the system
time. On outbound messages, the Time Zone Offset will be populated to show the offset in hours from
the system Time Zone compared to the target system locale. See Chapter 6: Inbound Transmission
Processing, Time Zones section for details.
Backward Compatibility
To support backward compatibility, the version 6.4.1 GLogXML and GLogXML-GTM schemas will
continue to be distributed with version 6.4.2 but will only describe XML messages for versions up to
but not including version 6.4.2.
However, all message formats currently accepted by versions prior to version 6.4.2 for services
available in prior versions will continue to be accepted in version 6.4.2 for the some services. Access
to features or services new in Transportation and Global Trade Management Cloud version 6.4.2
schemas is only supported by sending version 6.4.2 messages. For example, the Transmission Service
is new in version 6.4.2 and so will only accept version 6.4.2 messages.
The following table lists the namespace URLs and associated physical file name for each schema for
versions prior to version 6.4.2:
Table 2-6
GLogXML.xsd http://xmlns.oracle.com/apps/otm
GLogXML-GTM.xsd http://xmlns.oracle.com/apps/gtm
As was the case for all previous versions of Transportation and Global Trade Management Cloud, XML
messages are accepted without a namespace declaration. However, as there are now two possible
‘assumed’ namespaces that could apply to such an XML message, there is a new ‘version’ attribute
available on the Transmission defined in 6.4.2. This should be used to contain the string value ‘6.4.2’
when an XML Transmission without namespaces, but is otherwise valid according to the version 6.4.2
Transmission schemas, is sent into Transportation and Global Trade Management Cloud.
All future 6.4.x versions of Transportation and Global Trade Management Cloud will use the
namespace URL introduced in version 6.4.2, namely
“http://xmlns.oracle.com/apps/otm/transmission/v6.4”.
The next major or minor release of Transportation and Global Trade Management Cloud will introduce
a new namespace version, for example, “http://xmlns.oracle.com/apps/otm/transmission/v6.5”
or “http://xmlns.oracle.com/apps/otm/transmission/v7.0”.
Note: These URLs are just for illustration purposes and do not refer to actual or planned
releases.
Therefore for any schema modifications in future 6.4.x versions which could have backward
compatibility issues e.g. the removal of an element, the following process will be followed:-
Element to be removed will be marked as deprecated but will still be accepted. Unless there
are exceptional circumstances, functional equivalence will be retained.
2-12 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
When a new namespace URL is released, the deprecated elements will be completely removed
from the new schema.
Processing for Inbound and Outbound Compatibility
All messages valid before version 6.4.2 will continue to be supported. On receipt of an inbound
Transmission which refers to the pre-6.4.2 target namespace, the XML format will be transformed
internally into the corresponding 6.4.2 namespace. See the XML Interface Changes Guide for a
complete list of changes in version 6.4.2.
The transformation from old to new or vice versa is performed by the Version Conversion framework.
This framework uses a set of internal properties that cannot be overridden which map to XSLT
stylesheets that will transform the XML.
Also, if a pre-6.4.2 Transmission is sent inbound any TransmissionAck response will also be in the
same pre-6.4.2 format.
A corresponding conversion happens on outbound interface messages but obviously in the reverse
order. See chapter 7, Controlling Target Namespace for details on how to declare which
transformation, if any, should apply.
Note: In versions prior to 6.4.2 it was possible to send in XML which would normally be
considered invalid with respect to namespaces and for it to be processed. This was because
the first step in processing XML was to strip all namespace information. In order to enforce
tighter validation, and therefore security, namespaces are no longer ignored and therefore
it is no longer acceptable to send invalid XML. An example of invalid XML would be if some
elements declared a namespace while others did not. If any namespaces are declared they
must be consistent and valid.
The following interfaces will still be supported for pre-6.4.2 message formats but have been removed
from the version 6.4.2 schema definitions and are therefore considered deprecated. It is not valid to
include them in a version 6.4.2 message.
CSVFileContent: This capability has been superseded in version 6.4.2 with the CSVDataLoad
interface. Please convert any CSVFileContent integrations to use the new CSVDataLoad
interface.
GtmShipment: The Customs Shipment interface is now based on the GtmDeclaration
interface. Any pre-6.4.2 GtmShipment interface will be internally converted to a corresponding
GtmDeclaration message. Please convert any GtmShipment integrations to use the new
GtmDeclaration message.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 2-13
3. Supported Transport Protocols
There are a number of transport protocol options available when sending messages to or from
Transportation and Global Trade Management Cloud and Global Trade Management. The available
options can vary for inbound versus outbound and whether the message is a Transmission XML or a
Mobile Device Message XML.
The following table shows all valid combination (Y – available, N – not available):
SOAP Web Y Y Y Y
Services
HTTP POST Y Y Y Y
Oracle Y Y Y N
Advanced
Queue
Direct DB Y N Y Y
Insert
FTP N Y Y Y
The protocol specific details e.g. resource URLs are covered in each of the following sections:
Security
HTTP Integration
Oracle Advanced Queue Integration
Direct Database Integration
FTP Integration
NOTE: Mobile Device Communication protocol details are covered in Chapter 17: Mobile
Device Communications. In addition to the protocols listed above it is possible to upload
XML files using the Integration Manager User Interface. This is a useful tool when testing
new interfaces or diagnosing functional issues that are normally triggered via integration.
Please refer to the online Help for usage instructions.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 3-1
4. Security
Access to Integration functionality is restricted to authenticated and authorized users only.
User credentials are passed in the message in a protocol specific way and so is covered in detail in
each of the following sections:
NOTE: The capability to pass user credentials in the message payload (Transmission Header) has
been deprecated as of version 6.4.2 and will be removed completely in a future version. It may be
removed gradually and at different times based on transport protocol. For example, as of version
6.4.2 support for it is no longer available for inbound Web Service or Oracle Advanced Queue
integration.
Access Control can be granted on a granular level e.g. to a specific service or servlet resource or can
be granted to the entire ‘INTEGRATION’ function which includes all integration resources.
Please consult the Transportation and Global Trade Management Cloud Security Guide for details on
how to configure the required access control for your integration user accounts.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 4-1
5. Available Interfaces
This chapter lists each schema file and a description of the interfaces defined within it. The schema file
will contain the detailed definition and documentation for each interface.
Shipment.xsd
Table 5-1: Shipment.xsd
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 5-1
Interface Description Inbound Outbound
5-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Interface Description Inbound Outbound
Order.xsd
Table 5-2: Order.xsd
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 5-3
Interface Description Inbound Outbound
GTM.xsd
Table 5-3: GTM.xsd
5-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Interface Description Inbound Outbound
Finance.xsd
Table 5-4: Finance.xsd
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 5-5
Interface Description Inbound Outbound
LocationContact.xsd
Table 5-5: LocationContact.xsd
Corporation
5-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Interface Description Inbound Outbound
Item.xsd
Table 5-6: Item.xsd
Item numbers
Descriptions
Packaging details
Applicable NMFC, STCC, SITC, or HTS codes
General ledger ID
Accessorial charges
Item master data must exist in Transportation and Global
Trade Management Cloud before you can create
transportation orders.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 5-7
Planning.xsd
Table 5-7: Planning.xsd
Itinerary Define the path between two locations and specifies the Y N
constraints for building the shipment.
5-8 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Interface Description Inbound Outbound
Configuration.xsd
Table 5-8: Configuration.xsd
Document.xsd
Table 5-9: Document.xsd
GenericTransaction.xsd
Table 5-10: GenericTransaction.xsd
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 5-9
Interface Description Inbound Outbound
Job.xsd
Table 5-11: Job.xsd
Job Sends data that addresses how logistics services providers and Y Y
freight forwarders manage the services they provide within
Transportation and Global Trade Management Cloud. A Job
offers a workspace that brings together the objects and activities
required of them.
Rate.xsd
Table 5-12: Rate.xsd
5-10 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
6. Inbound Transmission Processing
The internal processing of inbound transmissions is highly configurable and can support a wide range
of requirements from the very simple single object Create, Retrieve, Update and Delete (CRUD)
interfaces through to multi-message groups and flexible sequencing involving complex workflow.
The following steps outline the default process for a simple Transactional style transmission. The
various configuration options are described in the subsequent sections.
Processing Overview
On receipt of a Transmission XML, the integration application module performs the following steps.
Note that authentication and authorization will already have been performed before the message is
passed to the module:
1. Parse Transmission XML, generate a new unique Transmission Number and persist records in
the I_TRANSMISSION and I_TRANSACTION tables for this transmission number.
2. Depending on transport protocol used, and if requested, create a TransmissionAck XML
message and return to the sender.
3. If Integration Data Queues are not active a message is placed on the internal Integration
Workflow in-memory queue to say that a new transmission requires processing. If Integration
Data Queues are active, which is the default in a Cloud environment, an event is staged in the
inbound integration data queue. When the event is polled by a data queue poller the message
is then placed on the internal Integration Workflow in-memory queue. See section 14
Integration Data Queues for more details on data queue configuration.
4. The Integration Workflow retrieves the message from the internal queue and:-
a. Determines any grouping or sequencing constraints
b. Submits group(s) to Mediator for processing.
5. When the Mediator selects a group for processing, it will process each Transaction in the group
as follows:
a. If extended validation is configured the integration module validates the following:
i. Foreign keys, for example a Location GID must exist in the Location table.
ii. Data Types, for example a number only contains numeric characters.
iii. TransactionCode. If set to I, the integration module checks that the primary
key does not exist. If set to U or D, the integration module checks that the
primary key does exist.
iv. Required Elements are not NULL.
b. Saves any validation errors.
c. If there are no validation errors or if extended validation was not configured, the
corresponding business object is populated with the data from the XML and passed to
the persistence module.
d. If there are agents listening for pre-persist events, the persistence module triggers
those now. An example of this is the public Order Base - Insert agent for TransOrder
transmissions.
e. The business objects are now persisted to the corresponding database tables. If
extended validation had not been configured all integrity constraints are now checked
and any violations would cause the transaction to fail.
f. If there are agents listening for post-persist events, the persistence module triggers
those.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 6-1
6. When the Mediator has processed all transactions for all groups in a Transmission the
Transmission processing is complete. The completion process optionally sends a
TransmissionReport with validation and processing errors. See AckSpec for details.
Note: The Transmission Report is only physically transmitted when the all workflow that is
considered to be part of the Transmission Process has completed (known as “child”
processes). If there is a significant amount of agent workflow configured this could appear
as a delay in delivering the report. If this is an issue it may be worth considering the use of
customer-defined events with the “Create New Process” option selected.
Transmission Status
Each Transmission sent into Transportation and Global Trade Management Cloud has a status field
that indicates the state of the Transmission at each stage in the processing. The state of the
Transmission will change as it progresses through the various steps outlined in Processing Overview.
You can view the status for a Transmission in the Transmission Manager UI that can be accessed via
the following menu: Business Process Automation > Integration > Transmission Manager. The
status of the transmission could be one of the following:
Table 6-1
Status Description
STAGED Indicates that the Transmission has been parsed and is stored in the transmission
and transaction tables. An internal event will also be queued which, when triggered,
will process the transmission content. No Transmission should stay in a STAGED
status permanently. Such a scenario would normally suggest an application
configuration issue.
RECEIVED Indicates that a Transmission has been persisted but it has not yet been processing
required to move it to STAGED status. This status should only appear temporarily for
messages sent via DB Insert or OAQ until the relevant internal queue (Data Queue or
App Server thread) can process it. No Transmission should stay in a RECEIVED status
permanently. Such a scenario would normally suggest an application configuration
issue.
STAGING Indicates that the Transmission has been persisted and is waiting on a condition to
be released for processing. In this status, additional transactions can be added to it
prior to processing. Refer to Inbound Transmission Staging and Processing for
additional details.
FRESH Indicates that the Transmission is waiting to complete processing. The individual
transactions may still be processing.
ERROR Indicates that the Transmission had completed processing and there were errors in
the processing.
REDO Indicates that the Transmission is waiting for the REDO logic to initiate re-processing
of it. Please refer to the online help for REDO processing.
6-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Extended Inbound Validation
After Transportation and Global Trade Management Cloud has processed a transmission,
Transportation and Global Trade Management Cloud sends back a Transmission Report to the external
system with a list of validation and/or processing errors.
System administrators can set the default level of extended validation that Transportation and Global
Trade Management Cloud performs. Changing the validation level can improve performance by
removing unnecessary queries and logic for validating the data. The default level of validation is
specified via the following "glog.integration.validation" property. Refer to the online help for the
list of possible values for the property.
If your Transportation and Global Trade Management Cloud installation validates all transmissions
fully, you can skip validation for certain transmissions on a case-by-case basis. Just include this
processing instruction in all transmissions where Transportation and Global Trade Management Cloud
should skip validation:
<?gc3-xml-process validate_required_fields="N"?>
If instead your Transportation and Global Trade Management Cloud installation never validates errors
or only validates when receiving persist errors from the Oracle Database, you can get Transportation
and Global Trade Management Cloud to validate certain transmissions on a case-by-case basis.
Include this processing instruction in all transmissions Transportation and Global Trade Management
Cloud should validate:
<?gc3-xml-process validate_required_fields="Y"?>
glog.integration.enableCaseChange=true
If there are some elements that you do not want to change, you can set the
glog.integration.casechange.element property for those elements. Valid values are element
names. For example, to prohibit the ArgName and ArgValue values from changing, you would define
the following:
glog.integration.casechange.element=ArgName
glog.integration.casechange.element=ArgValue
Shipment
ShipmentHeader
TransactionCode RC
ShipmentStop=1
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipmentStop=2
ShipmentStopDetail: ShipUnitGid=ShipUnit A
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 6-3
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipUnit: ShipUnitGid=ShipUnit A
ShipUnitContent: LineNumber=0
ShipUnitContent: LineNumber=1
ShipUnit: ShipUnitGid=ShipUnit B
ShipUnitContent: LineNumber=3
ShipUnitContent: LineNumber=4
SEquipment: SEquipment_A
If the data is not found in database, the shipment is inserted into database. In this case, the RC is
equivalent to IU. The use cases described in the following sections are edited from this XML.
1. Remove ShipmentStop 2 and two ShipUnitContents of ShipUnit A from the above XML.
Expected result: ShipmentStop 2, two shipUnitContents as well as their corresponding
children are deleted from database.
Shipment
ShipmentHeader
TransactionCode RC
ShipmentStop=1
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
<!-- ShipmentStop=2
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B -->
ShipUnit: ShipUnitGid=ShipUnit A
ShipUnitContent: LineNumber=0
ShipUnitContent: LineNumber=1
ShipUnit: ShipUnitGid=ShipUnit B
<!--ShipUnitContent: LineNumber=3
ShipUnitContent: LineNumber=4 -->
SEquipment: SEquipment_A
If the Is_permanent of the above stop in database equals true or the ManagedChild is set to a value
other than ShipmentStop or ShipmentStopDetail, the stop as well as it child tables are not able to be
removed from database.
6-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
3. Remove ShipmentStopDetail elements of ShipmentStop 2 and add ManagedChild =
ShipmentStop from the original XML.
Expected result: ShipmentStopDs of ShipmentStop 2 are deleted from database.
Shipment
ShipmentHeader
TransactionCode RC
ManagedChild =ShipmentStop
ShipmentStop=1
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipmentStop=2
<!-- ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B -->
ShipUnit: ShipUnitGid=ShipUnit A
ShipUnitContent: LineNumber=0
ShipUnitContent: LineNumber=1
ShipUnit: ShipUnitGid=ShipUnit B
ShipUnitContent: LineNumber=3
ShipUnitContent: LineNumber=4
SEquipment: SEquipment_A
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 6-5
OR
ManagedChild = ShipUnit
ShipmentStop=1
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipmentStop=2
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipUnit: ShipUnitGid=ShipUnit A
<!-- ShipUnitContent: LineNumber=0
ShipUnitContent: LineNumber=1 -->
ShipUnit: ShipUnitGid=ShipUnit B
ShipUnitContent: LineNumber=3
ShipUnitContent: LineNumber=4
SEquipment: SEquipment_A
7. Remove ShipUnit A and the ShipUnitContent 3 and 4 for the remaining ShipUnit B with
ManagedChild=ShipUnit.
Expected result: SShipUnit corresponding to ShipUnit A is unchanged. SShipUnit
corresponding to ShipUnit B is replaced. The SShipUnitLines corresponding to
ShipUnitContents 3 and 4 are deleted from database.
Shipment
ShipmentHeader
TransactionCode RC
ManagedChild = ShipUnit
ShipmentStop=1
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipmentStop=2
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
<!-- ShipUnit: ShipUnitGid=ShipUnit A
ShipUnitContent: LineNumber=0
6-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
ShipUnitContent: LineNumber=1 -->
ShipUnit: ShipUnitGid=ShipUnit B
<!-- ShipUnitContent: LineNumber=3
ShipUnitContent: LineNumber=4 -->
SEquipment: SEquipment_A
The same result can be achieved through specifying the transaction code R and
ManagedChild = ShipUnitContent in ShipUnit B.
Shipment
ShipmentHeader
TransactionCode RC
ShipmentStop=1
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipmentStop=2
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
<!-- ShipUnit: ShipUnitGid=ShipUnit A
ShipUnitContent: LineNumber=0
ShipUnitContent: LineNumber=1-->
ShipUnit: ShipUnitGid=ShipUnit B
TransactionCode= R
ManagedChild = ShipUnitContent
<!-- ShipUnitContent: LineNumber=3
ShipUnitContent: LineNumber=4 -->
SEquipment: SEquipment_A
9. Remove ShipmentStop 2 with ManagedChild=ShipmentStop from the original XML and change
the transaction code to R.
Expected result: ShipmentStop 2 and all its child tables are deleted. The shipment table is
replaced (This is different from transaction code RC).
Shipment
ShipmentHeader
TransactionCode RC
ManagedChild =ShipmentStop
ShipmentStop=1
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 6-7
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipmentStop=2
ShipmentStopDetail: ShipUnitGid=ShipUnit A
ShipmentStopDetail: ShipUnitGid=ShipUnit B
ShipUnit: ShipUnitGid=ShipUnit A
ShipUnitContent: LineNumber=0
SEquipment: SEquipment_A
Time Zones
Time Zone Override
Generally, time information sent in the inbound XML to Transportation and Global Trade Management
Cloud is associated with a time zone for a particular location and time zone offset. For example, the
early pickup dates and late delivery dates on a transportation order line (within the TransOrder
interface) are associated with the ship from and ship to locations for the order line, and each of those
locations is associated with a specific time zone. The time information sent in the early pickup date
and late delivery dates elements are assumed to be in the time zone of the location. So if your time is
at 8 AM and the location is King of Prussia, PA, you would specify the time in the XML as 080000
(HHMISS, where HH=Hours, MI=Minutes and SS=Seconds) and Transportation and Global Trade
Management Cloud would understand this to mean 8AM in the America/New York time zone.
For systems that only maintain their times in a single time zone, or in other circumstances when you
are unable to specify times as expected in the time zone of the corresponding locations, an override
can be specified to indicate the time zone for all times for the transaction. As an example, if your
sending application maintains all times in a specific time zone such as San Francisco where the early
pickup date is maintained as 5 AM, it would be possible to send 050000 as the time to Transportation
and Global Trade Management Cloud and indicate an override that all the times in the transportation
order are specified in the America/Los_Angeles time zone.
A valid time zone override can be specified in the TimeZoneGid element within the Transaction
Header. When the TimeZoneGid is specified, it will be assumed that all the times within the
transaction (GLogXMLElement) are in that time zone.
6-8 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Business Number Generator (BNG)
When creating new objects i.e. with the ‘I’ TransactionCode, it is possible to send a transmission
without entering a value in the primary key GID element (for example, Ship Unit ID, Order Release
ID, Order Base ID, etc.). Transportation and Global Trade Management Cloud generates values for
these fields based on the default business number rules for the object type.
In Transportation and Global Trade Management Cloud XML messages, to delete (null out) values from
certain fields in a record (without deleting the whole record), you can specify the (~) character in the
element. For example, if a value was entered for the External System ID field in the
TransOrderHeader, and that value needed to be removed in a subsequent TransOrder update, the
following would be specified for the XML:
<ExternalSystemId>~</ExternalSystemId>
The inbound XML would then contain the following IntSavedQuery element to use the above query:
<IntSavedQuery>
<IntSavedQueryGid>
<Gid>
<DomainName>GUEST</DomainName>
<Xid>TEST_SAVED_QUERY_001</Xid>
</Gid>
</IntSavedQueryGid>
<IntSavedQueryArg>
<ArgName>QUAL</ArgName>
<ArgValue>ZZ</ArgValue>
</IntSavedQueryArg>
<IntSavedQueryArg>
<ArgName>VALUE</ArgName>
<ArgValue>MY_SHIP_REFNUM_001</ArgValue>
</IntSavedQueryArg>
<IsMultiMatch>Y</IsMultiMatch>
<NoDataFoundAction></NoDataFoundAction>
</IntSavedQuery>
During processing, Transportation and Global Trade Management Cloud would then replace the
'{%QUAL%}' with 'ZZ' and the '{%VALUE%}' with ' MY_SHIP_REFNUM_001' to search for the
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 6-9
shipment GID. And the transaction would be processed with using the shipment GID returned from the
query. Note that the IsMultiMatch element can be used to indicate if multiple GIDs can be returned
from the query and used for processing. Refer to the schema notes for additional fields that are
available for the query.
The queries can also be written using XPath expressions to search for values from specific elements in
the XML. An example of a query that relies on XPath expressions is as follows:
Note that the preferred method is to use the ArgName and ArgValue as they perform much better
than the XPath expressions.
If NoDataFoundAction is not null and the Integration Saved Query returns no value, then the
transaction code for the XML is switched to the transaction code specified by NoDataFoundAction,
which must be a valid transaction code.
The default integration saved queries are only used when the transaction code element has a value of
U or D, and the primary GID for the interface is missing. If a TransOrderGid is missing, then the
INT_TRANS_ORDER_GID_1 and INT_TRANS_ORDER_GID_2 saved queries are used. If a
TransOrderLineGid is missing, then the INT_TRANS_ORDER_LINE_GID_1 and
INT_TRANS_ORDER_LINE_GID_2 saved queries are used. If a Shipment GID is missing, then the
INT_SHIPMENT_GID_1 and INT_SHIPMENT_GID_2 saved queries are used. If a Location GID is
missing, then the INT_LOCATION_GID_1 and INT_LOCATION_GID_2 saved queries are used.
The defined queries must return a single GID of the element being referenced (for example,
Order_Base_GID for TransOrder, Shipment_GID for Shipment, etc.). When a query returns multiple
records, it will generate an error. Transportation and Global Trade Management Cloud supports up to
two queries for each interface/record. If the first query generates an error or does not resolve to a
single record, the second query will be applied. And if nothing is returned, then an error is generated.
Character Encodings
The default character encoding for inbound XML transmissions is UTF-8. However, Transportation and
Global Trade Management Cloud can receive transmissions in other encodings.
As per the Transportation and Global Trade Management Cloud Installation guidelines, the database
character set must be UTF-8 which means that all the characters, irrespective of initial encoding, can
be stored in the database.
6-10 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Specify it in the XML file. For example,
However, for certain scenarios it is feasible that transactions that should be processed together do not
all arrive in one Transmission. For example, depending on the message routing for various
applications, a Tracking Event transaction could arrive from a WMS system a few seconds before the
transaction from a Planning system which actually creates the shipment to which the tracking event
should apply.
Transportation and Global Trade Management Cloud supports this scenario by using Staging
Transmissions.
Staging Info
The StagingInfo content in the Transmission header defines the following:-
A Staging Query - The StagingQuery element is an Integration Saved Query which should
return one or more Transmission numbers. The first transmission number returned from the
query is used as the transmission number to which the transactions in the current
transmission are appended thus constructing a more complete Transmission.
A Staging Process – The StagingProcess element is an Integration Saved Query which
determines if the Transmission is now ready for processing. If the query returns a result, the
Transmission will proceed with processing, and if no result is returned then the transmission
will remain in a STAGING status until another event triggers it to be processed.
Note that initiating the processing of the Staging Transmission can also be enabled through the
TRANSMISSION agent type, and the Staging Transmission Processing process management actions.
Refer to the online help for details on the agents and process management actions.
Examples
To put a transmission immediately into a STAGING state, use the following TransmissionHeader:-
<TransmissionHeader>
<TransmissionType>STAGING</TransmissionType>
</TransmissionHeader>
If a Transmission contains the above header the transactions within the transmission will remain in
STAGING state until a subsequent transmission or process changes their state.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 6-11
If the current transmission should also be put into STAGING state but the transactions contained
within it should be added to an already existing transmission also in STAGING state, the following
TransmissionHeader should be used:-
<TransmissionHeader>
<TransmissionType>STAGING</TransmissionType>
<StagingInfo>
<StagingQuery>
<IntSavedQuery>
…integration saved query elements…
</IntSavedQuery>
</StagingQuery>
</StagingInfo>
</TransmissionHeader>
The Integration Saved Query should return the transmission number of the previously staged
transmission which should have the current transactions added to it. If no result is returned the
transactions remain associated to this transmission and it will remain in STAGING state.
6-12 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
7. Outbound Transmission Processing
All outbound transmission processing requires the configuration of an External System to which the
messages will be sent. At a minimum, the External System must define the protocol to be used for the
transport and any required external credentials.
There are various ways to trigger the sending of Transmissions to the external system from
Transportation and Global Trade Management Cloud:
Processing Overview
Once an event triggers the requirement to send a Transmission for one or more objects, the following
processing takes place.
1. Construct internal objects based on SQL Queries. Out XML Profiles are applied during the
generation of the objects.
2. Convert the objects into an XML String.
3. If anything other than the Current Target Namespace is selected then this conversion takes
place now.
4. Apply XSL Transformations if needed.
5. Save the XML (Or Transformed output) to the I_TRANSMISSION table. If the outbound
integration is designated as a message (e.g. generated via the Compose and Send UI action or
dispatch actions), then an entry is stored in the I_MESSAGE table.
6. Send the XML via the indicated notify type (e.g. HTTP POST). The External System record in
Transportation and Global Trade Management Cloud indicates whether or not an
acknowledgment is required from the external system.
7. Updates the status of the Transmission.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 7-1
Use Credential: Transportation and Global Trade Management Cloud username associated with
the process2 sending the message will be present in Transmission and/or Message XML
header. No password will be sent.
Username and Password fields: Appear in Transmission and/or Message XML header.
NOTE: Refer to transport specific sections on outbound security for details on whether user
credentials from the External System are used.
Integration preferences can also be associated with the Rate Inquiry and Generic Query interfaces. To
use the integration preference in those synchronous interfaces, you would specify the
IntPreferenceGid in the RIQQuery, or the GenericQuery XML. When specified in the RIQQuery, the
2 The workflow process determines the user and will either be the user signed in to Oracle
Transportation Management whose action triggers the message or the automation agent configuration
(“Run As”).
7-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
RIQQueryResponse would apply the preferences before responding with the result XML. When
specified in the GenericQuery XML, the preference would be applied to the resulting generated
interface XML.
Versions prior to 6.4.2: this will be used when the Include Namespace option is DEFAULT or
STRICT.
None (Compatibility Mode): this will be used when the Include Namespace option is NONE.
All new External Systems will default to the Current target namespace.
Versions prior to 6.4.2 retained the compatibility logic for receiving older format GLogDate elements.
This same capability is only retained if older namespace message formats are sent i.e. only the date
formats specified in the 6.4.2 versions of the schemas will be accepted in version 6.4.2 messages.
See Appendix B – Backward Compatible Dates – pre 6.4.2 for more details.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 7-3
8. Web Service Integration
Web Service Security (WS-Security)
The Web Service Security Specification is an OASIS standard for defining security related information
as part of a SOAP message. See http://www.oasis-open.org/.
Both Inbound and Outbound web services security requires the correct WSS policy to be used. Refer
to the Transportation and Global Trade Management Cloud Security Guide for details on configuring
alternative policies.
Inbound
Transportation and Global Trade Management Cloud support a number SOAP Web Services for sending
messages inbound to the application. All available services are described in the following table.
Table 8-1
Workflow Web Services Process agent actions against one or more existing transactional
objects. See Workflow Web Service section for details.
All the web services above are only deployed to the Transportation and Global Trade Management
Cloud Application Server, i.e. not the Web Server. If your system is configured as a cluster of more
than one application server, each application server will provide a web service endpoint. At the current
time, each application server has to be accessed directly and so any load balancing or failover across
application servers would have to be managed external to the Transportation and Global Trade
Management Cloud system e.g. by a hardware load balancer.
Security
All Inbound Web Services default to using a Web Service Security (WSS) policy which requires a
Username Token to be passed and to be securely transported over HTTPS.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 8-1
Accessing Web Services Description Language (WSDL)
Each application server provides a different service endpoint URL for accessing the WSDL file. As a
convenience, a new servlet has been added to Transportation and Global Trade Management Cloud
that correctly points to the URL for the WSDL based on the application server. The servlet is accessed
via the following menu path: Business Process Automation > Integration > Integration
Manager > Retrieve WSDLs on main page. The servlet relies on the following properties to form the
correct URL:
appserver
appserver.port.webservice.weblogic (default value is 7001)
If the application server configures a different port for use, please add the properties with the
appropriate values in your glog.properties file.
The servlet also provides access to any related XSD schema files for each service.
Transmission Service
The Transmission Service is the standard inbound Web Service for processing of Transmission XML
documents.
Note: The IntXmlService and IntGtmXmlService services are both now deprecated and will
be removed in a future version.
TransmissionService is a SOAP Document Literal WRAPPED style of web service which means the
SOAP Body of the SOAP message contains a Transmission XML wrapped in an element which matches
the name of the operation to be performed. This style is recommended by the OASIS Web Services
Interoperability Basic Profile. See https://www.oasis-open.org/ for details.
publish: This operation accepts and stages a Transmission for processing and returns a
TransmissionAck as response. This operation maps to the process operation of the preceding
IntXmlService.
execute: This operation synchronously processes a Transmission and returns a reply
Transmission with the processing results. For example, this operation should be used for
RemoteQuery and ServiceRequest interfaces. In future, other interfaces may be supported
inbound.
Refer to the TransmissionService WSDL for each operations input and output supported schema types.
Outbound
It is also possible to configure an Transportation and Global Trade Management Cloud External System
to use an external web service endpoint as the destination for an outbound message.
The external system is configured to use a Web Service record created from the WSDL for the external
service. See the online Web Service Manager help for details but, at a high level, the main steps are
as follows:-
1. Create a Document in Transportation and Global Trade Management Cloud from the external
service WSDL URL.
2. Create a Web Service record in Transportation and Global Trade Management Cloud using the
Document created in step 1.
8-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
3. Configure External System to reference Web Service for the chosen Web Service operation and
service endpoint.
Note: A single service can offer multiple operations.
In step 1, the Document can be created from an uploaded text file containing the definitions (normally
with the .wsdl file extension) or by specifying the URL for the WSDL resource. See the online
Document Manager help for details.
Note: If the external service specifies a WS-SecurityPolicy (see below) then the Document
must be created using the URL.
Security
The following WS-Security policies are supported for outbound web services:-
Username Token Profile – uses username and password configured on Web Service Endpoint.
HTTPS Transport
Message Encryption
Note: Please refer to the Transportation and Global Trade Management Cloud Security
Guide for configuration details for using Web Service Security for inbound and outbound
messages.
Note: Support for SOAP RPC style has been removed as it is rarely used due to its own
interoperability issues.
By default, i.e. unless transformations have been specified, the SOAP Body will be the outbound
Transmission document. Therefore, in versions prior to 6.4.2 the external web service ‘input’
parameter had to be defined as the Transmission which meant that Document Literal WRAPPED
services could not be supported.
In version 6.4.2 it is now possible to select the Parameter Style which suites the WRAPPED style of
service. See online Help for Web Service Manager UI on how to choose the correct style.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 8-3
9. HTTP Integration
Inbound
There are various options for sending integration messages into Transportation and Global Trade
Management Cloud using HTTP:
http://hostname/GC3/glog.integration.servlet.WMServlet
WMServlet is the default servlet used when sending the Transmission or Message XML.
http://hostname/GC3/glog.integration.servlet.TransformerServlet
TransformerServlet is used to apply an XSL transformation to an XML to convert it into a valid
Transmission XML. See Transform Inbound XML with XSL section for additional details.
http://hostname/GC3/glog.integration.servlet.DirLoadServlet
DirLoadServlet provides a faster option than WMServlet for pre-loading transactional data into
Transportation and Global Trade Management Cloud in order to bypass application workflow. It
can be used for inserting/creating data. Refer to Chapter 18: Transactional Data Pre-loading
(DirLoad) for additional details.
Note: The supported content types for HTTP messages (corresponding to the Content-
Type HTTP header parameter) are text/xml and application/xml.
Security
All Inbound HTTP messages require user authentication and authorization with the preferred method
of passing credentials being Basic Authorization transported over HTTPS.
The methods of passing user credentials in the Transmission Header or as Transportation and Global
Trade Management Cloud specific HTTP Header parameters is deprecated as of version 6.4.2 and will
be removed in a subsequent version.
1. Create a Stylesheet Content record in the Transportation and Global Trade Management Cloud
Database.
2. Include this processing instruction in the beginning of every transmission that Transportation
and Global Trade Management Cloud needs to transform:
<?gc3-int-translate stylesheet_name=”stylesheet_name”?>
stylesheet name is the GID of the required Stylesheet Content record prefixed with “db:”.
You can include multiple processing instructions in one transmission, in which case,
Transportation and Global Trade Management Cloud will transform in the order the processing
instructions appear in the transmission.
3. Post XML documents to http://hostname/GC3/glog.integration.servlet.TransformerServlet
instead of http://hostname/GC3/glog.integration.servlet.WMServlet
Note: The use of uploaded (file-system based) stylesheets instead of Stylesheet Content is
still supported for backward compatibility but is deprecated and their use should be
replaced with Stylesheet Content as soon as possible. Support for file-system based
stylesheets will be removed in a future version.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 9-1
Outbound
Security
The username and password credentials from the External System, if present, are used as the HTTP
Basic Authorization authentication properties on the outbound HTTP connection. They will also be
present in the Transmission Header.
9-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
10. Oracle Advanced Queue Integration
Oracle Advanced Queuing (OAQ) provides a Message Oriented Middleware approach to sending and
receiving XML messages to/from Transportation and Global Trade Management Cloud. The main
benefit to using OAQ is the added level of guaranteed message delivery provided by a persistent
message queue.
Note: OAQ currently only supports the Transmission XML as the message content.
Both inbound and outbound queuing is supported. The message payload is the same in each case and
is the Oracle User Defined Type (UDT) called INTG_QUEUE_MESSAGE (defined in the GLOGOAQ
schema).
Table 10-1
ID Type Description
The following sections described the steps required to configure OAQ Integration; the bulk of which is
for the inbound process.
There is a default setup process which can be followed which will configure the system with the
necessary artifacts for the vast majority of use cases. Users with expertise in OAQ may choose to
configure the system differently using the procedures described in the following sections. If this is
likely to be the case, please read this section completely before attempting to configure the system.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 10-1
Overview
The following diagram introduces the main components in the Transportation and Global Trade
Management Cloud OAQ configuration and shows the inbound communication from the client (e.g. a
PL/SQL client) to the database queue, as well as a high level depiction of the subsequent processing in
the database and application servers.
Figure 10-1
In the diagram above, you would first use a supported OAQ API e.g. DBMS_AQ PL/SQL procedure, to
send the XML to the Inbound Queue. The Database Listener Procedure (installed as Database
Job) reads from the inbound queue, authenticates the Transportation and Global Trade Management
Cloud user credentials and stages the Transmission XML data to the i_transmission table. In the same
transaction the database listener procedure then queues the TransmissionAck message in the Ack
Queue (unless this is suppressed in the Transmission Header). The database listener procedure also
stages a message to the application server in the XML Topic Queue so that the application server
can proceed with processing the message content. If the Transmission XML is for a RemoteQuery
transaction, the response to the processed message is placed in the Query Reply queue. If an error
occurred in the staging, the database listener procedure puts an exception message in the Exception
Queue. All queues are permitted to be on different queue tables. However, the Inbound Queue and
XML Topic Queue must not be multi-consumer queues. Furthermore, you are allowed to add multiple
sets of inbound and outbound queues in the same queue table.
The outbound process is straightforward and simply results in an OAQ message queued to an
outbound queue. There is no corresponding listener processes required for outbound messages.
10-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Configuration
As can be seen in Figure 10-1 there are two areas where configuration is required if OAQ is to actively
process messages in Transportation and Global Trade Management Cloud.
The default implementation for OAQ in Transportation and Global Trade Management Cloud relies on a
database queue table called INTG_QUEUE created in the GLOGOAQ schema. The queue table is a
point-to-point (single consumer) queue table. This table should already have been created with the
installation of the Transportation and Global Trade Management Cloud database. It is highly
recommended that you use this table for inbound messages.
If the default configuration is to be used you may proceed directly to Step 3 – Setup Database
Listeners.
The OAQ functionality is not restricted to a single queue table. Additional queue tables can be created
as needed, although a single queue table can also support multiple queues (see Step 2 below). It
would normally only make sense for outbound queues to be created in a separate queue table. A
common use case for this is where the Oracle Message Gateway is used to propagate messages sent
from Transportation and Global Trade Management Cloud to a messaging network.
The procedure supports creating multi-consumer queue tables using the p_multiple_consumers
argument. The only requirement for creating a queue table is that the inbound queues Transportation
and Global Trade Management Cloud will read from must be created as a point-to-point (single
consumer) table.
Example:
Sqlplus> execute
pkg_queue_management.create_int_queue_table(‘queue_test_table’, ‘This is for
test only’);
Sqlplus> execute
pkg_queue_management.create_int_queue_table(‘queue_test_table’, ‘This is for
test only’, ‘data’, true);
The queue tables created this way specify the INTG_QUEUE_MESSAGE type as the payload type.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 10-3
Step 2 – Setup Required Inbound Queues
For inbound processing of the XML, a set of four queues are required. The queues are:
If the default configuration is to be used you may proceed directly to Step 3 – Setup Database
Listeners.
If however a customer-defined configuration is required and you wish to create all queues required for
inbound processing on the same queue table, use the following procedure:
Example:
To create the queues on different queue table(s), you will first create the required queue tables and
then use the following procedure to create each queue:
Example - to create all the queues in example A above individually, use the following commands:
If using the default configuration the database configuration phase can be complete by installing the
database listener procedure as follows:-
10-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
This procedure will create (if necessary) and start the default set of queues, namely ‘inbound_aq’,
‘xml_stage_aq’, ‘ack_aq’, ‘exception_aq’ and ‘query_reply_aq’.
If, however, a custom setup is required, the following procedure should be used to specify the
customer-defined queue names and the queues must already have been created (e.g. using the setup
procedure described previously in this section):
Example:
In this case, inbound messages should be queued to the ‘another_inbound_aq’ queue defined in the
first parameter. The database listener reads from this queue and authenticates the message. If this is
successful, the database listener stages the Transmission XML, generating a unique transmission
number in the process and puts the TransmissionAck message containing that transmission number in
the ‘acknowledgement’ queue defined in the third parameter. Finally the listener stages a message to
the application server in the ‘raise_xml_topic’ queue defined in the second parameter. If an error
occurred in the authentication or staging, the database listener puts an exception message in the
‘notify_exception’ queue defined in the fourth parameter.
To stop the database listener, execute the following procedure on the “Inbound Queue”:
Sqlplus> execute
pkg_queue_management.stop_queue_listener(‘another_inbound_aq’);
The first parameter to the procedure must be the name of the first parameter passed on the
install_queue_listener command.
The application server requires a listener thread to be enabled to process the messages in the XML
Topic Queue. The app server listener is set up through properties. The format of property entry is:
glog.oaq.integration.{the_topic_queue_name}={number of threads}
For example, the property entry corresponding to the default database listener created in Step 3 –
Setup Database Listeners should be:
glog.oaq.integration.xml_stage_aq=1
Similarly, if the custom database listener was configured the property should be:
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 10-5
glog.oaq.integration.raise_xml_topic=1
The value for the property must be a non-zero integer. The integer value determines the total number
of threads for the listener. Since the application server listener is very lightweight, one thread should
be enough to process the messages. If user desires to set up the value greater than one, a
performance test should be done to determine the effects. To turn off the listener, set the value to “0”
or remove the property entry.
The application server has the ability to start and stop the default database listener when it is being
started or shut down. This is enabled through the use of the following property:
glog.integration.oaq.controlDbListener=true
When the property is true, the application server will start the default database listener when the app
is starting, and will also shut down the database listener when the app server is shutting down.
NOTE: If multiple application servers are configured, this property should be set on only one
of the application servers.
Inbound
Once the configuration above is completed the Transportation and Global Trade Management Cloud
application is ready to process inbound messages. This section outlines the requirements that need to
be followed to successfully enqueue a message to the OAQ queue.
Security
A valid Oracle DB account is required to be able to enqueue messages to an OAQ queue in the
Transportation and Global Trade Management Cloud database. This account must have the required
privileges based on the API used to queue the message e.g. PL/SQL, OCI etc. Please refer to the
Oracle Database documentation for details.
In addition to the DB account, an Transportation and Global Trade Management Cloud application user
and password must be defined in order for the message to be processed. This will be used for further
authentication and authorization at the Transportation and Global Trade Management Cloud
application level.
Note: In version 6.4.2 it is no longer supported to pass the username and password as
part of the Transmission XML. The credentials must be passed in the corresponding fields in
the INTG_QUEUE_MESSAGE.
Outbound
You specify the queue to use for sending outbound XML from Transportation and Global Trade
Management Cloud in the External System Manager in the UI. There are two approaches for creating
the outbound queue, which is then used in the External System Manager. The first approach is to
create the queue using the stored procedure; this enables you to specify the queue table to be used
for the queue. After the queue is created, the external system can then reference the queue. The
second approach is to specify the queue in the external system manager without first creating the
queue. If the queue does not exist, the Transportation and Global Trade Management Cloud
application would create the queue with the queue table defined in the property entry
glog.integration.oaq.outbound.queuetable. By default, the queue table is INTG_QUEUE.
10-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Example to create queue from procedure:
If the queue table is a multi-consumer queue table, the corresponding queue on the table is multi-
consumer. At least one subscriber must be created for the queue; otherwise, Transportation and
Global Trade Management Cloud will throw an exception during the enqueue process.
Sqlplus> Pkg_queue_util.add_subscriber(‘mutlti_consumer_queue’,
subscriber_name);
To remove every entry for all the queues in a given non multi-consumer queue table:
execute pkg_queue_management.stop_all_queue_listeners;
execute pkg_queue_management.remove_all_queue_listeners;
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 10-7
Optional Oracle Settings
The following Oracle DB parameters can be specified in init.ora or spfile. Refer to Oracle Database
documentation for additional details on these parameters.
Use Sender Transmission Number: You must send a unique value in the
TransmissionHeader.SenderTransmissionNo element in the Transmission XML before sending it
to the queue. The value is echoed back in the TransmissionAck and the TransmissionReport.
Use refnum field in INTG_QUEUE_MESSAGE: You must set the refnum field in the queue
message before queuing. The value is echoed back as the SenderTransmissionNo in the
TransmissionAck and the TransmissionReport.
Limited Use of JMSCorrelationID Header Option: A column exists in the queue table for a
correlation id (table column name is CORRID). This field can be populated on the inbound
queue to Transportation and Global Trade Management Cloud, but is not populated on the
queue table for the acknowledgement or the report. When this field is populated on the
inbound queue, it is mapped to the Sender Transmission Number. The value is echoed back in
the TransmissionAck and the TransmissionReport.
Suppression of TransmissionAck
When using OAQ, clients can rely on the confirmation of receipt of the Transmission via the successful
enqueing of the Transmission. With this approach, the TransmissionAck response is redundant. It is
possible to suppress the TransmissionAck as a response by setting the SuppressTransmissionAck
element to Y in the TransmissionHeader element. Errors that may occur with receiving the
Transmission will still be reported in the error queue.
AckSpecComMethodGID = 'QUEUE'
The AckSpec.ContactGID element should be specified. Transportation and Global Trade Management
Cloud will look for Contact > External System > IntQueueName. The process also supports specifying
a ContactGID for which the TransmissionReport should be sent. The ComMethodGID specifies the
method of sending.
10-8 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
11. Direct Database Integration
Inbound
Direct XML Insert is a way of sending inbound Transmissions and Mobile Communication Message XML
to Transportation and Global Trade Management Cloud. This section will concentrate on Transmission
XML documents. See Mobile Device Communications for details on sending Message XML.
The documents are inserted directly into the DB via a new PL/SQL procedure – insert_transmission
– in the pkg_integration_util package. There is no corresponding outbound procedure.
Table 11-1
Parameter Description
p_username IN. Transportation and Global Trade Management Cloud user account
under who’s authority XML will be processed.
p_password IN. Password for Transportation and Global Trade Management Cloud
user.
p_data_queue IN. Default NULL. Data Queue Definition GID that event will be
handled by.
p_cluster_gid IN. Default NULL. Cluster that will process the events.
Security
The Oracle Database user DIR_XML_USER has all required privileges and synonyms to successfully
insert transmission into the database. Use DIR_XML_USER to execute this procedure.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 11-1
Internal Processing
The Transmission XMLs inserted using this procedure are processed using an internal Integration Data
Queue – INTEGRATION IN DIRECT XML and can be monitored in exactly the same way as Integration
Data Queue events covered in Chapter 14: Integration Data Queues.
Figure 11-1 shows the processing for directly inserted XML messages.
Figure 11-1
11-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Data Queue Definition Configuration
The INTEGRATION IN DIRECT XML Data Queue can be configured exactly as described in the section
Chapter 14: Integration Data Queues, Understanding the Integration Data Queue Definitions, with the
following additions.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 11-3
12. FTP Integration
Outbound
Transmission XML documents can be saved to an external FTP server.
The server name, port and remote directory should be configured on the External System record.
Security
The username and password credentials from the External System, if present, are used as the FTP
authentication properties.
Note: the Use Credential check box is not valid for FTP.
The transport for FTP can optionally be secured using the ’Use Secure FTP’ check box on the External
System. This enables the support for FTPS (FTP over TLS).
Note: S/FTP often just referred to as ‘Secure FTP’ is not the same as FTP over TLS and is
not supported.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 12-1
13. Setting Up Interfaces
The following general information helps you set up your interfaces. If an interface has specific setup
requirements, they are found with the pages defining each interface.
To set up interfaces, you must define where to send transmissions and what to do with the
transmissions Transportation and Global Trade Management Cloud receives. Information throughout
Transportation and Global Trade Management Cloud acts interdependently; one piece of information
depends on another to perform an action. For some interfaces to work, data from other sources must
already be present in Transportation and Global Trade Management Cloud. For example, before you
can create a shipment, you must create itineraries.
User Management
You must add service providers as users and enter user associations for them. To perform user
management functions, log in to the SERVPROV with a username that contains administrator (ADMIN)
rights.
Define service providers as users in Transportation and Global Trade Management Cloud.
Define associations for the service providers.
Workflow Parameters
In Power Data, define workflow parameters that determine how Transportation and Global Trade
Management Cloud responds to inbound and outbound transmissions. You define Workflow Power
Data topics to define the way the tendering shipments works.
Workflow Parameters: Use the Workflow Parameters to define how Transportation and
Global Trade Management Cloud tenders shipments. You also define shipment notification
messages. For example, you define information, warning, and, fatal messages that
Transportation and Global Trade Management Cloud sends out as the results of status
information sent by service providers about particular shipments.
Workflow Trigger Parameters: Use the Workflow Trigger Parameters to define how often
Transportation and Global Trade Management Cloud performs tender activity. This topic helps
you control system performance. For example, if Transportation and Global Trade
Management Cloud is performing tender actions too frequently, your system performance may
be slowed.
Agent Manager
The Automation Agent Manager lets you construct workflow agents that are key components to
automate Transportation and Global Trade Management Cloud. A workflow agent listens for an
Transportation and Global Trade Management Cloud event, verifies a user-defined condition, and
executes one or more actions that you choose from an action library.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 13-1
14. Integration Data Queues
Overview
By default the Transportation and Global Trade Management Cloud application server workload is
managed by a set of in-memory event queues; with a configurable number of threads available to
process each queue. The Transportation and Global Trade Management Cloud Data Queue
infrastructure was introduced to permit a more configurable fine-grained control of various aspects of
this internal workload. The Data Queues are database resident queues where a configurable number
of “poller” threads retrieve a configurable number of events at a configurable interval and pass
them to an “executor” to be processed. See Figure 14-1 below.
Figure 14-1
Note: Although the entity names used are similar, Transportation and Global Trade
Management Cloud Data Queues do not use Oracle Advanced Queue schema objects for
processing data queue events.
The internal processes for Inbound and Outbound Integration can now be configured to use this
infrastructure.
Note: See Data Queue Manager in the Transportation and Global Trade Management Cloud
online Help for coverage on the User Interface used to configure each data queue.
Figure 14-2 shows the application server processing of an inbound Shipment Status XML without the
use of data queues. The XML message will arrive via one of the supported protocols: HTTP, SOAP Web
Service or OAQ.
Note: the Direct Insert XML protocol is covered Chapter 11, Direct Database Integration.
1. The XML is stored in the Transmission table with a new unique Transmission number.
2. A New XML topic containing the Transmission number is placed on the in-memory event
queue.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 14-1
3. A listener thread which has subscribed to New XML topics removes the event and passes it to
the New XML Workflow to process.
4. Workflow processes the content of the XML, which in this case results in a new status being
assigned to a shipment.
Figure 14-2
Imagine an Transportation and Global Trade Management Cloud implementation scenario that has an
inbound interface with a carrier status application where shipment statuses are sent in one batch of
10000 to Transportation and Global Trade Management Cloud. Without Data Queues, the application
server in-memory event queues would contain all 10000 Shipment Status transactions in one backlog,
therefore competing with all other internal application server processes for resources and process
time.
Figure 14-3 shows the application server processing where data queues were configured for inbound
XML messages. The Inbound Data Queue process can instead be configured to stage the initial 10000
transactions and process in batches of 1000 every 5 minutes.
1. The XML is stored in the Transmission table and the associated Transmission number is stored
in a Data Queue Event.
2. At some time within the configured interval, a Poller thread will retrieve up to 1000 data
queue events and pass individually to the Executor to be processed.
3. The Executor publishes a New XML topic which, from then on, will be processed as with normal
in-memory event queues.
14-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Figure 14-3
The application server processing for Outbound XML messages also uses in-memory event queues to
manage workload; one for the building of the XML and another for the physical transport of the
message. The use of Data Queues for outbound message works essentially identical to the inbound
scenario described above i.e. instead of publishing new build or transport topics on in-memory event
queues, data queue events are stored in outbound data queues. The same arrangement of Poller and
Executor then publishes the topic to the next step in the process.
INTEGRATION IN: Used to manage all Inbound Transmissions sent in via UI (Upload
Transmission), HTTP (WMServlet), SERVICE (TransmissionService, IntXmlService &
IntGtmXmlService), and OAQ (XML_STAGE_AQ).
INTEGRATION IN DIRECT XML: (covered in Chapter 11)
INTEGRATION OUT XML BUILD: Used to manage outbound process of generating
Transmission content from database objects and staging in Transmission tables ready for
transport.
INTEGRATION OUT TRANSPORT – HTTP: Used to manage transmissions ready to be
transported via HTTP to external system.
INTEGRATION OUT TRANSPORT – SERVICE: Used to manage transmissions ready to be
transported via web service call to external system.
INTEGRATION OUT TRANSPORT – FTP: Used to manage transmissions ready to be
transported via FTP to external system.
INTEGRATION OUT TRANSPORT – QUEUE: Used to manage transmissions ready to be
transported via Oracle Advance Queue to external system.
The inbound data queue events reside in the Q_INTEGRATION_IN Data Queue table. The outbound
data queue events reside in the Q_INTEGRATION_OUT Data Queue table.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 14-3
By default the PUBLIC data queues are inactive, except for the INTEGRATION IN data queue which is
active. To activate the other queues, login as DBA.ADMIN and edit the Data Queue records via the
Data Queue Manager (under Business Process Automation > Integration menu).
Alternatively, the PUBLIC records can be copied to DOMAIN specific records and activated there. In
order for the application server to recognize the new queue names as the default data queues, the
following properties must also be set:
glog.integration.dataqueue.inbound
glog.integration.dataqueue.xmlBuild
glog.integration.dataqueue.transport.http
glog.integration.dataqueue.transport.service
glog.integration.dataqueue.transport.ftp
glog.integration.dataqueue.transport.queue
For example,
glog.integration.dataqueue.inbound=MYDOMAIN.MYINBOUNDQ
Note: An application server can only process one default data queue of each type. For
example it is not possible to configure two inbound default data queues:
MYDOMAIN.INBOUNDQ1 & MYDOMAIN.INBOUNDQ2 or MYDOMAIN2.INBOUNDQ1. The only
exception to this is the data queue configuration for Direct Insert XML. See Chapter 11 for
details.
Although only a single default inbound data queue can be specified, it is possible to configure as many
additional inbound data queues as required. Additional data queues are useful for scenarios where
different inbound transactions require different prioritization or throughput management. For example,
it may be desirable to process inbound Tracking Event transactions on a data queue with more threads
or that while Order Release creation and update must be regarded as top priority, other lower priority
transactions must still be processed.
It is now possible to specify a data queue GID and/or event priority in the Transmission header for
each individual Transmission to override the default inbound data queue. Consult the Transmission
schema documentation for details on how to specify these overrides.
Using the earlier example where Order Releases are top priority but others must still be processed, it
should be clear from the following discussion that multiple data queues would best be used in this
scenario.
The priority value for an event corresponds to the q_preemption_priority column in the data queue.
The poller configured for the data queue can then use this column in the ‘order by’ clause for
retrieving batches of events to process. The INTEGRATION IN poller is an example of such a poller.
For the single data queue scenario where orders were higher priority than all other transactions, if
there were 100 events in the queue – 60 order releases and 40 tracking events – and the data queue
batch size was 50, then only the first 50 order releases would be selected for processing. If, before the
poller attempts to poll a new batch another 50 order release transmissions arrive, then these would be
selected for the next batch thus meaning that the processing of tracking events message is delayed
longer than might be preferable. However, with different data queues each queue can process events
in parallel.
The inbound Order Release Transmissions should specify the data queue used to handle orders and
the other Transmissions should specify a different data queue and possibly also a priority value to
further control the order of processing in this data queue. Obviously, there are many other possible
configurations of batch sizes, poller frequency and threads counts that can handle similar scenarios.
The addition of support for multiple data queues expands these options considerably.
14-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Once one or more Integration Data Queues are active, the processing can be controlled on a domain-
by-domain basis by setting one of the following PARAMETER SET parameters to ‘TRUE’ on the DOMAIN
PARAMETER SET.
If either the queue is not active or the domain parameter is FALSE, the default in-memory queues will
be used.
Note: It is possible to override this default to process via in-memory queues. Set property
glog.integration.dataqueue.inbound.useMemoryQueue=false. This will cause the
inbound Transmissions to remain in ‘STAGED’ status.
This section will describe these definitions so that any configuration can be done without any
unforeseen impact on the integrity or performance of the Transportation and Global Trade
Management Cloud servers.
The Data Queue Definition is a unique (based on a Data Queue Definition GID) configuration of the
following properties.
Table 14-1
Parameter Description
Active Only queues which are marked as ‘Active’ will have Poller
threads started on the application server.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 14-5
Parameter Description
Thread Count The number of Poller threads that will be started on each
application server. All Poller threads will synchronize their
access to the events on a data queue. One thread at a time
will retrieve a batch of events, mark them all as ‘ACTIVE’
and commit the transaction before releasing the queue for
another thread to access.
Polling Frequency The duration each Poller thread will sleep between
attempts to retrieve a batch of events. Note: if the time
taken to process a batch exceeds the polling frequency the
Poller thread will essentially start processing the next batch
more or less immediately after completing the current
batch.
Data Queue Table Corresponds to the physical table which will contain the
events
Data Queue Poller The Poller configuration specifies the behavior and
attributes of the SQL statement used to retrieve the batch
of events. In addition to the Class that will execute the
query, the following can be configured:-
14-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Parameter Description
Data Queue Executor The Executor configuration species the Class that will
process the actual event and whether events in the ACTIVE
or FAILED state should be reprocessed on app server
startup.
Finder Set This specifies the Class which formats the queue specific
information in the Data Queue Manager Events UI.
If these base configurations are deemed to be sufficient for the expected volumes, they can be
activated by logging in as DBA.ADMIN and setting each queue definition to ‘Active’. Additionally, as
mentioned previously, the INTEGRATION IN Parameter set value also needs to be set to ‘TRUE’.
The Poller Definitions for both queues are configured to use the PREEMPTIVE POLLER plug-in, which
uses a ‘Top N query’ format to retrieve an ordered batch of events. The format of the SQL statement
that would be used to retrieve a batch of events would essentially be as follows:-
Table 14-2
Parameter Description
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 14-7
Parameter Description
column list The complete column list is controlled via the Event Class
which for Q_INTEGRATION_IN events would be:-
or
q_preemption_priority, q_event_seq
batch size This is the batch size taken from the Data Queue
Definition.
In addition to the ability to configure redo of ACTIVE or FAILED events, it is possible to configure how
the topics created by processing Direct Insert XML events are processed. See Chapter 11 for details.
14-8 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Poller threads will only be started on Application Servers which belong to the Cluster associated to a
particular data queue. Data Queues are associated to a Cluster via the Cluster Manager under
Configuration and Administration, Cluster Management.
For example, assume CLUSTER-01 is defined and has app servers APP-01 and APP-02 assigned to it
via the Cluster Manager. App server APP-03 is assigned to CLUSTER-02.
If data queue definition INTEGRATION IN is also assigned via the Cluster Manager to CLUSTER-01,
then Poller threads will started when the APP-01 and APP-02 app server machines are started. Poller
threads will not be started on APP-03 and therefore it will not process any Data Queue events for
INTEGRATION IN. See “Cluster Management” in online Help for a full description.
Inbound Events
All inbound events have an associated transmission number. In normal processing, when a
transmission is sent to Transportation and Global Trade Management Cloud, the XML is persisted in
the transmission tables with an initial status of STAGED and a New XML event is published almost
immediately. Once the New XML event execution has started the status is changed to FRESH. When
the Inbound Data Queue is active, the XML is persisted in the transmission tables with a status of
STAGED and the New XML event is persisted in the data queue table. Consequently, transmissions can
remain in this STAGED status for much longer.
Inbound events can also be preempted. In other words, events already present in the data queue can
be selected for processing ahead of other events that may have been inserted before it. By selecting
an event for preemption, the Q_PREEMPTION_PRIORITY is set to the lowest value in the data queue
table. This will ensure the next POLLER will retrieve the selected event.
Outbound Events
Outbound events may go through two event queues: XML Build and Transport. The XML Build process
happens before a transmission record has been created and so these events do not have an available
transmission number. They do, however, have a Notification Context that shows the object type of the
communication, such as Location, and one or more object GIDs.
The display of the context is limited to approximately 4000 characters and so if the context is greater
than this it will not be displayed.
However, unlike inbound events, outbound event priority can be set when the data queue event is
staged in the data queue table. The priority value is managed via the External System where it can be
set alongside an OUT XML PROFILE for a particular GLogXML Element e.g. PlannedShipment.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 14-9
15. Customs Info Integration
The Global Trade Management component of Transportation and Global Trade Management Cloud
supports an interface to Customs Info for retrieving reference data used in the services. This section
details the setup for accessing the data.
If the network Global Trade Management is installed requires a proxy server for external access to the
Customs Info server, specify the following properties in the glog.properties:
glog.integration.http.proxyHost=proxy-address
glog.integration.http.proxyPort=proxy-port
The data loader relies on pre-defined directories for the source and output directories. The directories
are defined via properties:
gtm.dataload.basedir=$temp.dir$/dataload
gtm.dataload.inputdir=$gtm.dataload.basedir$/input
gtm.dataload.outputdir=$gtm.dataload.basedir$/output
gtm.dataload.workingdir=$gtm.dataload.basedir$/output
These properties do not need to be changed for implementation. The logic will create the directories
needed if they are not already created.
Setup an External System record in Global Trade Management with the following details:
o User Name: User ID provided during registration
o Password: Password provided during registration
o Password (Confirm): Same value for password
o URL (in For HTTP/HTTPS section): URL for accessing the Customs Info status
document. The URL may resemble the following:
https://gtm.content.descartes.com/status/statusdocument.xml
Update the Content Source to refer to the newly created External System record as follows:
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 15-1
o Access menu: Trade Master Data > Power Data > Data Loading > Content Source
o Edit the Content Source with ID: “CUSTOMS INFO” which has been predefined for
Customs Info
o Add an entry in the Content Source Config section at the bottom as follows:
ID: Specify an Id (e.g. CI_GTM_DATA)
Comm Method: Specify “HTTPPOST”
External System: Select the external system created above
Active: Select to enable the config.
Download Data Content: Used to retrieve the content from a Global Trade Management
content source. For Customs Info, this process will download the latest files from the Customs
Info server into the local Global Trade Management server.
Purge Data Content: This is used to cleanup up the files on the Global Trade Management
server used for the data loading.
15-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
16. Global Trade Management Screening Service
This section captures the screening services developed in Global Trade Management.
All interactions with the Global Trade Management Services through integration is made using the
Service Request element (refer to the GLogXML-GTM.xsd schema for additional details). Upon
receiving the ServiceRequest XML in Global Trade Management, the request is processed
synchronously and a ServiceResponse xml is generated as a response to the caller. Note that the
Transmission/TransmissionHeader/TransmissionType must be set to “SERVICE” for the synchronous
processing to occur.
The ServiceRequest element contains several options for the screening services. A few of the available
services are as follows:
Table 16-1
Refer to the GLogXML-GTM.xsd schema file for additional fields in the ServiceRequest and
ServiceResponse, and the online help for details on the services.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 16-1
17. Mobile Device Communications
Message Schema
The Mobile Message infrastructure is used for mobile communication messages sent inbound and
outbound to Transportation and Global Trade Management Cloud. These messages are intended for
communication to a mobile communication device or sensor. When sent inbound to Transportation and
Global Trade Management Cloud, these messages should be small. The message body can contain
text-formatted content, which may be parsed and converted to the Transmission XML when
transmission processing is required.
Schema Files
The following schema files contain all definitions for the Message schema:
Table 17-1
Message Content Source Definitions for Message Group implementations for the Content Source
infrastructure.
XML Namespaces
Table 17-2
Message.xsd http://xmlns.oracle.com/apps/otm/msg/v1
MessageContentSource.xsd http://xmlns.oracle.com/apps/otm/cs/msg/v1
Message
o The Message is the primary document used for inbound to and outbound for mobile
communication messages. Each message can contain either text based or XML-based
content in the message body.
MessageAck
o The MessageAck is the response message to the receipt of the message. It contains
the confirmation for the receipt of the message with an assigned ReferenceMessageId
element, or an error if the message was not correctly received.
MessageReport
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 17-1
o The MessageReport summarizes the errors that were detected during the processing of
the message if the Message Body contains ‘actionable’ content. For example the
content could describe a Tracking Event which is translated into a Transmission XML
and processed as an Integration message. The report is optionally sent after all the
transactions in the Transmission have been completed (successfully processed or
generated errors). The request for the MessageReport is indicated in the message in
the AckSpec element in the MessageHeader. The MessageReportBody in the
MessageReport will include the TransmissionReport that will summarize the errors that
were detected during the processing of the Transmission.
Each of these documents is detailed in the Message XML schema file.
In the case where the message is correctly parsed and converted to a Transmission XML for inbound
transmission processing, the Transmission Report XML may also be sent as a summary of processing if
the AckSpec is specified in the generated Transmission resulting from the parsing.
Figure 17-1
1. Message XML document is sent to Transportation and Global Trade Management Cloud. The
nature of the sending component depends on the transport protocol used e.g. it will be an
HTTP client if sending message via HTTP POST.
2. Mobile message is persisted generating a unique Message Reference ID in the process. A data
queue event is queued to the MESSAGE IN data queue for later processing of the message
content.
3. A MessageAck document is returned which will contain the Message Reference ID. The nature
of the response depends on the transport protocol used e.g. if using HTTP it will be a
synchronous response to the initial HTTP POST.
4. The MESSAGE IN data queue event is polled and executed.
17-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
5. If the Message Body contains actionable content a Transmission XML will be staged for
processing. The background Transmission processing daemon retrieves the Transmission at
some time later and processes it e.g. creates or updates the business object using the original
XML message content.
6. A MessageReport is optionally sent to confirm the status (PROCESSED or ERROR) of the
actionable content. Again the report message contains the Message Reference ID for
correlation.
Processing Overview
If the servlet receives a Message XML, the integration module does the following:
1. Extracts authentication information from the MessageHeader. This information can be in the
HTTP header instead.
2. Validates username and password.
3. Stores an entry in the I_message table, and the content in the I_transmission table.
4. Sends a MessageAck back to the sender as the synchronous response.
5. Checks for presence of MessageTypeGid and StylesheetProfileGid. If neither are present,
checks for the MessageProfileGid, and uses the StylesheetProfileGids specified in the Message
Profile to determine the correct Stylesheet Profile.
6. Using the Stylesheet Profile, the message is parsed to extract designated fields and updates
the message table with extracted fields as needed.
7. Using the Message Type specified, the module performs the following:
a. Notifies Message Center recipients specified on the Message Type
b. Associates or disassociates devices to drivers, pieces of equipment, and power units as
indicated on the Message Type
c. Generates a Transmission XML if indicated on the Message Type. The Transmission
XML would then be processed as indicate in the Transmission Processing section
above.
8. Sends a MessageReport with validation and processing errors; Depending on your property
settings, Transportation and Global Trade Management Cloud might only send a
MessageReport if there are errors.
Message Status
Each message sent into Transportation and Global Trade Management Cloud has a status field that
indicates the state of the message. In addition, the content of the message is stored in the
transmission table which also has its associated status. You can view the status for a message in the
Message Hub Manager UI that can be accessed via the following menu: Business Process
Automation > Integration > Message Hub Manager. The status of the message, and its related
transmission, could be one of the following:
Table 17-3
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 17-3
Message Related Description
Status Transmission
Status
HTTP Integration
Mobile Device Communication messages can be sent inbound to Transportation and Global Trade
Management Cloud by sending via HTTP POST to the glog.integration.servlet.WMServlet. The
servlet accepts both a Message and MessageAck XML document and returns a corresponding
MessageAck in both cases.
Direct DB Insert
Direct XML Insert is a way of sending inbound Mobile Communication Message XML to Transportation
and Global Trade Management Cloud. The documents are inserted directly into the DB via a new
PL/SQL procedure – insert_message – in the pkg_integration_util package. There is no
corresponding outbound procedure.
17-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
insert_message ( p_username IN VARCHAR2,
p_password IN VARCHAR2,
p_message IN CLOB,
p_message_gid OUT VARCHAR2,
p_data_queue IN VARCHAR2 DEFAULT NULL,
p_cluster_gid IN VARCHAR2 DEFAULT NULL,
p_priority IN NUMBER DEFAULT 0)
Table 17-4
Parameter Description
p_data_queue IN. Default NULL. Data Queue Definition GID that event
will be handled by.
p_cluster_gid IN. Default NULL. Cluster that will process the events.
Security
The Oracle Database user DIR_XML_USER has all required privileges and synonyms to successfully
execute the procedure described above.
Internal Processing
The Message XMLs inserted using this procedure are processed using an internal Integration Data
Queue – INTEGRATION IN DIRECT XML and can be monitored in exactly the same way as Integration
Data Queue events covered in Chapter 11.
Figure 17-2 shows the processing for directly inserted XML messages.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 17-5
Figure 17-2
1. XML message passed to insert_message procedure.
2. Transportation and Global Trade Management Cloud procedure stores data in I_MESSAGE
table, I_TRANSMISSION table, data queue event in Message In Data Queue and returns
Message ID to caller.
3. The Poller retrieves a number of events and calls the Executor for each event.
4. The Executor retrieves the message XML and calls the Message Processor to process the
Message. If the content is “actionable”, a Transmission XML is generated and New XML
process is triggered.
17-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
18. Transactional Data Pre-loading (DirLoad)
You can get Transportation and Global Trade Management Cloud to load your inbound transmissions
into the database faster without involving the application server. This is good when you just want to
pre load data into Transportation and Global Trade Management Cloud and process the data later, like
during setup of Transportation and Global Trade Management Cloud.
TransOrder: You must include the GID to be able to have the application server offline.
Shipment
ShipmentLink
TenderResponse
Location
Item
ItemMaster
HazmatGeneric
HazmatItem
ShipmentStatus
Invoice
Release
ShipmentGroup
SShipUnit
Sku
SkuTransaction
Contact
TransOrderStatus
Note: The DirLoadServlet does not raise lifetime events (like shipment - created for
ActualShipment) so automation agents cannot be triggered. Therefore, care must be taken
to ensure that any objects created via DirLoadServlet will be complete and in the expected
state.
Note: Transportation and Global Trade Management Cloud ignores your AckSpec element.
Instead, the DirLoadServlet HTTPPOSTs the TransmissionAck back to the IP address you
sent your Transmission from.
To do this:
It is possible to use other transaction codes but with the limitation that you need to make sure
that no user accesses that data through the application server while you update/delete your
data. If a user accesses the data, you need to restart your application server after uploading
your data to refresh its caches. To use other transaction codes with the DirLoadServlet you
need to enable them in glog.properties.
2. If you load many transactions and want to increase loading speed, you can increase the
number of threads assigned to load the data in glog.properties.
3. Post XML transmissions to http://hostname/GC3/glog.integration.servlet.DirLoadServlet
4. DirLoadServlet saves your data to the database.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 18-1
DirLoadServlet sets default statuses for business objects you insert.
18-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
19. Workflow Web Service
There are several web services which provide access to trigger agent workflow for selected business
objects. The capabilities include:-
Execution of individual agent action against one or more objects of a supported type.
Execution of multiple agent actions against one or more objects of a supported type.
Currently the supported object types are SHIPMENT (Buy Shipment), SELL SIDE SHIPMENT, ORDER
RELEASE, DRIVER and ORDER MOVEMENT.
ShipmentService
SellSideShipmentService
OrderReleaseService
OrderMovementService
DriverService
AgentService
The type specific services handle individual agent actions for that type and have one operation:
processAction. The AgentService handles execution of multiple actions essentially identical to an
Transportation and Global Trade Management Cloud Agent but with some constraints (covered later)
and also has one operation: processAgent.
All services are implemented with the synchronous REQUEST/RESPONSE messaging model. However,
with respect to Transportation and Global Trade Management Cloud agent action processing, the
response indicates that the action has been scheduled successfully. This is due to the fact that the
Transportation and Global Trade Management Cloud application could have a significant amount of
workflow triggered by such an action. Therefore waiting for completion may require an excessive
transaction timeout value.
The input and output messages for each service are specified in the service XSDs. Namely:
AgentService.xsd
ShipmentService.xsd
SellSideShipmentService.xsd
OrderReleaseService.xsd
OrderMovementService.xsd
Agent specific message content is specified in the following XSDs:
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 19-1
AgentService constraints
Although in theory a complete agent could be defined using the schemas, some actions will not be
supported in the initial version. These actions are known as the BLOCK actions: IF, ELSE, FOR EACH,
etc.
Version Control
The service and message definition schemas are under version control starting from version 1.0, i.e.
major version number is 1, and minor version number is 0. The current target namespace for each
schema will contain the major version number, for example the target namespace for version 1.0 of
Agent.xsd is:
http://xmlns.oracle.com/apps/otm/agent/v1
As of version 6.2, the current version of the Agent Action web services has increased to “v2”.
However, to support backward compatibility, all “v1” messages will still be valid.
Figure 19-1
All service messages extend the ServiceMessage complexType (defined in the Service.xsd schema).
The Agent Action messages then include Agent Header information (MessageHeader) followed by an
Agent Action, in this example ShipmentAction. All valid Shipment Actions are defined in the
ShipmentAction.xsd schema. The following example shows the Set Indicator Action:
19-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Figure 19-2
The SetIndicator element is allowed to be substituted for the ShipmentAction element because it is
defined as an XSD substitutionGroup and extends the same AgentActionType complexType.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 19-3
20. REST API Reference
Note: The documentation for the REST API is now available online at
https://docs.oracle.com/cloud/latest/otmcs_gs/index.html
The API documented here covers the internal API used by the Oracle Mobile Application.
Consequently, to secure the username and password within each REST API call, the transport should
be performed using a secure protocol e.g. HTTPS.
Access Control Lists exist for View and Update of each entity supported in the Transportation and
Global Trade Management Cloud ReST API.
Refer to the Security Guide for instructions on how to add these ACLs to the user or user role.
REST Resource
GC3/api/auth
This REST service is used to authenticate the Mobile user in Transportation and Global Trade
Management Cloud calls and it is attached in the Security setup in an Oracle Mobile Application.
Parameters
Name Description
Encoded Authorization After the user logs in while using the Oracle
Transportation Mobile application, the auth API is invoked
by attaching the cookies with the credentials to the Rest
call header. A special setup is needed in the security
section of the maf-application.xml
Response
REST Resource
GC3/api/login
Uses the REST header to send the user credentials. Returns the authenticated user.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 20-1
Parameters
Table 20-2
Name Description
None
REST Resource
GC3/api/shipment
This is the first call to Transportation and Global Trade Management Cloud to bring all the shipments
for the user down to the local Database on the user’s device. In addition to shipments it brings all the
shipment’s children tables such as Shipment_Stops, Remarks, events, etc.
Parameters
Table 20-3
Name Description
None.
Request Body
The request body contains the JSON string representing the user logon in credentials to retrieve
shipments for the user sent in the request header.
Response Body
The response body includes Transportation and Global Trade Management Cloud default value for the
Maximum Session Timeout and shipments with shipment’s children tables. Finally, Quick Codes are
also retrieved during this call.
{"userid":"GUEST.ADMIN",
"maxSessionTimeout":2,
"shipments":[{"shipmentGid":"GUEST.01008",
"transactionNumber":4872089,
"tenderType":"Ordinary",
"isTendered":true,
"tenderedAction":"A",
"servprovGid":null,
"isException":true,
"progressStatus":"I",
"indicator":"R",
"respondByDate":1471877801000,
"respondByDateTz":"UTC",
"respondByDateOffset":0,
"equipmentGid":"28FT DRY VAN",
20-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
"totalWeightUP":23900.0,
"totalWeightUomUP":"LB",
"totalWeightAE":23900.0,
"totalWeightUomAE":"LB",
"totalVolumeUP":0.0,
"totalVolumeUomUP":"CUFT",
"totalVolumeAE":0.0,
"totalVolumeUomAE":"CUFT",
"freightCostUP":600.0,
"freightCostUomUP":"USD",
"freightCostAE":600.0,
"freightCostUomAE":"USD",
"contactName":"ORACLE GUEST",
"contactPhone":"850-687-6860",
"contactEmail":"[email protected]",
"isHazardous":true,
"totalDistanceUP":1167.99,
"totalDistanceUomUP":"MI",
"totalDistanceAE":1167.99,
"totalDistanceUomAE":"MI",
"totalTime":185832548,
"delayedTime":185676453,
"firstStopNumber":1,
"lastStopNumber":2,
"isMultiStop":false,
"isPreShipmentEvent":false},
{"shipmentGid":"GUEST.01025",
"transactionNumber":4894340,
"tenderType":"Ordinary",
"isTendered":true,
"tenderedAction":"A"
,"servprovGid":null,
"isException":true,
"progressStatus":"C",
"indicator":"R",
"respondByDate":1472746276000,
"respondByDateTz":"UTC",
"respondByDateOffset":0,
"equipmentGid":"28FT DRY VAN",
"totalWeightUP":3050.0,
"totalWeightUomUP":"LB",
"totalWeightAE":3050.0,
"totalWeightUomAE":"LB",
"totalVolumeUP":0.0,
"totalVolumeUomUP":"CUFT",
"totalVolumeAE":0.0,
"totalVolumeUomAE":"CUMTR",
"freightCostUP":600.0,
"freightCostUomUP":"USD",
"freightCostAE":600.0,
"freightCostUomAE":"USD",
"contactName":null,
"contactPhone":null,
"contactEmail":null,
"isHazardous":false,
"totalDistanceUP":1170.5,
"totalDistanceUomUP":"MI",
"totalDistanceAE":1170.5,
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 20-3
"totalDistanceUomAE":"MI",
"totalTime":0,
"delayedTime":1946,
"firstStopNumber":1,
"lastStopNumber":2,
"isMultiStop":false,
"isPreShipmentEvent":false}],
"quickCodes":[{"quickCodeGid":"GUEST.1PU",
"quickCodeDesc":"PICKUP"},
{"quickCodeGid":"GUEST.ARRIVED",
"quickCodeDesc":"ARRIVED AT LOCATION"},
{"quickCodeGid":"GUEST.CA",
"quickCodeDesc":"Carrier Arrived"},
{"quickCodeGid":"GUEST.CDPU",
"quickCodeDesc":"Carrier Departed Pickup Location"},]}
REST Resource
GC3/api/shipment/tender
Request Body
The request body contains the JSON string representing the shipmentGid to accept or decline and the
user accepting or declining it.
{"tenderType":"Ordinary","shipmentGid":"GUEST.01060","transactionNumber":486604
8,"type":"A","servprovGid":"GUEST.3939"}
Parameters
Table 20-4
Name Description
tenderType Transportation and Global Trade Management Cloud Tender type’s such as
ordinary
transactionNumber
Response Body
Response includes OK or 500 if an error occurred while trying to process the acceptance or decline in
Transportation and Global Trade Management Cloud.
20-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
REST Resource
GC3/api/shipment/add_event
Request Body
The request body contains the JSON string representing the Event data Entered in the Oracle
Transportation Mobile Add Event UI, including the shipment related data e.g. shipmentGid as well as
any image associated with the event such as signature or pictures. Images such as signatures and
pictures should be passed as Base64 encoded strings. The header request adds the user credentials to
the REST service call.
{"stopNumber":1,"eventDateTz":"America/New_York","shipmentGid":"GUEST.01059","e
ventDateOffset":0,"latitude":39.77264,"quickCode":"GUEST.PUC","eventDateMillis"
:1450626780000,"longitude":-
105.04914,"images":[{"fileEncoded":[47,57,106,47,52,65,65…] }]}
Parameters
Table 20-5
Name Description
quickCode OTM
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 20-5
Name Description
Response Body
Response includes the JSON String that contains the current shipment in addition to all the shipment’s
children table including the events. Or 500 if an error occurred while trying to process the event in
Transportation and Global Trade Management Cloud. Or 401 if the user is not authenticated.
20-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
{"userid":null,"maxSessionTimeout":0,"shipments":[{"shipmentGid":"GUEST.01008",
"transactionNumber":4872089,"tenderType":"Ordinary","isTendered":true,"tendered
Action":"A","servprovGid":"GUEST","isException":true,"progressStatus":"C","indi
cator":"R","respondByDate":1471877801000,"respondByDateTz":"UTC","respondByDate
Offset":0,"equipmentGid":"28FT DRY
VAN","totalWeightUP":23900.0,"totalWeightUomUP":"LB","totalWeightAE":23900.0,"t
otalWeightUomAE":"LB","totalVolumeUP":0.0,"totalVolumeUomUP":"CUFT","totalVolum
eAE":0.0,"totalVolumeUomAE":"CUFT","freightCostUP":600.0,"freightCostUomUP":"US
D","freightCostAE":600.0,"freightCostUomAE":"USD","contactName":"GUEST
ORACLE","contactPhone":"850-687-
6860","contactEmail":"[email protected]","isHazardous":false,"totalDistanceUP":1
170.5,"totalDistanceUomUP":"MI","totalDistanceAE":1170.5,"totalDistanceUomAE":"
MI","totalTime":234385332,"delayedTime":234229659,"firstStopNumber":1,"lastStop
Number":2,"isMultiStop":false,"isPreShipmentEvent":false}],"shipmentStops":[{"s
hipmentGid":"GUEST.01008","stopNumber":1,"locationGid":"GUEST.DENVER
LOCATION","locationName":"DENVER","locationCity":"DENVER","locationProvinceCode
":"CO","locationPostalCode":"80212","addressLine1":"3939 OSCEOLA
ST.","addressLine2":null,"addressLine3":null,"addressLine4":null,"addressLine5"
:null,"latitude":39.77264,"longitude":-105.04914,"contactName":"JOHN
DENVER","contactPhone":"303-867-
5309","contactEmail":"[email protected]","isPickup":true,"isDelivery":false,"isO
ther":false,"appointmentStartTime":0,"appointmentStartTimeTz":null,"appointment
StartTimeOffset":0,"appointmentEndTime":0,"appointmentEndTimeTz":null,"appointm
entEndTimeOffset":0,"appointmentActivityType":null,"appointmentConfirmationNumb
er":null,"appointmentRemarkText":null,"plannedArrivalTime":1213646992000,"plann
edArrivalTimeTz":"America/Denver","plannedArrivalTimeOffset":0,"plannedDepartur
eTime":1213646992000,"plannedDepartureTimeTz":"America/Denver","plannedDepartur
eTimeOffset":-
21600000,"estimatedArrivalTime":1213646992000,"estimatedArrivalTimeTz":"America
/Denver","estimatedArrivalTimeOffset":-
21600000,"estimatedDepartureTime":1213646992000,"estimatedDepartureTimeTz":"Ame
rica/Denver","estimatedDepartureTimeOffset":-
21600000,"actualArrivalTime":0,"actualArrivalTimeTz":null,"actualArrivalTimeOff
set":0,"actualDepartureTime":0,"actualDepartureTimeTz":null,"actualDepartureTim
eOffset":0,"stopDisplayTime":1213646992000,"stopDisplayTimeTz":"America/Denver"
,"stopDisplayTimeOffset":-
21600000,"shipUnitCount":10,"weightUP":23900.0,"weightUomUP":"LB","weightAE":23
900.0,"weightUomAE":"LB","volumeUP":0.0,"volumeUomUP":"CUFT","volumeAE":0.0,"vo
lumeUomAE":"CUFT","progressStatus":"N","delayedTime":0,"indicator":"G","distanc
eFromPreviousUP":0.0,"distanceFromPreviousUomUP":"MI","distanceFromPreviousAE":
0.0,"distanceFromPreviousUomAE":"MI","timeFromPrevious":0,"isLastStop":false},{
"shipmentGid":"GUEST.01008","stopNumber":2,"locationGid":"GUEST.EUGENE
LOCATION","locationName":"EUGENE","locationCity":"EUGENE","locationProvinceCode
":"OR","locationPostalCode":"97402","addressLine1":"811 SPRUCE
ST.","addressLine2":null,"addressLine3":null,"addressLine4":null,"addressLine5"
:null,"latitude":44.05827,"longitude":-
123.18787,"contactName":null,"contactPhone":null,"contactEmail":null,"isPickup"
:false,"isDelivery":true,"isOther":false,"appointmentStartTime":0,"appointmentS
tartTimeTz":null,"appointmentStartTimeOffset":0,"appointmentEndTime":0,"appoint
mentEndTimeTz":null,"appointmentEndTimeOffset":0,"appointmentActivityType":null
,"appointmentConfirmationNumber":null,"appointmentRemarkText":null,"plannedArri
valTime":1213803087000,"plannedArrivalTimeTz":"America/Los_Angeles","plannedArr
ivalTimeOffset":0,"plannedDepartureTime":1213803087000,"plannedDepartureTimeTz"
:"America/Los_Angeles","plannedDepartureTimeOffset":-
25200000,"estimatedArrivalTime":1213803087000,"estimatedArrivalTimeTz":"America
/Los_Angeles","estimatedArrivalTimeOffset":-
25200000,"estimatedDepartureTime":1399479540000,"estimatedDepartureTimeTz":"
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 20-7
21. Appendix A – Integration Messages
This appendix lists integration messages, describes why the message occurs, and describes what you
need to do as a result of receiving the message.
Table 21-1
Heading Data
Message: public final static String Invalid Date Format Text = "THE
DATE ELEMENT {0} WITH VALUE {1} IS NOT OF FORMAT
YYYYMMDDHHMMSS";
Occurs When: An invalid date format error occurs when the date is not
provided in the format YYYYMMDDHHMMSS.
Table 21-2
Heading Data
Occurs When: A data conversion error occurs when character data cannot
be converted to an internal data type.
Table 21-3
Heading Data
Occurs When: A duplicate Key error occurs when the primary key for a
given element already exists in the G-Log database.
Table 21-4
Heading Data
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 21-1
Heading Data
Table 21-5
Heading Data
Occurs When: A FK Not Found Error occurs when a referenced primary key
does not exist in the GLog database.
Corrective Action: Correct the XML data value such that it refers to a primary
key that does exist in the G-Log database.
Table 21-6
Heading Data
Corrective Action: Provide the missing required element in your XML data.
Table 21-7
Heading Data
21-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Heading Data
Table 21-8
Heading Data
Table 21-9
Heading Data
Table 21-10
Heading Data
Occurs When: A conflicting element error occurs when two elements have
been provided in a G-Log XML Element, when only one out
of the two may be used.
Corrective Action: Eliminate one of the two conflicting elements in your XML
data.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 21-3
Table 21-11
Heading Data
Table 21-12
Heading Data
Corrective Action: Provide the element with the required value as indicated in
the error message.
Table 21-13
Heading Data
Table 21-14
Heading Data
21-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Heading Data
Occurs When: An invalid action code error occurs when an action code is
specified with a value other than A or D.
Table 21-15
Heading Data
Table 21-16
Heading Data
Table 21-17
Heading Data
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 21-5
Heading Data
Table 21-18
Heading Data
Occurs When: The length of an element value exceeds the length of the
corresponding database column
Corrective Action: Correct the XML data to provide a value which does not
exceed the maximum length.
Table 21-19
Heading Data
Occurs When: The length of an element value exceeds the length of the
corresponding database column
Corrective Action: Correct the XML data to provide a value which does not
exceed the maximum length.
Table 21-20
Heading Data
21-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Table 21-21
Heading Data
Table 21-22
Heading Data
Table 21-23
Heading Data
Corrective Action: Correct the database data to provide the value as indicated
in the error message.
Table 21-24
Heading Data
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 21-7
Heading Data
Corrective Action: If you want to be able to modify the order, you may have to
change the state of the order or modify the agent that
handles order modifications.
Table 21-25
Heading Data
Occurs When:
Table 21-26
Heading Data
Occurs When: The saved query in the SShipUnit element did not return any
values.
Corrective Action: Verify that the integration saved queries are correct and that
the desired ship units exist.
21-8 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 21-1
22. Appendix B – Backward Compatible Dates – pre 6.4.2
In version 5.5, all date/time XML elements were updated to include the time zone and time zone
offset. The following section describes the logic retained for backward compatibility of subsequent
versions. This conversion only applies to XML messages using the pre-6.4.2 namespace URL
“http://xmlns.oracle.com/apps/otm”.
The previous XML Date elements as strings are replaced with new elements to include GLogDate, Time
Zone ID and Time Zone Offset. These new date elements are renamed with a suffix “Dt” for
uniformity. Also, the original XML Date elements with GLogDate are modified to include Time Zone ID
and Time Zone Offset.
For example:
Table 22-1
<StartDate>20071012173600</St <StartDt>
artDate>
<GLogDate>20071012173600</GLogDate>
<TZId>America/New_York</TZId>
<TZOffset>-4</TZOffset>
</StartDt>
<GLogDate>20071012173600</GLogDate>
<GLogDate>20071012173600</G
LogDate> <TZId>America/New_York</TZId>
< /ActivityDate>
For inbound integration the old date elements are compatible and remain same, Transportation and
Global Trade Management Cloud will convert and persist them. Backward compatibility logic is used to
support inbound transmissions by enabling the property
glog.integration.enableTimeZoneCompatibility=true.
Properties are used to specify the compatibility of old date elements to new date elements as
glog.integration.timeZone.{old element name}={new element name}. For example:
glog.integration.timeZone.StartDate = StartDt
XSL Transformation Files can be used for mapping elements if needed, such as
(GLogXML_v55_to_v60_DateTime.xsl, GLogXML_v60_to_v55_DateTime.xsl)
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 22-1
23. Appendix C – Uploading XSL Stylesheets
Using XSL Stylesheet files for inbound or outbound XML transformation is deprecated as of version
6.4.2 and will be removed in a future version. Any current use should be converted to use Stylesheet
Content or Stylesheet Profile that refers to Stylesheet Content, as appropriate. For inbound
transformation via HTTP see Transform Inbound XML with XSL in chapter 9. For outbound
transformation via all transport protocols see Transform Outbound XML with XSL in chapter 7.
The following process captures the steps required to upload an XSL file.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 23-1
24. Appendix D – Interface Additional Detail
Actual Shipments
If the service provider sends a new order release as part of the actual shipment, Transportation and
Global Trade Management Cloud creates an order release and order base for the new release.
An actual shipment is required to print shipment documentation such as a bill of lading or Domestic
Packing List.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-1
Cannot Add SEquipment From Another Shipment: You cannot add a
SEquipment that already exists on another shipment to a shipment with the
propagation. The SEquipment addition should be done in a separate
ActualShipment without the propagation.
Cannot Change SEquipment for Existing Ship Unit: If there are more than one
SEquipment on a Shipment, you cannot change the SEquipment for an existing
Ship Unit with the propagation.
Cannot Add New SEquipment for Existing Ship Unit: You cannot add a new
SEquipment and assign to an existing Ship Unit with the propagation. The
SEquipment changes should be done in a separate ActualShipment without the
propagation.
Limited Support to Add New SEquipment and New Ship Unit: You can add a
new SEquipment and assign to a new Ship Unit. The logic will determine the
new SEquipment and persist it before initiating the propagation logic.
Can Add a New Ship Unit: The propagation supports adding a new Ship Unit
to the Shipment. The Ship Unit must be assigned to an existing SEquipment
on the shipment.
Cannot Use DR Transaction Code In Ship Unit: You cannot use the DR
transaction code in the Ship Unit to dereference the Ship Unit from the
Shipment. Since the Ship Units are no longer shared among shipments, you
should consider using the D transaction code to delete the ship unit. If there is
a need to use the DR transaction code, it should be done in a separate
ActualShipment without the propagation.
Note: When migrating to Transportation and Global Trade Management Cloud 6.0 from a
previous release, review the implementation of the Actual Shipment integration into
Transportation and Global Trade Management Cloud to determine the impacts of this
change.
Table 24-1
Element Description
24-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Element Description
In the Shipment element, if you set the transaction code to RC and set the
ReplaceChildren/ManagedChild element to "ShipmentStop", Transportation and Global Trade
Management Cloud deletes all shipment stops for that shipment and replaces the deleted shipment
stops with the shipment stops from your transmission.
Note: This does not apply to shipment stops marked IsPermanent (same as Permanent
check box in Transportation and Global Trade Management Cloud web interface).
In the Shipment element, if you set the transaction code to RC and set the
ReplaceChildren/ManagedChild element to ShipmentStopDetail, Transportation and Global Trade
Management Cloud replaces the existing ship units with the ship units in your transmission.
Note: Within ShipmentStopDetail, the removal of the reference to the ShipUnitGID(s) will
not remove the S_Ship_Unit from the system. Only the reference to the object is removed.
In the Shipment element, if you set the transaction code to U and the Shipment ID is missing from
either the transaction or the database, you will receive an error.
When a new shipment referencing a ship unit is added with missing ship unit data, then the ship unit
data is pulled from the database. When a new shipment referencing a ship unit is added with new
data, then the ship unit data passed in through integration is used.
Adding Stops
There is no way to insert a new stop to a shipment via shipment actuals unless the new stop has a
stop number that does not already exist on the shipment (like adding stop #3 to a 2-stop shipment,
or adding stop #2 to a shipment with stops 1 and 99).
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-3
on the Shipment Header indicates “Propagate Updates,” the Transportation and Global Trade
Management Cloud integration layer will call business logic to add the new ship unit to subsequent
stop on the initial shipment and all affected succeeding shipments.
To add a ship unit to a shipment, the following must be done in the ActualShipment XML interface:
1. Specify a flag to indicate that new ship unit should be applied to downstream shipments.
AcutalShipment.Shipment.ShipmentHeader.IntCommand.IntCommandName =
“PropagateShipUnitChanges”
2. Indicate that Drop-off stop should be determined for the shipment, but not to propagate the
ship unit changes.
ActualShipment.ShipmentHeader.IntCommand.IntCommandName =
“DetermineShipUnitDropoff”
6. ShipmentFrom and ShipmentTo Locations can in the Shipment.ShipUnit element are ignored.
They will be based on the release.
7. Assign an SEquipment for the new ShipUnit via one of the following options:
8. Using the ShipUnit.SequipmentGID element
9. Allow integration to assign it by using
ActualShipment.ShipmentHeader.Shipment.ShipUnit.SEquipmentGIDQuery.SequipGIDMatchO
ption = “Any”
10. Query the SEquipmentGID using the
ActualShipment.ShipmentHeader.Shipment.ShipUnit.SEquipmentGIDQuery.IntSavedQuery
11. Have the business logic assign it by not specifying the element in the ship unit.
Updating Ship Units
The updating of ship units means packaged items can be deleted or added to those ship units.
Quantities from existing items can also be changed.
SShipUnit.TransactionCode = “RC”
SShipUnit.ReplaceChildren.ManagedChild = “ShipUnitContent”
Shipment.ShipmentHeader.TransactionCode = “RC”
24-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Shipment.ShipmentHeader.ReplaceChildren.ManagedChild = “ShipUnitContent”
ActualShipment.Shipment.ShipUnit or ActualShipment.Shipment.SShipUnit
SShipUnit adds the ability to query for the ShipUnitGID if it’s not known
A ship unit can be marked for removal from the shipment via the TransactionCode as follows:
ActualShipment.Shipment.ShipUnit.TransactionCode = “DR”
where “DR” corresponds to “Delete Reference.” The ship unit will be removed from the shipment, but
not deleted from Transportation and Global Trade Management Cloud.
Alternatively, you can delete ship units from a shipment using the IntCommand via integration. You
can either delete all the ship units from the shipment, or only those that are marked as non-
permanent. When used, the ship unit record, its shipment stop detail record, and any corresponding
equipment, is deleted.
<IntCommand>
<IntCommandName>RemoveAllShipUnits</IntCommandName>
</IntCommand>
<IntCommand>
<IntCommandName>RemoveNonPermanentShipUnits</IntCommandName>
</IntCommand>
To remove orphaned ship units, use the command below. This specifies that the ship units that have
been removed from the shipment via the DR transaction code should be deleted if no other shipments
refer to them. Without this command, those ship units are left in the system and can later be added to
other shipments.
<IntCommand>
<IntCommandName>DeleteOrphanedShipUnits</IntCommandName>
</IntCommand>
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-5
Tips for Shipments As Work or SAWs
Table 24-2: Tips for Shipments As Work or SAWs
Element Description
AND
the shipment
OR
the shipment.ShipmentHeader2.
AutoGenerateRelease = "Y"
ShipmentHeader, In the Shipment/ShipmentHeader, if you can get them, it is good to provide the
use correct rate RateOfferingGID and the RateRecordGID. This helps Transportation and Global
Trade Management Cloud use the rate for the service provider that actually took
the load. If you can't get information for these elements, the ServiceProviderGID
would be the next best thing to use.
sPlannedTimeFixed If you want to send in old shipments (past dates) and want Transportation and
Global Trade Management Cloud to rate with correct rates (pertaining to correct
effective/expiration dates), then you may want to use the
Shipment/ShipmentStop/ArrivalTime/EventTime/IsPlannedTimeFixed flag set to
"Y". You only need to insert the ArrivalTime element at the first stop (only) and
that the date here should be the same as the StartDate of the shipment.
SEquipment Transportation and Global Trade Management Cloud requires at least one
SEquipment object. When you insert a new SAW, Transportation and Global
Trade Management Cloud creates a default SEquipment if you do not provide
one. If there are several ship units, the same (created equipment) is specified
for each ship unit. The only thing really required in SEquipment is the
SEquipmentGID. To avoid problems later, include the SEquipment element and
set the SEquipmentGID to the same value as the ShipmentGID. This makes it
easier to identify and manage the SEquipment, if there is ever a need in the
future to specify multi-equipment, or update the shipment with additional ship
unit information.
Note: When you update a SAW with a new ship unit, you must include the
SEquipmentGID. Transportation and Global Trade Management Cloud cannot
create one for you.
24-6 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Element Description
TransOrder The Shipment/TransOrder element is outbound only so you cannot include it.
Any TransOrderHeader info should be specified in the Release/TransOrderHeader
element.
Order-Centric Modifications
Most modifications via this interface are based around shipment ship units (SShipUnit). In these
cases, all weight, volume, quantities, and rating are based on shipment ship units. If you would like to
modify shipments based on order information, you can do so by using the following sub-elements in
the ShipmentHeader element:
ShipmentModViaOrderLine
ShipmentModViaOrderSU
When these two elements are used in the ShipmentHeader, the following logic will be used instead of
the standard Shipment Interface logic:
1. Transportation and Global Trade Management Cloud will only interact with the order line level
or order ship unit information instead of the shipment ship unit level information.
2. The logic addressing shipment modifications will change the number of order ship units
involved and allocate the delta in the ship unit counts across multiple ship units.
3. The modified order ship unit count will be properly propagated and the related business
objects (shipments and order movements) will be updated across legs.
4. The modified gross weight and volume will be updated per ship unit. This would then be
reflected in the shipment total gross weight and volume, which impacts the shipment cost.
This should only be applied when the AffectsCurrentLegOnly element is set to 'N'.
Both of these elements will only be included once on the shipment. There is no need to repeat this
data for both the pickup stop and the delivery stop. Since the Shipment Interface is defined the same
on the inbound and the outbound, you can only specify one way for the modification to happen, either
at the order line level or the ship unit level.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-7
ShipmentModViaOrderLine
The ShipmentModViaOrderLine element will contain all of the counts, weights, and volumes for that
order (order release, order release line, or order base) that is being shipped on this shipment across
all the shipment ship units.
ShipmentModViaOrderSU
The ShipmentModViaOrderSU element, Transportation and Global Trade Management Cloud will loop
through all the ship units that are on the shipment that have the same order ship unit GID
(ob_ship_unit_gid or or_ship_unit_gid).
The inbound XML will accept this data into Transportation and Global Trade Management Cloud when
you are doing a modify transaction. When the integration brings in this modification it will call
business logic that will apply allocation rules and perform the appropriate updates.
Data Requirements
To send shipments and perform planning actions, you must make decisions about the way you want
Transportation and Global Trade Management Cloud to perform certain actions.
A shipment as work must have at least one pickup and one delivery location. A shipment as work is
not associated with an itinerary.
Note: To indicate that the shipment you are sending to Transportation and Global Trade
Management Cloud is a shipment as work, enter Y in the ShipmentAsWork element.
When a Shipment as Work is received, Transportation and Global Trade Management Cloud can be set
to automatically perform certain actions defined in public workflow agents in the Agent Manager.
To ensure best possible performance, you should let Transportation and Global Trade Management
Cloud process your actual shipments in parallel. To do this, either send only one actual shipment per
transmission or follow these steps:
If you insert a new shipment and omit the end_date, Transportation and Global Trade Management
Cloud sets the end_date to the same date as the start_date.
Accrual Interface
When the ALLOCATION GENERATES ACCRUALS parameter is set to TRUE and the shipment status is
ACCRUAL_ALLOWED, the allocation logic will generate an accrual record. The accrual record contains
the difference between the current allocated freight cost and the previously transmitted freight cost.
The delta between the two is used because a single order may be on multiple shipments, which are
24-8 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
approved for payment in different time periods. These accrual records are sent as part of this
interface.
Invoice Interface
Invoices can be automatically matched to shipments based on the Service Provider ID and Shipment
Reference Number fields. If more than one shipment is found for an invoice, the invoice must be
reviewed manually and assigned to a shipment, it must be rejected. After an invoice is approved, a
voucher gets created. A voucher represents what the planner agrees to pay for the shipment.
Use the Financials managers to create and modify invoices and customer bills.
In some cases, you may need to send the Invoice interface outbound. This is true when sending a bill
to yourself for internal invoice or billing purposes. When the Invoice interface is used outbound, then it
will include all shipment details, as well as any associated order information.
Consolidated Invoices
1. You must send each invoice, parent and child, as a separate transaction.
2. Parent invoices must enter Transportation and Global Trade Management Cloud before any
child invoices.
3. Child invoices may be sent inbound referencing a parent in one of two ways:
Populate the invoice number on the child to be that of the parent and integration will look up
the parent id based on the invoice number.
Populate the parent invoice ID on the child.
Job Interface
A job offers a workspace that brings together the objects and activities required of them, including:
The ability to group all objects related to a job and perform existing functions/actions against
those objects, including buy shipments, sell shipments, non-freight related charges, and
customer bills.
The ability to manage jobs from various perspectives depending on responsibility. For
example, export, import, both, or consolidations.
The ability to manage settlement functions at the job level, including profitability, expenses,
revenues, and billing.
Note: The interface is supported on the outbound only.
1. Order releases
For each order release related to the job, JOB_ORDER_RELEASE_JOIN will be added to the
XML. Although orders are not required to create a job, at least one order should be related
to the job to send out the interface.
2. Buy side costs
The Buy Side Costs wrapper element contains two sub elements, Buy Shipments and Buy
Allocation.
Buy shipments: Select all related orders. For each order, select all related buy shipments
where the shipment job GID equals null or it equals the current job GID. There may be
zero or more buy shipments.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-9
Buy allocation: Each allocation will be selected for each order, where the allocation
Shipment Job GID is equal to the current job or it is equal to null. There may be zero or
more allocations.
3. Sell side costs
The sell side costs works exactly the same as the buy side, except the selection criteria is
based on sell side perspective.
4. Bills
Each customer bill related to the job will be included in the XML. Bills can be found in the
JOB_BILL table. Zero or more bills are required.
Because this interface can potentially be large, redundant data has been reduced across
multiple data elements included in the interface. This includes:
The ability to only include the Order Release GID in the shipment, allocation, and bill
elements.
The ability to only include the Shipment GID in the allocation and bill elements.
Release Interface
An order release contains the following information:
24-10 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Insert New Shipment Status into Transportation and Global Trade Management
Cloud
Required Data
Before you can send ShipmentStatus transmissions to Transportation and Global Trade Management
Cloud, you must set up the following:
User accounts for service providers in Transportation and Global Trade Management Cloud
Shipment Status Codes
Shipment Status Reason Codes
Shipment Event Groups
Shipment Reason Groups
Corporations for service providers
What Data Goes into the Transmission?
1. To ensure that Transportation and Global Trade Management Cloud processes multiple
ShipmentStatus transactions in the order you intend, set IsProcessInSequence to Y in the
TransmissionHeader.
2. Identify which object (shipment, shipment group etc.) the status applies to. Set StatusLevel,
ShipmentStatusType, ServiceProviderAlias, and ShipmentRefnum or IntSavedQuery.
3. ShipmentStatusType must be set to one of Shipment or ShipmentGroup. Note that it is case
sensitive. The integration logic assumes that it is a ShipmentGroup if the value is not matched
to Shipment.
4. Optionally, identify which equipment the shipment status refers to with SStatusSEquipment
element.
5. Include the time when the event occurred. To be sure that Transportation and Global Trade
Management Cloud can interpret the time correctly, include the TimeZoneGID element.
Alternatives to doing this is:
If you cannot include the TimeZoneGID, Transportation and Global Trade Management
Cloud can set the time zone to the time zone of the Location where the event occurred.
If you cannot do this either, set the TimeZoneGID to Local. In this case, Transportation
and Global Trade Management Cloud saves and displays the event date as entered,
ignoring user preferences.
6. Enter your status information. In some cases, shipments can only have events added to them
if they are of a certain status.
7. Identify at what SSStop (number or location name) the event (shipment status) occurred. The
LocationID = Location Reference Number and the LocationRefnumQualifierGID = Location
Reference Qualifier in the Location Manager.
8. If you have a Shipment Agent Type with the Recalculate Estimated Stop Times action, then
you must include a RATE_GEO element for Transportation and Global Trade Management
Cloud to be able to recalculate your estimated stop times and/or re-drive your shipment. If
you omit the RATE_GEO element, Transportation and Global Trade Management Cloud only
resets the stop times you provide.
9. See the ShipmentStatus Diagram in the XML schema to learn which elements are required. To
view the diagrams use an XML application like XML Spy.
Send Shipment Status from Transportation and Global Trade Management Cloud
You can forward a received ShipmentStatus transmission to an external system with an agent. See the
agent action called SEND SHIPMENT STATUS XML.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-11
Match Events to an Object
You can use one of these methods:
If you need the object (shipment or shipment group) to match many reference numbers, use
IntSavedQuery.
If you need the object to only match one out of a set of reference numbers, use
ShipmentRefnums, or ShipmentGroupRefnums.
IntSavedQuery
If you specify the IntSavedQuery element, only that query is applied. You can define a query to search
for shipments or shipment groups that shipment status applies to. To do this, set:
IntSavedQueryGID to specify which query you want to use. If the query you specify here does
not return any results, Transportation and Global Trade Management Cloud generates an error
message. No other queries are applied. You must have created this query in Power Data
beforehand.
IntSavedQueryArg to arguments that can be referred to in the queries. For example,
BM=YELLOW-0000007. If you omit this element, your IntSavedQueryGID must point to a
query that uses XPath instead.
IsMultiMatch to N to forbid multiple records to be returned from the query. If your query
happens to return multiple records, Transportation and Global Trade Management Cloud
generates an error message.
Refnums
If you omit the IntSavedQuery element, Transportation and Global Trade Management Cloud tries to
match your shipment status with:
UPDATE_OK: Only one value is allowed for a give qualifier, the value of which can be modified.
UPDATE_NOT_OK: Only one value is allowed for a give qualifier, the value of which cannot be
modified.
MANY: a given shipment can have multiple values for the same qualifier.
Match Events to a Shipment Stop
For Transportation and Global Trade Management Cloud to match an event to a stop on a shipment,
you must include the SSStopSequenceNum element.
Another way of matching event to shipment stop is to include the LocationID where the event
occurred and the LocationRefnumQualifierGID in SSStop/SSLocation. This only works if you have
enabled this feature in your glog.properties file. As long as Transportation and Global Trade
Management Cloud can match your LocationID to a stop number, your shipment status saves as if you
had supplied a stop number.
24-12 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Note: If Transportation and Global Trade Management Cloud cannot match the event to a
location, Transportation and Global Trade Management Cloud still saves the information but
not for a specific stop and only as informational. You can also have Transportation and
Global Trade Management Cloud send you a TransmissionReport if the LocationID is
missing altogether (controlled by glog.properties). Transportation and Global Trade
Management Cloud also set the time zone for the event to local.
Correspondingly, if the event is not related to a shipment stop to begin with, Transportation and
Global Trade Management Cloud saves the event as informational with a local time zone.
A single stop related shipment event can be applied to multiple shipments, regardless of whether their
stop numbers or location IDs are the same. This will allow for situations where you want to apply a
single shipment stop event to stop 2, but stop 2 of shipment 1 and stop 1 of shipment 2 are both
Philadelphia. Stop related events are applied to all the shipments specified in the ShipmentStatus
interface. To work successfully, the ShipmentStatus XML must include an IntSavedQuery element that
will return two shipments. Logically, this is similar to having specified the ShipmentStatus message
multiple times in the Transmission XML.
To send an order to Transportation and Global Trade Management Cloud, certain information related
to the order must already exist in Transportation and Global Trade Management Cloud. For example,
you must have a valid itinerary, rate, locations, and so on.
Setup
3. Populate the ProcessingCodeGID to tell Transportation and Global Trade Management Cloud
how to plan the shipments from the order release.
4. Populate the TransOrderLineDetail element, including the PackagedItemCount,
WeightVolume/Weight, and WeightVolume/Volume under
TransOrderLineDetail/TransOrderLine/ItemQuantity/ to specify the order lines. You can set all
but one of them to 0, if your setup uses the same kind of quantity to release.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-13
5. Set TransOrderLineDetail/TransOrderLine/ItemQuantity/IsShippable = N.
6. Populate the amount to release in the
TransOrderHeader/ReleaseInstruction/QuantityToRelease element.
1. Transportation and Global Trade Management Cloud receives your transmission and starts to
process it internally.
2. Transportation and Global Trade Management Cloud starts the public Order Base - Insert
agent.
If the current date is outside the effective date/expiration date window of your TransOrder,
the agent cannot create order releases. You must release the TransOrder via the process
manager. There you can release all orders which have release instructions, but whose release
has not been processed.
If you use the UI or IU transaction codes and the record exists already, Transportation and
Global Trade Management Cloud starts the public Order Base - Modify agent instead.
3. Transportation and Global Trade Management Cloud raises events that in turn can trigger
Notifications to be sent.
Error Messages
To send an order to Transportation and Global Trade Management Cloud, certain information related
to the order must already exist in Transportation and Global Trade Management Cloud. For example,
you must have a valid itinerary, rate, locations, and so on.
Setup
24-14 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
What Data Goes into the Transmission?
3. Populate the ProcessingCodeGID to tell Transportation and Global Trade Management Cloud
how to plan the shipments from the order release.
4. Populate the TransOrder/ShipUnitDetail element.
5. To be able to track your ship unites as they propagate through Transportation and Global
Trade Management Cloud as order release ship units and shipment ship units, you might want
to include a unique ID in the ShipUnitDetail/ShipUnit/ShipUnitContent/ItemQuantity/ItemTag1
element. Also, there is a TransOrderShipUnitGID element in Release/ShipUnit that can help
you track ship units.
6. Set ShipUnitDetail/ShipUnit/IsShippable to Y to have Transportation and Global Trade
Management Cloud create an order release for all your order base ship units.
7. If you omit the IsShippable element or set it to N, you need to populate the amount to release
in the TransOrderHeader/ReleaseInstruction/QuantityToRelease element. With this option, you
can specify the number of ship units to be released in the
ReleaseInstruction/ShipUnitReleaseCount element.
8. You can override all dates and locations from the ShipUnitDetail with other settings in the
ReleaseInstruction.
9. If you want to change the level of validation for this transmission, you can include a
processing instruction to set the desired level. By default, TransOrder validation is turned on.
10. See the Order Base Manager online help for a description of the fields.
11. See the TransOrder Diagram in the XML schema to learn which elements are required. To view
the diagrams use an XML application like XML Spy.
Transmission Results
1. Transportation and Global Trade Management Cloud receives your transmission and starts to
process it internally.
2. Transportation and Global Trade Management Cloud starts the public Order Base - Insert
agent.
3. It finds the unprocessed release instructions with a release date <= the current date.
4. If the current date is outside the effective date/expiration date window of your TransOrder,
the agent cannot create order releases. You must release the TransOrder via the process
manager. There you can release all orders which have release instructions, but whose release
has not been processed.
5. If you use the UI or IU transaction codes and the record exists already, Transportation and
Global Trade Management Cloud starts the public Order Base - Modify agent instead.
6. Transportation and Global Trade Management Cloud raises events that in turn can trigger
notifications to be sent.
Modify Order Base With Lines
In this scenario, you can just update the information in an order base or you can update and release
the full amount specified for the TransOrderLine.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-15
Required Data
Setup
With IsShippable=Y, you should omit the ReleaseInstruction element, Transportation and
Global Trade Management Cloud releases the full weight, volume, or count (depending on
glog.properties). If you set IsShippable=Y and include a ReleaseInstruction, Transportation
and Global Trade Management Cloud releases your order twice. One full order release based
on the parameter in glog.properties and another order release based on the ReleaseInstruction
element.
4. If you want to change the level of validation for this transmission, you can include a
processing instruction to set the desired level. By default, TransOrder validation is turned on.
5. See the Order Base Manager online help for a description of the fields.
6. See the TransOrder Diagram in the XML schema to learn which elements are required. To view
the diagrams use an XML application like XML Spy.
7. To update date fields with NULL values, submit a value of '~' in the date element(s) of the
inbound TransOrder XML.
Transmission Results
1. Transportation and Global Trade Management Cloud receives your transmission and starts to
process it internally.
2. Transportation and Global Trade Management Cloud starts the public Order Base - Modify
agent.
If you use the UI or IU transaction codes and the record does not exist already, Transportation
and Global Trade Management Cloud starts the public Order Base - Insert agent instead.
3. Transportation and Global Trade Management Cloud raises events that in turn can trigger
Notifications to be sent.
Error Messages
Modify ShipUnits
There are three ways to update the ship unit information (quantities, weights, volumes, etc.) on a
shipment via integration:
Use ActualShipment. This interface provides complete control of all the fields in the Shipment.
Use SShipUnit.
Send another TransOrder with the IsUpdateShipmentOnly element.
24-16 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
The TransOrder interface together with the IsUpdateShipmentOnly element supports uploading a
slightly modified TransOrder and has it update only the Shipment/SShipUnit. IsUpdateShipmentOnly
indicates that the TransOrder should update the shipment only, and not the order base information.
Note: To update date fields with NULL values, submit a value of '~' in the date element(s)
of the inbound TransOrder XML.
Using the IsUpdateShipmentOnly element can help you reduce the need to implement a separate
SShipUnit or ActualShipment interface. The use of this flag with the TransOrder interface is restricted
as follows:
The original order base should have been created using the ShipUnitDetail (not the
TransOrderLineDetail).
The information you can update is restricted to the SShipUnit element. The TransOrderHeader
is ignored, and none of the other Shipment related information is updated.
The specific S_Ship_Unit(s) to be modified are identified by using the ShipUnitGID in the new
TransOrder and searching for the related Release/ShipUnit (via the OB_SHIP_UNIT_GID on
SHIP_UNIT table) and then the Shipment.ShipUnit(s) (via the SHIP_UNIT_GID field in the
S_SHIP_UNIT table). The search requires those reference pointers to exist.
Delete Orders
Required Data
Setup
1. Transportation and Global Trade Management Cloud receives your transmission and starts to
process it internally.
2. Depending on what kind of record you are deleting an agent might start. For example, if you
are deleting an Order Base, the public Order Base - Delete agent starts.
3. Transportation and Global Trade Management Cloud raises events that in turn can trigger
notifications to be sent.
Error Messages
You cannot delete an order that is assigned to a shipment after a service provider accepts a tender on
the shipment. If you try to do this, Transportation and Global Trade Management Cloud might send a
TransmissionReport stating the problem.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-17
Bulk Plan Orders
Required Data
You must create a saved query that points out the order releases you want to include.
Setup
If you can keep all your TransOrders within one transmission follow these steps:
1. Set IsProcessInSequence=N.
This ensures maximum performance because Transportation and Global Trade Management
Cloud can process TransOrders belonging to different order bases in parallel.
2. Include all TransOrders that should be bulk planned.
3. Create an order release for every TransOrder either with IsShippable=Y and omit the
ReleaseInstruction, or with IsShippable=N and include a ReleaseInstruction.
4. Include a Topic element as the last element in the transmission to start the bulk planning. Set
TopicArgName to 'savedQuery' and TopicArgValue to a Query_Name. The saved query must
point out the Order Releases you want to include.
5. In the GLogXMLElement holding the Topic element, include a ProcessInfo element with
WhenToProcess=END_OF_TRANSMISSION.
This tells Transportation and Global Trade Management Cloud to wait to start the bulk
planning until the end of the transmission.
Note: Transportation and Global Trade Management Cloud plans all order releases that
match the saved query, not just the ones within the transmission.
Note: The Topic element must be the last element in the transmission. If it is not,
Transportation and Global Trade Management Cloud will plan incorrectly.
If you cannot keep all your TransOrders within one Transmission follow these guidelines:
24-18 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
4. When Transportation and Global Trade Management Cloud has received all TransOrders to be
bulk planned, send a Topic element as the last element in the transmission to start the bulk
planning. Set TopicArgName to 'savedQuery' and TopicArgValue to a Query_Name. The saved
query must point out the Order Releases you want to include. If you want to supply your own
bulk plan ID, in addition, set TopicArgName to 'bulkPlanID' and TopicArgValue to your desired
bulk plan ID.
To be reasonably sure that Transportation and Global Trade Management Cloud has received
all your transmissions, allow sufficient amount of time between sending the last TransOrder
Transmission and sending the Topic element.
Note: Transportation and Global Trade Management Cloud plans all order releases that
match the saved query, not just the ones within the last transmissions.
Note: The Topic element must be the last element in the transmission or group. If it is not,
Transportation and Global Trade Management Cloud will plan incorrectly.
Transmission Results
When Transportation and Global Trade Management Cloud completes the bulk planning,
Transportation and Global Trade Management Cloud sends the results of the bulk plan in a BulkPlan
element.
Error Messages
To incrementally release TransOrderLines from an order already in Transportation and Global Trade
Management Cloud via an integration transmission, do the following:
Required Data
Setup
1. Make sure the public Order Base - Modify - Incremental Release agent is active.
2. Send a transmission of the record and enter the transaction code U in the TransactionCode
element.
3. All your TransOrderLines must be marked IsShippable=N.
4. Always keep IsShippable=N between all these TransOrders.
5. Include a TransOrderHeader/ReleaseInstruction to release a fraction of the amount specified
on the original TransOrderLine. If you omit the ReleaseInstruction element, Transportation and
Global Trade Management Cloud only saves your order base since you have IsShippable set to
N.
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-19
6. For each modified TransOrder you send, update the ReleaseInstruction/SequenceNumber and
make it unique. If you do not, Transportation and Global Trade Management Cloud keeps the
old releases but replaces the content of the release instruction.
7. See the Order Base Manager for a description of the fields.
8. See the TransOrder Diagram in the XML schema to learn which elements are required. To view
the diagrams use an XML application like XML Spy.
Transmission Results
1. Transportation and Global Trade Management Cloud receives your transmission and starts to
process your transmission internally.
2. Transportation and Global Trade Management Cloud starts the public Order Base - Modify -
Incremental Release agent.
3. Transportation and Global Trade Management Cloud raises events that in turn can trigger
notifications to be sent.
Error Messages
Setup
You must have created the external system you want to send to.
Transportation and Global Trade Management Cloud includes all data specified for the order base.
Transmission Results
Error Messages
Processing Codes
When you send an order to Transportation and Global Trade Management Cloud, you can indicate
whether you want Transportation and Global Trade Management Cloud to perform planning functions
on it. If Transportation and Global Trade Management Cloud plans orders, it creates shipments from
the orders and then executes the shipments as soon as it receives them. If you want to execute
orders into shipments at a particular time or after you receive a certain number of orders, do not run
the planning function.
Control the details of planning orders in Transportation and Global Trade Management Cloud in the
Agent Manager.
24-20 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
NOPLN: Instructs Transportation and Global Trade Management Cloud not to plan shipments
form the order. This is the default if you omit this element.
PLN: Instructs Transportation and Global Trade Management Cloud to plan shipments from
the order release. Transportation and Global Trade Management Cloud will plan multi-stop
shipments if appropriate. You must have your TransOrder set up to create an order release for
this to work.
MSPLN: Obsolete.
Voucher Interface
Transportation and Global Trade Management Cloud sends voucher transmissions to the URL you
specify in glog.properties.
You can create an agent that send the Voucher interface using the agent action Send Voucher
Interface. You can also send this interface from the Invoice Manager.
Note: You can send a voucher transmission that cancels or edits a previous voucher.
Transportation and Global Trade Management Cloud determines to whom a payment is due based on
the involved parties defined on the order release.
The Shipment element is only included when generating vouchers for parent invoices. When
generating a voucher for a child invoice, the Shipment element is not included.
You can optionally use the ShipmentGID element instead of the full Shipment element in order to
reduce the size of the Voucher XML.
DataQuerySummary Interface
Contains the GID of a business object record.
Some external systems may not be prepared for Transportation and Global Trade Management Cloud
to send large amounts of data. The DataQuerySummary interface provides a mechanism to send only
a summary of the data. The external system can request the individual records from Transportation
and Global Trade Management Cloud at appropriate times (e.g. idle times, overnight) by referencing
the GID.
Setup
You must have created the external system you want to send to.
Mark the Send Summary check box when sending from one of these managers:
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-21
Shipment Group Manager
Bill Manager
Service Provider Manager
Location Manager
Rate Offering Manager
Rate Record Manager
Item Manager
Invoice Manager
In the Process Manager, Send Integration Page.
What Data Goes into the Transmission?
Transportation and Global Trade Management Cloud includes only the GID of the record.
Transmission Results
Error Messages
For example, the Shipment_Refnum table has a composite primary key made up of the ShipmentGID,
RefnumQualifier, and RefnumValue. Assume a shipment has the following ShipmentRefnum
Qualifier/Value pairs in the system: CO/A-12345, CO/B-89387, CN/C-83920. If you send a new
refnum qualifier/value of CO/D-23849 using the GenericStatusUpdate interface, the TransactionCode
would affect the change as follows:
TransactionCode = I: The new refnum would be added, resulting in all of the following being
present in the table: CO/A-12345, CO/B-89387, CN/C-83920, CO/D-23849
TransactionCode = U: The current reference numbers with the same qualifier would be
deleted, and replaced by the new one. In this case, the result would leave the following in the
table: CN/C-83920, CO/D-23849
The TransactionCode is only applicable for the Refnum and Remark elements. It is not used for the
Status or Indicator elements, which are only intended to be updated.
Topic Interface
This inbound interface allows you to raise a topic and get Transportation and Global Trade
Management Cloud to start processing an object. Currently Transportation and Global Trade
Management Cloud supports BuildBuySideShipments and BuildSellSideShipments that allows you to
start bulk planning. Transportation and Global Trade Management Cloud also supports clearing caches
using the interface.
Note: Make sure Transportation and Global Trade Management Cloud has released all your
TransOrders before sending the Topic element to Transportation and Global Trade
Management Cloud.
Note: When including other transactions in the same transmission as the Topic transaction,
make the Topic transaction the last in the transmission.
24-22 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
The table lists what each element should contain.
Table 24-3
SKU Interface
How to Structure Your Data
If you have large amounts of highly complex, nested inventory information, you should use the XML
column in the SKU_DESCRIPTOR table to store that information, rather than using nested
SKU_DESCRIPTOR records. However, it will not be possible to search for SKUs using the XML info. You
will only be able to search on the non-XML columns in the SKU and SKU_DESCRIPTOR tables.
If you have small or medium amounts of less complex inventory information, you can use nested
SKU_DESCRIPTOR records instead. Using this method, it will be possible to find a SKU by a sub-
descriptor.
SKU Table
The following sample SKU record shows a part used to make Novelty phones. The Novelty stock code
is 2002, which is used to form the XID. This corresponds to the packaged_item novelty.8946. The
warehouse is novelty.wh1. The supplier is General Electric, who also currently owns the inventory.
SKU_GID = novelty.2002-wh1
SKU_xid = 2002-wh1
Packaged_item_GID = novelty.8946
Warehouse_location_GID = novelty.wh1
Supplier_corporation_GID = novelty.ge
Owner_corporation_GID = novelty.ge
Quantity_on_hand = 1800
Min_level = 100
Max_level = 2000
Domain_name = novelty
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-23
SKU_DESCRIPTOR table - BLOB
Transportation and Global Trade Management Cloud cannot show BLOBs in tree view of the inventory
manager.
This section illustrates the relational approach to storing SKU descriptor and sub-descriptor
information in using the SKU_DESCRIPTOR table. This method would be used when it is necessary to
use standard SQL to search SKU descriptor data.
The example below shows a top-level SKU_DESCRIPTOR record. Notice that the
parent_sku_descriptor_seq is null.
SKU_GID = novelty.2002-wh1
SKU_descriptor_seq = 1
SKU_descriptor_type = status
SKU_desriptor_value = held
SKU_descriptor_quantity = 1000
Parent_sku_descriptor_seq = null
Domain_name = novelty
The example below shows a level-2 SKU_DESCRIPTOR record. The parent_sku_descriptor_seq is set
to 1, pointing to the previous example.
SKU_GID = novelty.2002-wh1
SKU_descriptor_seq = 2
SKU_descriptor_type = reason
SKU_descriptor_value = damaged
SKU_descriptor_quantity = 600
Parent_sku_descriptor_seq = 1
Domain_name = novelty
The example below shows a level-3 SKU_DESCRIPTOR record. The parent_sku_descriptor_seq is set
to 2, pointing to the previous example.
SKU_GID = novelty.2002-wh1
SKU_descriptor_seq = 3
SKU_descriptor_type = batch
SKU_descriptor_value = 001
SKU_descriptor_quantity = 250
Parent_sku_descriptor_seq = 2
Domain_name = novelty
SKU_GID = novelty.2002
SKU_descriptor_seq = 4
SKU_descriptor_type = batch
SKU_descriptor_value = 002
SKU_descriptor_quantity = 300
Parent_sku_descriptor_seq = 2
Domain_name = novelty
SKU_GID = novelty.2002
SKU_descriptor_seq = 5
SKU_descriptor_type = batch
SKU_descriptor_value = 003
SKU_descriptor_quantity = 50
Parent_sku_descriptor_seq = 2
Domain_name = novelty
24-24 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
SKU_DESCRIPTOR Table - XML
If the SKU descriptor information need not be fully searchable using standard SQL, then the XML
column in the SKU_DESCRIPTOR table may be used to represent the information at level 2 and below.
In other words, it would be possible to use standard SQL to search for a SKU descriptor, but not for a
SKU sub-descriptor.
An example situation where the XML method may not be appropriate would be where the top level
SKU is a combination of shoes of different styles. The top level SKU_DESCRIPTOR records would have
one row for each style. The level 2 SKU_DESCRIPTOR would have counts of sizes within each style. A
query to determine the total inventory of size 9 shoes across all styles would not be possible using the
XML method. You can think of similar examples for the auto industry, i.e. find the inventory of all cars
with anti-lock brakes, etc.
When using the XML method for representing detailed SKU_DESCRIPTOR information, each client
implementation will be responsible for developing their own industry-specific XML schema for that
information. By default, the UI will display this information in a nicely formatted manner. The UI
provides a mechanism whereby you can install customer-defined XSL for formatting information.
However, this XSL file is purely optional.
Below is a snippet of how the information from the previous section might appear in the database if
the XML approach is used instead of the nested SKU_DESCRIPTOR method. In this case, the
parent_sku_descriptor_seq column is always null, and the XML column is used instead. In this case,
the top level status information is available relationally. However, the lower level descriptors within
that status are represented inside the XML.
SKU_GID=novelty.2002-wh1
SKU_descriptor_seq = 1
SKU_descriptor_type = status
SKU_descriptor_value = held
SKU_descriptor_quantity = 1000
Domain_name = novelty
Xml =
<SkuDescriptor>
<type>damaged</type>
<value>001</value>
<quantity>600</quantity>
<SkuDescriptor>
<type>batch</type>
<value>001</value>
<quantity>250</quantity>
</SkuDescriptor>
<SkuDescriptor>
<type>batch</type>
<value>002</value>
<quantity>300</quantity>
</SkuDescriptor>
… etc …
</SkuDescriptor>
CharterVoyage Interface
The CharterVoyage interface is used to specify the charter voyage for creating a consol shipment. It is
supported on both the inbound and the outbound.
A charter voyage represents an ocean transport movement by a carrier from a loading port to a
discharge port. Within a charter voyage, there are several Stowage Modes, which represent, at a
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-25
conceptual level, separate “compartments” within the charter voyage. There is also capacity
associated with each stowage mode as defined on a consol that you create for each stowage mode
defined on the charter voyage. This capacity controls the orders that can be booked on the charter
voyage.
For a charter voyage, and each of its defined stowage modes, you can create a consol that has a
single empty shipment attached. For each voyage, one consol is automatically created for each
stowage mode defined on the voyage. A shipment is also created for each consol at the same time.
Most of the elements included in the CharterVoyage interface follow the fields available in the Charter
Voyage manager and the Charter Voyage Stowage Details.
Consol Interface
The Consol interface is used to specify the shipment consolidator. It is supported on both the inbound
and the outbound. A consol can be created for a charter voyage or air schedule (flight).
A charter voyage consol represents the weight, volume, FEU/TEU capacities of a specific stowage
mode on a specific charter voyage. It captures the allocated, maximum, committed, booked, and
produced capacity values when the status of a consol is changed as a result of booking orders on a
shipment that is related to the consol.
For a freight forwarder, the consol is considered a group of house bills or a set of sell shipments. All
actions related to manipulating a consol should be performed from the perspective of a sell shipment.
For example, adding freight to a consol would be performed by selecting sell shipments to add to
consol.
For example, a freight forwarder starts with a group of house bills or a set of sell shipments. They
have also reserved flights. For each flight reservation, there is a consol for defining the reserved
capacity of the flight. The sell shipments are then booked to consols to create buy shipments.
Status
Indicator
Reference Number
Remark
The following table shows which properties are supported by each valid business object (the
GenericStatusObjectType is the value that must be passed in the transaction XML):
Table 24-4
INVOICE_LINEITEM x x
INVOICE x x x x
LOCATION x x x
24-26 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Business Object Status Indicator Refnum Remark
(GenericStatusObjectType)
OB_LINE x x x
OB_ORDER_BASE x x x x
OB_SHIP_UNIT x x x
ORDER_RELEASE x x x x
SHIPMENT x x x x
SHIPMENT_STOP x x
SHIP_GROUP x x x x
S_SHIP_UNIT x x
S_SHIP_UNIT_LINE x x
VOUCHER x x x
SCHEDULE x
CHARTER_VOYAGE x
CLAIM_LINE_ITEM x
CLAIM x x x
CONSOL x
ITEM x x x
JOB x x x
ORDER_RELEASE_LINE x x
DOCUMENT x
CONTAINER_GROUP x
DRIVER x x x x
DRIVER_TYPE x
POWER_UNIT x x x x
POWER_UNIT_TYPE x
OR_STOP x
EQUIPMENT x x x
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-27
Business Object Status Indicator Refnum Remark
(GenericStatusObjectType)
EQUIPMENT_TYPE x
WORK_INVOICE x
SHIP_STATUS_SPCL_SERVICE x
ORDER_MOVEMENT x x x
CONTACT x x x x
GTM_TRANSACTION x x x
GTM_TRANSACTION_LINE x x x
GTM_REGISTRATION x x x
GTM_STRUCTURE x x
24-28 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Appendix E – General Properties
See the “Advanced Configuration: Customer-defined Properties” chapter in the Administration Guide
for instructions on how to manage reserved properties.
Table 0-1
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-1
Property Reserved Description
24-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Property Reserved Description
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 24-3
25. Appendix F – Testing Tips
It is often the case that through the use of Out XML Profiles or XSLT stylesheets on outbound
messages, the final XML document leaving the Transportation and Global Trade Management Cloud
application is modified from the default representation. Consequently it would be useful to have a way
of testing the process to generate it before finally using in a Production scenario. The following section
outlines the ways in which this can be achieved.
Although the final External System may use a different transport protocol – SOAP, FTP, OAQ – the
main objective for this tool is to validate the XML message content which can be exactly the same for
all methods and so the HTTP POST emulation should be useful in most cases.
Note: If the requirement is to see SOAP Envelope content then this would not be possible
with the servlet and another method would be needed. In fact, it is the WebLogic
application server which generates these headers and so it would actually need to be
WebLogic tools or external test tools – TCP monitor, Wireshark etc. – that would be
required.
The servlet supports the forwarding or saving of the XML to the following:-
Email address
FTP server
File system file
Message Center
HTTP (essentially only allows logging)
The processing for each option is controlled by URL parameters, defined below, that are specified on
the URL used for the HTTP section in the External System.
Table 25-1
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 25-1
Parameter Name Description
email
ftp
http
messagecenter
Depending on the option chosen other URL parameters may
be required (see sections below).
logOn (optional)
logContent (optional)
The following sections describe the additional URL parameters used when a forwardingProtocol is
specified.
email
Table 25-2: Email
from Valid email address the mail should appear to be sent from
25-2 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.
Parameter Name Description
smtphost The SMTP server that will be used to transport the message.
If not specified the default server will be used.
ftp
Table 25-3: ftp
remoteDir Directory on the remote FTP server where file will be saved.
http
This option essentially acts as the “do nothing” option other than provide logging capability via the
logOn and logContent parameters.
messagecenter
When sent as a Message Center message, the event will be sent as a GC3 ALERT event and the XML
content is sent as the event message content.
Table 25-4
Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved. 25-3
Examples
Email:
http://<
hostname_of_OTM_server>/GC3/glog.integration.servlet.ExternalSystemServlet?
forwardingProtocol=email&smtphost=internal-
smtp.hostname.com&[email protected]& [email protected]&
subject=TestMessage&logOn=0&logContent=0
FTP:
http://<
hostname_of_OTM_server>/GC3/glog.integration.servlet.ExternalSystemServlet?
forwardingProtocol=ftp&hostname=< external_system_hostname>&username=<
username_for_ftp_server>&password=<password>&logOn=0&logContent=0&connectMode=a
ctive&debugMode=true
25-4 Copyright © 2005, 2019, Oracle and/or its affiliates. All rights reserved.