0% found this document useful (0 votes)
20 views40 pages

OTMEP

Uploaded by

saddalagowtham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views40 pages

OTMEP

Uploaded by

saddalagowtham
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

Oracle® Transportation and Global

Trade Management Cloud


External Programming Interface Guide
19C
Part No. F15078-04

August 2019
Copyright Notice
Oracle® Transportation and Global Trade Management Cloud External Programming Interface Guide,
19C
Part No. F15078-04
Copyright © 2009, 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 © 2009, 2019, Oracle and/or its affiliates. All rights reserved. i
Contents
COPYRIGHT NOTICE .................................................................................... I

CONTENTS.................................................................................................. II

TABLES..................................................................................................... III

SEND US YOUR COMMENTS ....................................................................... IV

PREFACE ..................................................................................................... V

CHANGE HISTORY ...................................................................................................... V


1. OVERVIEW ........................................................................................ 1-1

2. EXTERNAL DISTANCE ENGINE (EDE) ................................................. 2-2

EXTERNAL DISTANCE CALCULATION ........................................................................... 2-2


SETUP .............................................................................................................................. 2-2
WEB SERVICE EXPLANATION .................................................................................... 2-3
LOOKUPDISTANCE OPERATION ................................................................................................... 2-3
EXTERNAL LOCATION VALIDATION............................................................................. 2-3
WEB SERVICE EXPLANATION .................................................................................... 2-4
VALIDATEADDRESS OPERATION .................................................................................................. 2-4

3. EXTERNAL SERVICE ENGINE (ESE) .................................................... 2-1

EXTERNAL SERVICE TIME CALCULATION ...................................................................... 2-1


SETUP .............................................................................................................................. 2-1
WEB SERVICE EXPLANATION .................................................................................... 2-2
LOOKUPSERVICETIME OPERATION ............................................................................................... 2-2

4. EXTERNAL RATING ENGINE ............................................................... 4-1

EXTERNAL RATE CALCULATION ................................................................................. 4-1


SETUP .............................................................................................................................. 4-1
WEB SERVICE EXPLANATION .................................................................................... 4-4
COSTSHIPMENT OPERATION ...................................................................................................... 4-4

5. EXTERNAL WEB SERVICE ENGINE ..................................................... 5-1

GENERATE STUBS................................................................................................... 5-1


SERVICE END POINT IMPLEMENTATION ...................................................................... 5-2
COMPILE AND PACKAGE SERVICE ARTIFACTS ............................................................... 5-2
DEPLOY ............................................................................................................... 5-2
6. CONFIGURE EXTERNAL WEB SERVICE ENGINE IN ORACLE
TRANSPORTATION AND GLOBAL TRADE MANAGEMENT CLOUD ............... 6-1

ii Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
DOCUMENT ........................................................................................................... 6-1
WEB SERVICE ....................................................................................................... 6-1
EXTERNAL SYSTEM ................................................................................................. 6-1
EXTERNAL ENGINE ................................................................................................. 6-1
7. APPENDIX: WSDLS ............................................................................ 7-1

DISTANCE ENGINE ................................................................................................. 7-1


RATING ENGINE .................................................................................................... 7-6
SERVICE TIME ENGINE .......................................................................................... 7-11

Tables
Table 2-1: External Distance Engine ........................................................................................ 2-2

Table 2-2: External Distance Engine Parameters ....................................................................... 2-3

Table 3-1: External Service Engine .......................................................................................... 2-1

Table 3-2: External Service Engine Parameters ......................................................................... 2-2

Table 4-1: External Rating Engine Fieldsets .............................................................................. 4-1

Table 4-2: RBI References ..................................................................................................... 4-1

Table 4-3: Rate Manager Configuration .................................................................................... 4-2

Table 4-4: Rate Costs or Accessorial Cost Method ..................................................................... 4-3

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. iii
Send Us Your Comments
Oracle® Transportation and Global Trade Management Cloud External Programming Interface Guide,
19C

Part No. F15078-04

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.

 Did you find any errors?


 Is the information clearly presented?
 Do you need more information? If so, where?
 Are the examples correct? Do you need more examples?
 What features did you like most about this manual?
If you find any errors or have any other suggestions for improvement, please indicate the title and
part number of the documentation and the chapter, section, and page number (if available). You can
send comments to us in the following ways:

 Electronic mail: [email protected]


If you have problems with the software, contact Support at https://support.oracle.com or find the
Support phone number for your region at https://www.oracle.com/support/contact.html.

iv Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
Preface
The intent of this document is to provide documentation for the Web Service Interfaces that are
provided for customers or third parties to extend existing Oracle Transportation and Global Trade
Management Cloud functionality. Oracle Transportation and Global Trade Management Cloud connects
as a client to these web services implemented by the customers or third parties conforming to the
WSDL provided.

Change History
Date Document Revision Summary of Changes

03/2019 -01 Initial release.

04/2019 -02 Updated for accessibility.

06/2019 -03 Branded for 19C.

08/2019 -04 Added the following topics/sections:

 Section 3: External Service Engine (ESE).


 Service Time Engine section under Appendix: WSDL’s.

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. v
1. Overview
The Oracle Transportation and Global Trade Management Cloud products expose interfaces to support
integration with external application in the areas of distance, and cost calculation. This document will
describe the following:

 External Distance Engine (EDE) Interface


 External Service Engine (ESE) Interface
 External Rating Engine (ERE) Interface
 Generate, Deploy and Use Web Service in Oracle Transportation and Global Trade
Management Cloud
 WSDL Definitions

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 1-1
2. External Distance Engine (EDE)
External Distance Calculation
You have the ability to interface Oracle Transportation and Global Trade Management Cloud to any
third-party distance engine by connecting Oracle Transportation and Global Trade Management Cloud
as a web service client to the custom web service that adheres to the WSDL interface provided by
Oracle Transportation and Global Trade Management Cloud. This will allow custom tailored distance
engine to meet your specific needs.

Setup
The first step is to ensure if there is a valid External Distance Engine (EDE) defined in Oracle
Transportation and Global Trade Management Cloud. The External Distance Engine has to be defined
with a Connection Type as “Webservice (W)”. External Distance Engine (EDE) is the main link between
Oracle Transportation and Global Trade Management Cloud and a custom EDE.

Table 2-1: External Distance Engine

Field Value Comments

External Distance USER_DEFINED Identifies the EDE.


ID

Connection Type Webservice(W) Defines the type of


transport mechanism
used.

Implementing Java glog.business.rate.ratedistance.external.webservic Specifies the fully


Class e.client.ExternalDistanceWebServiceClient (this is qualified name of the
automatically populated and field is read only). java implementation
class, which will link to
the external distance
engine web service as a
client.

External System User Defined External system is


ID required for specifying
the web service endpoint
and the web service
operations to invoke.

In the External Distance Engine, you can specify the information that will be passed from Oracle
Transportation and Global Trade Management Cloud into the invocation of the external distance web
service via parameters and are mapped via the params variable in the interface. Using the lower half
of the Power Data page, you can define a set of parameters like source address type, destination
address type and other parameters.

2-2 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
Table 2-2: External Distance Engine Parameters

Parameter Value Country Code Comments

User Defined User Defined User Defined These parameters will


be available to the Web
* for all countries Services and can be
used for program
control and/or data.

Web Service Explanation


A third-party external distance engine can be defined using EDE with the connection type of
“WebService (W)” and using a java class
“glog.business.rate.ratedistance.external.webservice.client.ExternalDistanceWebServiceClient”. Oracle
Transportation and Global Trade Management Cloud as web service client connects to the custom
third-party distance engine web service that adheres to the WSDL interface. This feature benefits
customers who are using the Oracle Cloud or planning to move into the Oracle Cloud environment. It
addresses a restriction imposed on using Java plug-in feature due to security reasons on Oracle Cloud.

lookupDistance Operation
Inputs:

lookupDistance operation takes lookupDistanceRequest as input that contain below element as child
elements

 sourceAddress contains all the location information for the source address.
 destinationAddress contains all the location information for the destination address.
 extEngineAuxInputList contain SCAC and Route Codes off the locations, contains the
equipment dimensions, weight and volume of the equipment being used for transportation and
contains hazardous material information being shipped if hazardous routing is enabled. The
SCAC and Route Codes are usually only necessary for rail lookups. This element is available as
read-only.
 edeParams is a mapping to all the input parameters that were entered in Oracle
Transportation and Global Trade Management Cloud for the specific EDE.
Outputs:

extEngineDistance is the result of the lookupDistance operation. extEngineDistance element contains


two child elements named uom and amount. An unsuccessful call to lookupDistance will return a fault
to indicate the exception scenario with the reason populated in the ExtEngineException element.

Note: All the values for XML elements involved in web service should be valid as per Oracle
Transportation and Global Trade Management Cloud WSDL.

External Location Validation


You have the ability to interface Oracle Transportation and Global Trade Management Cloud to any
third-party engine that supports location validation by connecting as a web service client to the
custom web service that adheres to the WSDL interface provided by Oracle Transportation and Global
Trade Management Cloud or writing your own custom Java class that implements Oracle
Transportation and Global Trade Management Cloud interface. This will allow custom tailored location
validation engine to meet your specific needs.

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 2-3
Web Service Explanation
A third-party external distance engine can be defined using EDE with the connection type of
“WebService (W)” and using a java class
““glog.business.rate.ratedistance.external.webservice.client.ExternalDistanceWebServiceClient”
Transportation Management as web service client connects to the custom third-party distance engine
web service that adheres to the WSDL interface. This feature benefits customers who are using the
Oracle Cloud or planning to move into the Oracle Cloud environment. It addresses a restriction
imposed on Java plug-in feature due to security reasons on Oracle Cloud.

validateAddress Operation
Inputs:

validateAddress operation takes validateAddressRequest as input that contain below element as child
elements

 sourceAddress contains all the location information for the source address.
 destinationAddress contains all the location information for the destination address.
 extEngineAuxInputList contain SCAC and Route Codes off the locations, contains the
equipment dimensions, weight and volume of the equipment being used for transportation and
contains hazardous material information being shipped if hazardous routing is enabled. The
SCAC and Route Codes are usually only necessary for rail lookups. This element is available as
read-only. Mostly the information from this element is not used for address validation.
 edeParams is a mapping to all the input parameters that were entered in Oracle
Transportation and Global Trade Management Cloud for the specific EDE.
Outputs:

locationAddressMatches is the result of the validateAddress operation. locationAddressMatches


element contains two child elements.

 validFlag: indicate where location is valid or not.


 possibleMatches: for engines that support multiple suggested locations, this element contain
possible location’s data for given input.
An unsuccessful call to locationAddressMatches will return fault to indicate exception scenario with
reason being populated in ExtEngineException element.

Note: All the values for XML elements involved in web service should be valid as per the Distance
Engine WSDL defined in WSDLs appendix section.

2-4 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
3. External Service Engine (ESE)
External Service Time Calculation
You have the ability to interface Oracle Transportation and Global Trade Management Cloud to any
third-party service time engine. You can connect Oracle Transportation and Global Trade Management
Cloud as a web service client to the custom web service which adheres to the WSDL interface provided
by Oracle Transportation and Global Trade Management Cloud. This allows custom tailored service
time engine to meet your specific needs.

Setup
Ensure if there is a valid External Service Engine (ESE) defined in Oracle Transportation and Global
Trade Management Cloud. Define the ESE with the “Webservice(W)” Connection Type. The ESE is the
main link between Oracle Transportation and Global Trade Management Cloud and a custom ESE.

Table 3-1: External Service Engine

Field Value Comments

External Service USER_DEFINED Identifies the ESE.


ID

Connection Type Webservice(W) Defines the type of


transport mechanism
used.

Implementing Java glog.business.rateservicescheduling.external.webs Specifies the fully


Class ervice.client.ExternalServiceTimeWebServiceClient qualified name of the
(this is automatically populated and is a read- java implementation
only field). class, which links to the
external service engine
web service as a client.

External System User Defined External system is


ID required for specifying
the web service endpoint
and to invoke the web
service operations.

In the ESE, you can specify information which will pass from Oracle Transportation and Global Trade
Management Cloud into the invocation of the external service time web service via parameters. These
parameters are mapped via the params variable in the interface. Use the Power Data page, to define a
set of parameters such as source address type, destination address type, and other parameters.

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 2-1
Table 3-2: External Service Engine Parameters

Parameter Value Country Code Comments

User Defined User Defined User Defined These parameters are


available to web
* for all countries services and can be
used for program
control and/or data.

Web Service Explanation


Use ESE to define a third party external service engine with the WebService(W) Connection Type and
a java class
“glog.business.rateservicescheduling.external.webservice.client.ExternalServiceTimeWebServiceClient”
. Oracle Transportation and Global Trade Management Cloud as a web service client connects to the
custom third-party service engine web service that adheres to the WSDL interface. This feature
benefits customers who are using the Oracle Cloud or planning to move into the Oracle Cloud
environment. It addresses a restriction imposed on using Java plug-in feature due to security reasons
on Oracle Cloud.

lookupServiceTime Operation
Inputs

lookupServiceTime operation takes lookupServiceTimeRequest as input that contains child elements


below:

 sourceAddress contains all the location information for the source address.
 destinationAddress contains all the location information for the destination address.
 extEngineAuxInputList contains SCAC, Route Codes of the locations, equipment dimensions,
weight and volume of the equipment used for transportation and hazardous material
information shipped if hazardous routing is enabled. The SCAC and Route Codes are
necessary for rail lookups. This element is available as read-only.
 params is a mapping to all the input parameters that were entered in Oracle Transportation
and Global Trade Management Cloud for the specific ESE.
Outputs

extEngineServiceTime is the result of the lookupServiceTime operation. The extEngineServiceTime


element contains two child elements named uom and amount. An unsuccessful call to
lookupServiceTime returns the error message which indicates the exception scenario with the reason
populated in the ExtEngineException element.

Note: All the values for the XML elements involved in web service must be valid as per Oracle
Transportation and Global Trade Management Cloud WSDL.

2-2 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
4. External Rating Engine
External Rate Calculation
You have the ability to interface Oracle Transportation and Global Trade Management Cloud to any
third-party rating engine by connecting Oracle Transportation and Global Trade Management Cloud as
a web service client to the custom web service that adheres to the WSDL interface provided by Oracle
Transportation and Global Trade Management Cloud. This will allow custom tailored rating engine to
meet your specific needs.

Setup
The first step is to ensure there is a valid External Rating Engine (ERE) Fieldset defined in Oracle
Transportation and Global Trade Management Cloud. The External Rating Engine Fieldset has to be
defined with a Connection Type as “Webservice (W)”. External Rating Engine (ERE) is the main link
between Oracle Transportation and Global Trade Management Cloud and a custom ERE.

Table 4-1: External Rating Engine Fieldsets

Field Value Comments

Fieldset ID USER_DEFINED Identifies the fieldset.

Valid External GENERIC – a predefined external Identifies the external rating engine
Rating Engine ID rating engine ID. that can utilize this particular fieldset.

Connection Type Webservice(W) Defines the type of transport


mechanism used.

Implementing Java glog.business.rate.rateengine.extern Specifies the fully qualified name of


Class al.webservice.client.ExternalRatingW the java class, which will link to the
ebServiceClient (this value is auto external rating engine web service as
populated and is read only). a client.

External System ID User Defined External system is required for


specifying the web service endpoint
and the web service operations to
invoke.

The External Rating Engine Fieldset also specifies the information that will be passed from Oracle
Transportation and Global Trade Management Cloud into the invocation of the external engine by
defining a list of one or more Rate Basis Items (RBIs). Using the lower half of the Fieldset Power Data
page, you can select a set of RBIs and include them in the fieldset by clicking on one of the right-
pointing arrows. These RBI references (listed below under the GID column) are stored in the
external_rating_engine_fieldset_d table.

Table 4-2: RBI References

RBI GID

Shipment Number of Line SHIPMENT.NUMLINES


Items

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 4-1
RBI GID

Shipment Source Postal Code SHIPMENT.SOURCE.POSTAL_CODE

Shipment Destination Postal SHIPMENT.DEST.POSTAL_CODE


Code

Rate Offering Service Provider SHIPMENT.RATE.SERVPROV

Rate Offering Rate Service SHIPMENT.RATE.RATE_SERVICE


Calculator

Shipment Line Item Weight SHIPMENT.LINES.WEIGHT

There are two ways to invoke an external rating engine using Oracle Transportation and Global Trade
Management Cloud:

Rate Offering Method

This method attaches the invocation of an external rating engine to the rate offering. Current,
purpose-build external rating engines are invoked using this method. An example would be the
current implementation of the Oracle Transportation and Global Trade Management Cloud link to
SMC’s LTL RatewareXL web service rating engine. This method requires a rate offering to specify a
rate offering type that includes the EXTERNALRATINGENGINE rate attribute in its costing sequence.
The following fields must be specified on the Attributes page of the Rate Manager UI:

Table 4-3: Rate Manager Configuration

Field Value Comments

External Rating Engine ID GENERIC Select the GENERIC external rating


engine.

External Engine Fieldset ID USER_DEFINED Choose the fieldset defined for the
external engine that invokes the
accessorial calculations.

Rate Cost Method

It is possible to specify the invocation of an external rating engine as a rate cost during the processing
of standard costs, or during the processing of accessorial costs. The rate cost UI contains a Cost Type
dropdown list. Choosing the value of External allows the specification of the same external rating
engine fields as found on the Rate Manager UI:

4-2 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
Rate Costs or Accessorial Cost Method

Table 4-4: Rate Costs or Accessorial Cost Method

Field Value Comments

Cost Type External This is a field that explicitly defines the type of calculation
described by the cost record.

External Rating GENERIC Select the GENERIC external rating engine.


Engine ID

External Engine USER_DEFINED Choose the fieldset defined for the external engine that
Fieldset ID invokes the calculations.

Optional – Service Time

There is also an option to return the service time from the external rating engine. For this type of rate
service, the rate engine will return the specific pickup time and delivery time for a shipment or the
number of days the service would take. The rate service engine uses the pickup and delivery time or
the service days to test whether it will fit into the order’s pickup and delivery windows. If not, this rate
cannot be used.

There are two ways to return service time information from a rating engine:

 The external rating engine can fill in the estimated pickup and delivery times. The RATE
SERVICE associated with the rate must have a service type of TIMEDEFINITESERVICE.
 The external rating engine can fill the service Days field. The RATE SERVICE associated with
the rate must have a service type of EXTERNALTRANSITDAYS.
If the rate service doesn’t have the above service types, then the service time data returned from the
rating engine will be ignored.

For this type of rate service, location calendar, location capacity, and carrier capacity are not
considered. Pickup or delivery activity time at a stop is always 0.

The following assumptions also hold true:

 Only applies to 2-stop shipments


 It does not make sense to have HOLD AS LATE AS POSSIBLE set to TRUE
regardless of the setting of the parameter HOLD AS LATE AS POSSIBLE, this type of rate
service is always calculated in HOLD AS LATE AS POSSIBLE = false.
 Order’s pickup and delivery windows should be a whole day. If the orders have a narrow
pickup and delivery window, the specific pickup time and delivery time will fall out of the
order’s windows, so it will fail to use this rate. For example, the order’s delivery window is
10:00-11:00am, but rate engine come back with a delivery time of 4:00PM, then rate service
will fail this rate.
 It only applies to single leg shipments: i.e., shipment with rate service type cannot have
upstream and downstream shipment.

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 4-3
Web Service Explanation
A third-party external rating engine can be defined using ERE Fieldset with the connection type of
“WebService (W)” which uses a Java class
“glog.business.rate.rateengine.external.webservice.client.ExternalRatingWebServiceClient”. Oracle
Transportation and Global Trade Management Cloud as web service client connects to the custom
third-party rating engine web service that adheres to the Rating Engine WSDL provided in WSDLs
appendix section. This feature benefits customers who are using the Oracle Cloud or planning to move
into the Oracle Cloud environment. It addresses a restriction imposed on Java plug-in feature due to
security reasons on Oracle Cloud.

costShipment Operation
Inputs:

There is one input element called inputDataList which contains a list of inputData as its child element.
inputData uses a name attribute to store RBI Name and a list of values for the RBI as it child
elements. It will be similar to this:

<n:inputData name="SHIPMENT.LINES.COMMODITY">
<n:values>
<n:value>COMMODITY1</n:value>
<n:value>COMMODITY2</n:value>
</n:values>
</n:inputData>
<n:inputData name="SHIPMENT.LINES.WEIGHT">
<n:values>
<n:value>12.0 LB</n:value>
<n:value>14.0 LB</n:value>
</n:values>
</n:inputData>

If the shipment has two lines with two different commodity codes and you want to get the commodity
code and weight, you will have to select two RBI. Line Item Commodity Code
(SHIPMENT.LINES.COMMODITY), Line Item Weight (SHIPMENT.LINES.WEIGHT). The input element
will have both the commodity and weight elements separately but in the same order i.e. COMMODITY1
weight is 12.0 LB and COMMODITY2 weight is 14.0 LB.

Outputs:

rexRateResult has the following child elements

 err: If this is set, this shows an error in the log but will not throw an exception.
 serviceDays: If the ERE returns the number of service days, this can be set here. Otherwise a
value of NULL equals no data.
 utcPickupDateTime: Estimated pickup time, UTC.
 pickupTimezone: Max of 50 characters, java-style timezone identifer (ex. EDT,
America/Chicago, etc.)
 utcDeliveryDateTime: Estimated delivery time, UTC.
 deliveryTimezone: Max of 50 characters.
 chargeableWeight: Chargeable weight. Copied to the shipment’s chargeable weight field. Only
used when invocation of ERE is specified on the rate offering.
 String chargeableWeightUom: Unit of measure for the chargeable weight (ex. LB, KG, etc.)

4-4 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
 dimWeight: Dimensional weight. Copied to the shipment’s dimensional weight field. Only used
when invocation of ERE is specified on the rate offering.
 dimWeightUom: Unit of measure for the dimensional weight.
 costDetails: List of costDetail Element where each costDetail is about each individual cost
calculated by the external rating engine.
costDetail:

 cost: Numeric value of the final calculated cost.


 currencyCode: Currency code of the cost (USD, GBP, etc.)
 costType: One of B - Base, A - Accessorial, O - Other, D - Discount, S - Stop-off, C - Circuity,
L – Delta.
 accessorialCode: If this cost is an accessorial, the accessorial code is specified here. This code
must exist in Oracle Transportation and Global Trade Management Cloud.
 costCode: Secondary accessorial code for classification purposes only. This code must exist in
Oracle Transportation and Global Trade Management Cloud.
 specialServiceCode: If this cost is a special service, the special service code is specified here.
This code must exist in Oracle Transportation and Global Trade Management Cloud.
 isWeightedCostOnly: Some costs are calculated as weighting factors that do not affect the
actual final cost of a shipment. Set this field to true if this is a weighted cost.
 calculationDetails: A list of simple text strings that the ERE implementor can use to give
detailed information on how a cost was calculated.
Once the input is defined and an actual lookup is complete, the cost shipment method needs to return
the rexRateResult.

Note: All the values for XML elements involved in web service should be valid as per Oracle
Transportation and Global Trade Management Cloud WSDL.

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 4-5
5. External Web Service Engine
A third-party external engine that implement the Distance Engine WSDL or Rating Engine WSDL or
Service Time Engine WSDL provided by Oracle Transportation and Global Trade Management Cloud
can be defined as web services.

To generate a custom web services from WSDL following are the steps:

1. Generate Stubs
2. Service End Point Implementation
3. Compile and Package Service Artifacts
4. Deploy Web Service
For more information on how to create or generate web service please refer to The Java Web Services
Tutorial.

The defined procedure in the document is not the only way to create a web service. You can create
JAXB Objects based on the WSDL definitions and use @WebServiceProvider annotation to create a
web service. It is recommended to use JAX-WS to create the web service.

All the instruction provides are using DistanceEngineService.wsdl as an example.

Generate Stubs
Using wsimport create the stubs using the WSDL:

<java.home>/bin/wsimport -keep -d <directory where the source files are


generated> -p 'test.service.distanceengine' DistanceEngineService.wsdl

The following files will be generated in /test/service/distanceengine/ directory.

 AddressLines.java
 DistanceEngineService.java
 EdeParams.java
 ExtEngineAddress.java
 ExtEngineAuxInputList.java
 ExtEngineDistance.java
 ExtEngineException.java
 ExternalDistanceEngine.java
 KeyValue.java
 LocationAddressMatches.java
 LookupDistanceRequest.java
 ObjectFactory.java
 package-info.java
 PossibleMatches.java
 ValidateAddressRequest.java
For more details on using wsimport, refer to wsimport - Java™ API for XML Web Services (JAX-WS)
2.0.

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 5-1
Service End Point Implementation
In the above classes ExternalDistanceEngine.java is an interface which represents the service
endpoint. Create an implementation class implementing this interface. Add @WebService annotation
to this implementation class. A sample implementation class is provided below

@WebService(targetNamespace =
"http://xmlns.oracle.com/apps/otm/distanceengine", endpointInterface =
"test.service.distanceengine.ExternalDistanceEngine",
serviceName = "DistanceEngineService", portName =
"ExternalDistanceEnginePort" )
public class DistanceEngineServerImpl implements ExternalDistanceEngine {

@Override
public ExtEngineDistance lookupDistance(LookupDistanceRequest
lookupDistanceRequest) throws ExtEngineException {

@Override
public LocationAddressMatches validateAddress(ValidateAddressRequest
validateAddressRequest) throws ExtEngineException {

}
}

Compile and Package Service Artifacts


Compile the entire generated stubs and the Service Endpoint Implementation classes and create a JAR
file with the above generated classes and place the JAR file in a WAR file.

Deploy
Once the WAR file is available, deploy this to a weblogic server (non Oracle Transportation and Global
Trade Management Cloud). You can access the web service using the below URL of the form

http://<host>:<port>/<webcontext>/<servicename>

To access the WSDL

http://<host>:<port>/<webcontext>/<servicename>?wsdl

E.g. http://localhost:8001/edeservice/DistanceEngineService?wsdl

5-2 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
6. Configure External Web Service Engine in Oracle
Transportation and Global Trade Management Cloud
Follow the below steps to access the External Web Service from Oracle Transportation and Global
Trade Management Cloud.

Document
Create a document under Business Process Automation > Document Manager to represent the web
service created and deployed in the above chapter.

1. Create a new document and provide the web service URL.


2. No need to associate the document with any Document Type or Content Management System.

Web Service
Create a web service definition under Business Process Automation > Communication Management >
Web Services from the document created above.

1. Create a new Web Service


2. Provide the document created above.
3. Click on the service detail.
4. Check the Use Web service security to add the user credentials in the Username token in the
SOAP Header.
5. In the Web service endpoints, if the web service is secured i.e. uses https, then we should
make sure to ensure the Oracle Transportation and Global Trade Management Cloud System
Administrator has configured the application server to be able to accept the external server
certificate.
6. Also enter the authentication username and password.

External System
Create external system under Business Process Automation > Communication Management >
External Systems, using the web service definition created above and select the appropriate web
service operation.

1. Create an External System referencing the web service using lookupDistance operation.
2. Create an External System referencing the web service using validateAddress operation.
3. Create an External System referencing the web service using lookupServiceTime operation.
4. Create an External System referencing the web service using costShipment operation

External Engine
Define the External Distance or External Service Time or Rating Engine:

1. Choose Connection Type as web service (W).

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 6-1
2. JavaClass:

For distance engines, the class


glog.business.rate.ratedistance.external.webservice.client.ExternalDistanceWebServiceClient
will be populated. This field is not editable.

For service time engines, the class


glog.business.rateservicescheduling.external.webservice.client.ExternalServiceTimeWebServic
eClient will be populated. This field is not editable.

For rating engines, the class


glog.business.rate.rateengine.external.webservice.client.ExternalRatingWebServiceClient will
be populated. This field is not editable
3. External System ID: This is mandatory for web service. Choose the external system which is
going to act as a web service

6-2 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
7. Appendix: WSDLs
Distance Engine
<?xml version='1.0' encoding='UTF-8'?>

<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://xmlns.oracle.com/apps/otm/distanceengine"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
targetNamespace="http://xmlns.oracle.com/apps/otm/distanceengine"
name="DistanceEngineService">
<types>
<xs:schema xmlns:tns="http://xmlns.oracle.com/apps/otm/distanceengine"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/apps/otm/distanceengine">

<xs:complexType name="keyValue">
<xs:annotation>
<xs:documentation>
This acts like place holder for requirement similar to
Map with a key and value like SCAC code, Weight_UOM, Length_UOM etc...
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
<xs:complexType name="keyValues">
<xs:annotation>
<xs:documentation>
This acts like place holder for requirement similar to
Map with a key and list of values like HAZMAT_TYPES.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="tns:values"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:string"/>
</xs:complexType>
<xs:element name="values">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:value" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="value" type="xs:string"/> <xs:element
name="addressLine" type="xs:string"/>
<xs:element name="accuracy" type="xs:string" />
<xs:element name="city" type="xs:string" />
<xs:element name="countryCode" type="xs:string" />
<xs:element name="countyCode" type="xs:string" />
<xs:element name="latitude" type="xs:double" nillable='true' />
<xs:element name="locationName" type="xs:string" />
<xs:element name="longitude" type="xs:double" nillable='true'/>
<xs:element name="postalCode" type="xs:string" />

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 7-1
<xs:element name="province" type="xs:string" />
<xs:element name="provinceCode" type="xs:string" />
<xs:element name="railSplc" type="xs:string" />
<xs:element name="railStationCode" type="xs:string" />
<xs:element name="seqNumber" type="xs:int" nillable='true'/>
<xs:element name="shortPostalCode" type="xs:string" />
<xs:element name="possibleMatch" type="tns:extEngineAddress"/>
<xs:element name="validFlag" type="xs:boolean" default='false' />
<xs:element name="sourceAddress" type="tns:extEngineAddress"/>
<xs:element name="destinationAddress" type="tns:extEngineAddress"/>
<xs:element name="address" type="tns:extEngineAddress" />
<xs:element name="uom" type="xs:string"/>
<xs:element name="amount" type="xs:double" nillable='true'/>

<xs:element name="ExtEngineException" type="xs:string" >


<xs:annotation>
<xs:documentation>
Message contain information to be shown to user when
fault occurs.
</xs:documentation>
</xs:annotation>
</xs:element>

<xs:element name="edeParam" type="tns:keyValue">


<xs:annotation>
<xs:documentation>
<!-- TODO: Had not identified the use of this constants
-->
The valid values to name attribute are
SOURCE_ADDRESS_TYPE
DEST_ADDRESS_TYPE
SAME_SOURCE_DEST_DIST
</xs:documentation>
</xs:annotation>
</xs:element>

<xs:element name="extEngineAuxInput" type="tns:keyValue" >


<xs:annotation>
<xs:documentation>
The valid values to name attribute are
SCAC,
RouteCode,
Height,
Height_UOM,
Length,
Length_UOM,
Width,
Width_UOM,
Weight,
Weight_UOM
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="extEngineAuxValueList" type="tns:keyValues">
<xs:annotation>
<xs:documentation>
The valid values to name attribute are
HAZMAT_TYPES

7-2 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
</xs:documentation>
</xs:annotation>
<xs:element name="addressLines">
<xs:complexType>
<xs:sequence>
<xs:element ref='tns:addressLine'
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:complexType name="extEngineAddress">
<xs:sequence>
<xs:element ref="tns:accuracy" />
<xs:element ref="tns:addressLines" />
<xs:element ref="tns:city" />
<xs:element ref="tns:countryCode" />
<xs:element ref="tns:countyCode" />
<xs:element ref="tns:latitude" />
<xs:element ref="tns:locationName" />
<xs:element ref="tns:longitude" />
<xs:element ref="tns:postalCode" />
<xs:element ref="tns:province" />
<xs:element ref="tns:provinceCode" />
<xs:element ref="tns:railSplc" />
<xs:element ref="tns:railStationCode" />
<xs:element ref="tns:seqNumber" />
<xs:element ref="tns:shortPostalCode" />
</xs:sequence>
</xs:complexType>

<xs:element name="possibleMatches">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:possibleMatch"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="locationAddressMatches">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:possibleMatches"/>
<xs:element ref="tns:validFlag" />
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="extEngineAuxInputList">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:extEngineAuxInput"
maxOccurs="unbounded"/>
<xs:element ref="tns:extEngineAuxValueList"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 7-3
</xs:element>

<xs:element name="edeParams" >


<xs:complexType>
<xs:sequence>
<xs:element ref="tns:edeParam" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="lookupDistanceRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:sourceAddress" />
<xs:element ref="tns:destinationAddress" />
<xs:element ref='tns:extEngineAuxInputList'/>
<xs:element ref="tns:edeParams"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="extEngineDistance">
<xs:annotation>
<xs:documentation>the values for UOM element should be
valid unit of measure in OTM.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:uom" />
<xs:element ref="tns:amount" />
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="validateAddressRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:address" />
<xs:element ref='tns:extEngineAuxInputList' />
<xs:element ref="tns:edeParams"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>

<message name="lookupDistanceRequest">
<part name="lookupDistanceRequest"
element="tns:lookupDistanceRequest"/>
</message>

<message name="lookupDistanceResponse">
<part name="extEngineDistance" element="tns:extEngineDistance"/>
</message>

<message name="ExtEngineException">
<part name="fault" element="tns:ExtEngineException"/>
</message>

7-4 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
<message name="validateAddressRequest">
<part name="validateAddressRequest"
element="tns:validateAddressRequest"/>
</message>

<message name="validateAddressResponse">
<part name="locationAddressMatches"
element="tns:locationAddressMatches"/>
</message>

<portType name="ExternalDistanceEngine">
<operation name="lookupDistance" >
<input message="tns:lookupDistanceRequest" />
<output message="tns:lookupDistanceResponse" />
<fault message="tns:ExtEngineException" name="ExtEngineException"/>
</operation>
<operation name="validateAddress">
<input message="tns:validateAddressRequest" />
<output message="tns:validateAddressResponse" />
<fault message="tns:ExtEngineException" name="ExtEngineException"
/>
</operation>
</portType>

<binding name="ExternalDistanceEnginePortBinding"
type="tns:ExternalDistanceEngine">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<operation name="lookupDistance">
<soap:operation soapAction="lookupDistance"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="ExtEngineException">
<soap:fault name="ExtEngineException" use="literal"/>
</fault>
</operation>
<operation name="validateAddress">
<soap:operation soapAction="validateAddress"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="ExtEngineException">
<soap:fault name="ExtEngineException" use="literal"/>
</fault>
</operation>
</binding>
<service name="DistanceEngineService">
<port name="ExternalDistanceEnginePort"
binding="tns:ExternalDistanceEnginePortBinding">

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 7-5
<soap:address
location="http://localhost/GC3Services/DistanceEngineService"/>
</port>
</service>
</definitions>

Rating Engine
<?xml version='1.0' encoding='UTF-8'?>
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://xmlns.oracle.com/apps/otm/ExternalRating"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
targetNamespace="http://xmlns.oracle.com/apps/otm/ExternalRating"
name="ExternalRatingService">

<types>
<xs:schema xmlns:tns="http://xmlns.oracle.com/apps/otm/ExternalRating"
elementFormDefault="qualified"

targetNamespace="http://xmlns.oracle.com/apps/otm/ExternalRating">

<xs:complexType name="keyValues">
<xs:annotation>
<xs:documentation> Name, Values elements
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="tns:values"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>

<xs:simpleType name="costType">
<xs:annotation>
<xs:documentation>CostType specifies which kind of cost was
calculated.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Base"/>
<xs:enumeration value="Accessorial"/>
<xs:enumeration value="Discount"/>
<xs:enumeration value="SpecialService"/>
</xs:restriction>
</xs:simpleType>

<xs:element name="value" type="xs:string" />


<xs:element name="inputData" type="tns:keyValues"/>
<xs:element name="err" type="xs:string" />
<xs:element name="serviceDays" type="xs:int" nillable='true' />
<xs:element name="utcPickupDateTime" type="xs:long" />
<xs:element name="pickupTimezone" type="xs:string" />
<xs:element name="utcDeliveryDateTime" type="xs:long" />
<xs:element name="deliveryTimezone" type="xs:string" />
<xs:element name="chargeableWeight" type="xs:double"
nillable='true' />
<xs:element name="chargeableWeightUom" type="xs:string" />

7-6 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
<xs:element name="dimWeight" type="xs:double" nillable='true'/>
<xs:element name="dimWeightUom" type="xs:string" />
<xs:element name="cost" type="xs:double" nillable='true'/>
<xs:element name="currencyCode" type="xs:string" />
<xs:element name="costType" type="tns:costType" />
<xs:element name="accessorialCode" type="xs:string" />
<xs:element name="costCode" type="xs:string" />
<xs:element name="specialServiceCode" type="xs:string" />
<xs:element name="calculationDetail" type="xs:string"/>
<xs:element name="isWeightedCostOnly" type="xs:boolean"/>
<xs:element name="costCategoryGid" type="xs:string" />
<xs:element name="shipUnitGid" type="xs:string" />
<xs:element name="shipUnitLineSeq" type="xs:long" />

<xs:element name="values">
<xs:complexType>
<xs:sequence>
<xs:element ref='tns:value' maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="calculationDetails">
<xs:complexType >
<xs:sequence>
<xs:element ref="tns:calculationDetail"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="costDetail" >


<xs:complexType>
<xs:annotation>
<xs:documentation>
This class contains detailed information about an
individual calculated cost. An invocation of an External Rating Engine can
return any number of CostDetail records.
cost:
Numeric value of the calculated cost.
currencyCode:
String representing the currency of the calculated
cost. Must be a valid currencyCode as understood by OTM. (ex. USD, BGP, etc.)
costType:
Type of calculated cost. One of B - Base, A -
Accessorial, O - Other, D - Discount, S - Stop-off, C - Circuity, L – Delta.
accessorialCode:
If costType is Accessorial, this specifies the
accessorial code associated with it. Code must be a valid OTM accessorial
code.
costCode:
Alternative code for classification purposes only.
Applies to all cost types. Code must be a valid OTM accessorial code.
specialServiceCode:
If costType is SpecialService, this specifies the
special service code associated with it. Code must be a valid OTM special
service code.
calculationDetails:

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 7-7
Collection of String containing details about how
the calculation was performed. There are no restrictions on the generated
strings, but OTM will only store a maximum of 4000 characters per line.
isWeightedCostOnly:
Flag to indicate that the cost should only affect
the final weighted cost of a shipment If true, the cost will not be added to
the base or total cost.
costCategoryGid:
String specifying a Cost Category Code GID. This
is a code that allows, within OTM, the ability to specify a set of category
codes for the purpose of filtering out costs during the rating process. This
is primarily used for driver assignment during fleet operations. It is
included here for informational purposes only. This value can be viewed as
part of the results of an RIQ query.
sShipUnitGid:
If the cost should be attached to a particular ship
unit, the ship unit's ID can be specified here. This is stored on the
shipment_cost table
sShipUnitLineSeq:
If, instead of a ship unit, the cost should be
associated with a particular ship unit line, this Long can be populated with
the ship unit line's sequence number. In combination with sShipUnitGid, this
will complete the primary kew of the s_ship_unit_line table. Again, this is
stored on the shipment_cost table.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="tns:cost"/>
<xs:element ref="tns:currencyCode" />
<xs:element ref="tns:costType" />
<xs:element ref="tns:accessorialCode" />
<xs:element ref="tns:costCode" />
<xs:element ref="tns:specialServiceCode" />
<xs:element ref="tns:calculationDetails" />
<xs:element ref="tns:isWeightedCostOnly" />
<xs:element ref="tns:costCategoryGid" />
<xs:element ref="tns:shipUnitGid" />
<xs:element ref="tns:shipUnitLineSeq"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="costDetails">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:costDetail"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="inputDataList">
<xs:complexType>
<xs:annotation>
<xs:documentation>
InputData Map of RBI ID to List of Strings
representing the shipment data required
by the external rating engine. EX:

7-8 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
{SHIPMENT.NUMLINES,3},
{SHIPMENT.SOURCE.POSTAL_CODE,19406},
{SHIPMENT.DEST.POSTAL_CODE,34639},
{SHIPMENT.RATE.SERVPROV,UPS },
{SHIPMENT.RATE.RATE_SERVICE,UPS GROUND},
{SHIPMENT.RATE.SERVPROV_ACCOUNT_NUMBER, 12345634},
{SHIPMENT.LINES.WEIGHT,{15 LB,10 LB}},
The RBIs and data present in the map is determined
by the External Rating Engine Fieldset specified in OTM and associated with the
calling Rate Offering or Rate Cost/Accessorial Cost.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="tns:inputData" maxOccurs="unbounded"
/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="rexRateRequest">
<xs:complexType >
<xs:sequence>
<xs:element ref="tns:inputDataList"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="rexRateResult">
<xs:complexType>
<xs:annotation>
<xs:documentation>
Describes the result of an invocation of an
External Rating Engine
err:
Existence of error message string indicates failure
The error message will be logged, but will not cause an exception.
serviceDays:
If the external rating engine calculates the number
of service days, it can be returned here. A value of null indicates no data
utcPickupDateTime:
If the external rating engine calculates estimated
pickup and delivery times, they can be returned here.Values of null indicate no
data. Timezones can be specified if necessary, otherwise, UTC will be assumed.
pickupTimezone:
Java-compatible timezone identifier assigned to the
pickup location (ex. EDT, America/Chicago, etc.)
utcDeliveryDateTime:
If the external rating engine calculates estimated
pickup and delivery times, they can be returned here. Values of null indicate
no data. Timezones can be specified if necessary, otherwise, UTC will be
assumed.
deliveryTimezone:
Java-compatible timezone identifier assigned to the
pickup location (ex. EDT, America/Chicago, etc.)
chargeableWeight:
Chargeable weight. Copied to the Shipments
chargeable weight field. Only used when invocation of ERE is specified on the
Rate Offering

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 7-9
chargeableWeightUom:
Unit of Measure for the chargeable weight (ex. LB,
KG, etc.)
dimWeight:
Dimensional weight. Copied to the Shipments
dimensional weight field. Only used when invocation of ERE is specified on the
Rate Offering
dimWeightUom:
Unit of Measure for the dimensional weight (ex. LB,
KG, etc.)
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="tns:err" />
<xs:element ref="tns:costDetails"/>
<xs:element ref="tns:serviceDays" />
<xs:element ref="tns:utcPickupDateTime" />
<xs:element ref="tns:pickupTimezone" />
<xs:element ref="tns:utcDeliveryDateTime" />
<xs:element ref="tns:deliveryTimezone" />
<xs:element ref="tns:chargeableWeight"/>
<xs:element ref="tns:chargeableWeightUom" />
<xs:element ref="tns:dimWeight" />
<xs:element ref="tns:dimWeightUom" />
</xs:sequence>
</xs:complexType>
</xs:element>

</xs:schema>
</types>

<message name="costShipmentRequest">
<part name="rexRateRequest" element="tns:rexRateRequest"/>
</message>

<message name="costShipmentResponse">
<part name="rexRateResult" element="tns:rexRateResult"/>
</message>

<portType name="ExternalRating">
<operation name="costShipment">
<input
wsam:Action="http://xmlns.oracle.com/apps/otm/rexExternalService/costShipmentRe
quest" message="tns:costShipmentRequest"/>
<output
wsam:Action="http://xmlns.oracle.com/apps/otm/rexExternalService/costShipmentRe
sponse" message="tns:costShipmentResponse"/>
</operation>
</portType>

<binding name="ExternalRatingPortBinding" type="tns:ExternalRating">


<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<operation name="costShipment">
<soap:operation soapAction="costShipment"/>
<input>
<soap:body use="literal"/>
</input>

7-10 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>

<service name="ExternalRatingService">
<port name="ExternalRatingPort"
binding="tns:ExternalRatingPortBinding">
<soap:address
location="http://localhost/GC3Services/REXPublicExternalService"/>
</port>
</service>
</definitions>

Service Time Engine


<?xml version='1.0' encoding='UTF-8'?>

<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://xmlns.oracle.com/apps/otm/servicetimeengine"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"

targetNamespace="http://xmlns.oracle.com/apps/otm/servicetimeengine"
name="ServiceTimeEngineService">
<types>
<xs:schema
xmlns:tns="http://xmlns.oracle.com/apps/otm/servicetimeengine"
elementFormDefault="qualified"
targetNamespace="http://xmlns.oracle.com/apps/otm/servicetimeengine">

<xs:complexType name="keyValue">
<xs:annotation>
<xs:documentation>
This acts like place holder for requirement similar to
Map with a key and value like SCAC code, Weight_UOM, Length_UOM etc...
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
<xs:complexType name="keyValues">
<xs:annotation>
<xs:documentation>
This acts like place holder for requirement similar to
Map with a key and list of values like HAZMAT_TYPES.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="tns:values"/>
</xs:sequence>
<xs:attribute name="name" use="required" type="xs:string"/>
</xs:complexType>
<xs:element name="values">
<xs:complexType>

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 7-11
<xs:sequence>
<xs:element ref="tns:value" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="value" type="xs:string"/>
<xs:element name="addressLine" type="xs:string"/>
<xs:element name="accuracy" type="xs:string" />
<xs:element name="city" type="xs:string" />
<xs:element name="countryCode" type="xs:string" />
<xs:element name="countyCode" type="xs:string" />
<xs:element name="latitude" type="xs:double" nillable='true' />
<xs:element name="locationName" type="xs:string" />
<xs:element name="longitude" type="xs:double" nillable='true'/>
<xs:element name="postalCode" type="xs:string" />
<xs:element name="province" type="xs:string" />
<xs:element name="provinceCode" type="xs:string" />
<xs:element name="railSplc" type="xs:string" />
<xs:element name="railStationCode" type="xs:string" />
<xs:element name="seqNumber" type="xs:int" nillable='true'/>
<xs:element name="shortPostalCode" type="xs:string" />
<xs:element name="possibleMatch" type="tns:extEngineAddress"/>
<xs:element name="validFlag" type="xs:boolean" default='false' />
<xs:element name="sourceAddress" type="tns:extEngineAddress"/>
<xs:element name="destinationAddress" type="tns:extEngineAddress"/>
<xs:element name="address" type="tns:extEngineAddress" />
<xs:element name="uom" type="xs:string"/>
<xs:element name="amount" type="xs:double" nillable='true'/>

<xs:element name="ExtEngineException" type="xs:string" >


<xs:annotation>
<xs:documentation>
Message contain information to be shown to user when
fault occurs.
</xs:documentation>
</xs:annotation>
</xs:element>

<xs:element name="param" type="tns:keyValue">


<xs:annotation>
<xs:documentation>
<!-- TODO: Had not identified the use of this constants
-->
The valid values to name attribute are
SOURCE_ADDRESS_TYPE
DEST_ADDRESS_TYPE
SAME_SOURCE_DEST_DIST
</xs:documentation>
</xs:annotation>
</xs:element>

<xs:element name="extEngineAuxInput" type="tns:keyValue" >


<xs:annotation>
<xs:documentation>
The valid values to name attribute are
SCAC,
RouteCode,
Height,

7-12 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
Height_UOM,
Length,
Length_UOM,
Width,
Width_UOM,
Weight,
Weight_UOM
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="extEngineAuxValueList" type="tns:keyValues">
<xs:annotation>
<xs:documentation>
The valid values to name attribute are
HAZMAT_TYPES
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="addressLines">
<xs:complexType>
<xs:sequence>
<xs:element ref='tns:addressLine'
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:complexType name="extEngineAddress">
<xs:sequence>
<xs:element ref="tns:accuracy" />
<xs:element ref="tns:addressLines" />
<xs:element ref="tns:city" />
<xs:element ref="tns:countryCode" />
<xs:element ref="tns:countyCode" />
<xs:element ref="tns:latitude" />
<xs:element ref="tns:locationName" />
<xs:element ref="tns:longitude" />
<xs:element ref="tns:postalCode" />
<xs:element ref="tns:province" />
<xs:element ref="tns:provinceCode" />
<xs:element ref="tns:railSplc" />
<xs:element ref="tns:railStationCode" />
<xs:element ref="tns:seqNumber" />
<xs:element ref="tns:shortPostalCode" />
</xs:sequence>
</xs:complexType>

<xs:element name="extEngineAuxInputList">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:extEngineAuxInput"
maxOccurs="unbounded"/>
<xs:element ref="tns:extEngineAuxValueList"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 7-13
<xs:element name="params" >
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:param" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="lookupServiceTimeRequest">
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:sourceAddress" />
<xs:element ref="tns:destinationAddress" />
<xs:element ref='tns:extEngineAuxInputList'/>
<xs:element ref="tns:params"/>
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="extEngineServiceTime">
<xs:annotation>
<xs:documentation>the values for UOM element should be
valid unit of measure in OTM.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="tns:uom" />
<xs:element ref="tns:amount" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>

<message name="lookupServiceTimeRequest">
<part name="lookupServiceTimeRequest"
element="tns:lookupServiceTimeRequest"/>
</message>

<message name="lookupServiceTimeResponse">
<part name="extEngineServiceTime" element="tns:extEngineServiceTime"/>
</message>

<message name="ExtEngineException">
<part name="fault" element="tns:ExtEngineException"/>
</message>

<portType name="ExternalServiceTimeEngine">
<operation name="lookupServiceTime" >
<input message="tns:lookupServiceTimeRequest" />
<output message="tns:lookupServiceTimeResponse" />
<fault message="tns:ExtEngineException" name="ExtEngineException"/>
</operation>
</portType>

<binding name="ExternalServiceTimeEnginePortBinding"
type="tns:ExternalServiceTimeEngine">

7-14 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
<operation name="lookupServiceTime">
<soap:operation soapAction="lookupServiceTime"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="ExtEngineException">
<soap:fault name="ExtEngineException" use="literal"/>
</fault>
</operation>

</binding>

<service name="ServiceTimeEngineService">
<port name="ExternalServiceTimeEnginePort"
binding="tns:ExternalServiceTimeEnginePortBinding">
<soap:address
location="http://localhost/GC3Services/ServiceTimeEngineService"/>
</port>
</service>

</definitions>

Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved. 7-15
7-16 Copyright © 2009, 2019, Oracle and/or its affiliates. All rights reserved.

You might also like