Beruflich Dokumente
Kultur Dokumente
December 2016
Copyright Notice
Oracle Transportation Management External Programming Interface Guide, Release 6.4.2
Part No. E81537-01
Copyright 2009, 2016, 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, 2016, Oracle and/or its affiliates. All rights reserved. i
Contents
COPYRIGHT NOTICE .................................................................................... I
CONTENTS.................................................................................................. II
PREFACE ..................................................................................................... V
ii Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
DISTANCE ENGINE ................................................................................................. 4-1
RATING ENGINE .................................................................................................... 4-5
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. iii
Send Us Your Comments
Oracle Transportation Management External Programming Interface Guide, Release 6.4.2
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.
iv Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
Preface
The intent of this document is to provide documentation for the Java APIs that have been exposed for
customers or third parties to extend existing Oracle Transportation Management functionality. These
external APIs are stand-alone objects with a Java interface provided by Oracle Transportation
Management to minimize the programming effort and maximize runtime performance.
Change History
Date Document Revision Summary of Changes
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. v
1. External Distance Engine
External Distance Calculation
You have the ability to interface Oracle Transportation Management to any third-party distance engine
by writing your own Java class using the existing Oracle Transportation Management interface or
connect as a web service client to the third-party distance engine which is provided as a web service
confining to the WSDL provided by Oracle Transportation Management. This will allow a custom-
tailored distance engine to meet your specific needs.
Setup
The first step is to ensure there is a valid External Distance Engine (EDE) defined in Oracle
Transportation Management. The External Distance Engine can be defined in two ways. Either you can
use a Connection Type as Java Class (J) or use Connection Type as Webservice (W). For more details
on how to define EDE with Connection Type Java Class (J) refer to the Java Interface Explanation
section and for more details on how to define EDE with Connection Type Webservice (W) refer to the
Web Service Explanation section. This is the main link between Oracle Transportation Management
and a custom EDE. Parameters that are required for the specific EDE can be entered in the parameters
table on the EDE itself and are mapped via the parms variable in the interface.
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 1-1
Field Value Comments
CACHE_BY_ADDRESSES_LOOKUP_SAVE = A
Setup
1. Define a Java class which implements ExternalDistanceEngineInterface.
2. Define an external distance engine with the connection type of Java Class (J) and a Java class
pointing to the class defined in step1.
1-2 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
3. Define a rate distance with the above external distance engine.
4. Use the rate distance created as needed.
Inputs
In the ExternalDistanceEngineLookupSample class, there are several arguments.
sourceAddr is type ExtEngineAddress that contains all the location information for the source
address.
destAddr is type ExtEngineAddress that contains all the location information for the destination
address.
auxInput is another class that can contain SCAC and Route Codes off the location. This is
usually only necessary for rail lookups and is available as read-only.
The externalEngineGid displays the name of the EDE defined.
parms is a mapping to all the input parameters that were entered in Oracle Transportation
Management for the specific EDE.
ExtEngineAddress, ExtEngineAuxInput, and ExtEngineInputParam are explained in the documents
included in JavaDocs.
Outputs
Exception Handling:
Its default constructor is in the format ExtEngineException(Throwable t, String s) and can also
handle a single argument of type String or Throwable.
ExtEngineDistance:
Standard Output:
Return ExtEngineDistance(25.4 MI);
Or, optional:
Return ExtEngineDistance(MI, 25.4);
Unit of measure is user defined and no conversions will take place
Setup
1. Expose the third party distance engine as web service confining to the Distance Engine WSDL
definition, and then obtain the WSDL link to the exposed web service.
2. Create a document under Business Process Automation in OTM to represent the web service
created in the step above.
3. Create a new web service definition under Business Process Automation from the document
created above.
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 1-3
4. Create a new external system using the web service definition created above and select the
web service operation as lookupDistance.
5. Define the external system:
Choose Connection_type as web service (W).
JavaClass:
glog.business.rate.ratedistance.external.webservice.client.ExternaLDistanceW
ebServiceClient. Java Class will be populated if you choose Connection Type as web
service (W). This field is not editable.
External System ID: This is mandatory for web service. Choose the external system
which is going to act as a web service.
6. Define a new rate distance in the power data section of Contract and Rate Management for the
external rate distance defined above.
7. Use the rate distance created above as needed.
Web Service Operations
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 location. This is usually only
necessary for rail lookups and is available as read-only.
edeParams is a mapping to all the input parameters that were entered in Oracle
Transportation Management for the specific EDE.
Outputs:
Setup
The first step is to ensure a valid EDE is defined. The setup for the validation is the same as external
distance calculation described above. The only difference is that location validation does not cache any
results so the EDE cache setting will be ignored.
1-4 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
Java Interface Explanation
You can use the ExternalDistanceEngineLookupSample.java module as a template to retrieve location
data from Oracle Transportation Management and pass the result back to Oracle Transportation
Management.
Inputs
In the ExternalDistanceEngineLookupSample class, there are several arguments.
sourceAddr is type ExtEngineAddress that contains all the location information for the location
to be validated.
suxInput is another class that can contain other data and is available as read-only.
The externalEngineGid displays the name of the EDE defined.
parms is a mapping to all the input parameters that were entered in Oracle Transportation
Management for the specific EDE.
ExtEngineAddress, ExtEngineAuxInput, and ExtEngineInputParam are explained in the documents
included in JavaDocs.
Outputs
Exception Handling:
Its default constructor is in the format ExtEngineException(Throwable t, String s) and can also
handle a single argument of type String or Throwable.
LocationAddressMatches
Standard Output:
Return LocationAddressMatches();
LocationAddressMatches is the return type for the validateAddress method in the interface. Details of
this class are provided in the documents included in JavaDocs. For engines that support multiple
suggested locations, LocationAddressMatches does have a List object that takes type
ExtEngineAddress and can contain the returned locations data.
Setup
The setup for the validation is the same as external distance calculation described above except for
while creating the external system select the web service operation as validateAddress.
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 1-5
Web Service Operation
validateAddress Operation
Inputs:
address that contains all the location information for the location to be validated.
extEngineAuxInputList contain SCAC and Route Codes off the location. This is usually only
necessary for rail lookups and is available as read-only.
edeParams is a mapping to all the input parameters that were entered in Oracle
Transportation Management for the specific EDE.
Outputs:
Note: All the values for XML elements involved in web service should be valid as per OTM.
1-6 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
2. External Rating Engine
External Rate Calculation
You have the ability to interface Oracle Transportation Management to any third-party rating engine
by writing your own Java class using the existing Oracle Transportation Management interface or
connect as a web service client to the third-party rating engine which is provided as a web service
confining to the WSDL provided by Oracle Transportation Management. This will allow a custom-
tailored rating engine to meet your specific needs. They can use the
glog.externalapi.rateengine.samples.REXJavaTest.java module as a template to retrieve input data
from Oracle Transportation Management and pass the result back to Oracle Transportation
Management.
Setup
The first step is to ensure there is a valid External Rating Engine (ERE) Fieldset defined in Oracle
Transportation Management. The External Rating Engine Fieldset can be defined in two ways. Either
you can use a Connection Type as Java Class(J) or use Connection Type as Webservice (W). For
more details on how to define ERE Fieldset with Connection Type Java Class (J) refer to the Java
Interface Explanation section and for more details on how to define ERE Fieldset with Connection Type
Webservice (W) refer to the Web Service Explanation section. This is the main link between Oracle
Transportation Management and a custom ERE.
Other communication
mechanisms will be
supported in future
iterations.
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 2-1
Field Value Comments
Implementing Java Class (should be a subset of GC3External Specifies the fully qualified
directory) name of the java class
which will implement the
glog.externalapi.rateengine.CLASS_NAME link to the external rating
engine. This class will only
(or) be instantiated one time.
The External Rating Engine Fieldset also specifies the information that will be passed from Oracle
Transportation Management 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.
RBI GID
There are two ways to invoke an external rating engine using Oracle Transportation Management:
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
2-2 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
current implementation of the Oracle Transportation Management link to SMCs Rateware LTL 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:
External Engine Fieldset ID USER_DEFINED Choose the fieldset defined for the
external engine that invokes only
the accessorial calculations.
It is now 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:
External Engine Fieldset ID USER_DEFINED Choose the fieldset defined for the
external engine that invokes only
the accessorial calculations.
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. The rate
service engine uses the pickup and delivery time to test whether it will fit into the orders 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 object associated with the rate must have a service type of TIMEDEFINITESERVICE.
The external rating engine can fill the serviceDays field. The RATE SERVICE object associated
with the rate must have a service type of EXTERNALTRANSITDAYS.
If the rate service doesnt have the above service types, then the service time data returned from the
rating engine will be ignored and an exception will be thrown, flagging the rate as infeasible.
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 2-3
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.
Setup
1. Define a Java class which implements
glog.externalapi.rateengine.REXPublicExternalInterface.
2. Define an external rating engine field set with Connection Type as Java Class (J) and Java
class pointing to the class defined in step 1.
3. Define a new rate offering type under the power data section of Contract and Rate
Management; associate the Rate Offering Type to EXTERNALRATINGENGINE using the Rate
Attribute ID field. This will associate the rate offering type to the generic rating engine. Assign
any other Rate Attributes as required.
4. Define a new rate offering for the rate offering type created above. On the Attribute tab select
GENERIC for the External Rating Engine ID field. The External Rating Engine Fieldset is
created as above with the value for the Generic External Engine Fieldset ID.
5. Define a rate record as per the requirement for the rate offering created above and use it for
rating shipments.
Inputs
In the REXJavaTest class, costShipment method:
There is one input parameter. A type, Map, uses a String Argument for the key and a list of Strings for
the values. It will be similar to this:
{SHIPMENT.NUMLINES,3},
{SHIPMENT.SOURCE.POSTAL_CODE,19406},
{SHIPMENT.DEST.POSTAL_CODE,34639},
{SHIPMENT.RATE.SERVPROV,UPS },
2-4 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
{SHIPMENT.RATE.RATE_SERVICE,UPS GROUND},
{SHIPMENT.RATE.SERVPROV_ACCOUNT_NUMBER, 12345634},
{SHIPMENT.LINES.WEIGHT,{10 LB,15 LB,10 LB}}*
Outputs
glog.externalapi.ratengine.REXRateResult has the following public member variables and is
explained in more detail in the documents included in JavaDocs:
REXRateResult:
String err: If this is set, this shows an error in the log but will not throw an exception
Integer serviceDays: If the ERE returns the number of service days, this can be set here.
Otherwise a value of NULL equals no data.
Long utcPickupDateTime: Estimated pickup time, UTC
String pickupTimezone: Max of 50 characters, java-style timezone identifer (ex. EDT,
America/Chicago, etc.)
Long utcDeliveryDateTime: Estimated delivery time, UTC
String deliveryTimezone: Max of 50 characters
Double chargeableWeight: Chargeable weight. Copied to the shipments 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.)
Double dimWeight: Dimensional weight. Copied to the shipments dimensional weight field.
Only used when invocation of ERE is specified on the rate offering
String dimWeightUom: Unit of measure for the dimensional weight
Collection<CostDetail> details: Details about each individual cost calculated by the external
rating engine
REXRateResult.CostDetail:
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 2-5
specific needs. This feature mainly 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.
Setup
1. Expose third party distance engine as a web service confining to the Rating Engine WSDL
definition, and then obtain the WSDL link to the exposed web service.
2. Create a document under Business Process Automation in OTM to represent the web service
created in step above.
3. Create a new web service definition under Business Process Automation from the document
created above.
4. Create a new external system using the web service definition created above.
5. Create a new external rating field set:
Choose Connection Type as Web Service (W).
JavaPluginClass: If you choose connection_type as webservice then Java Class field will be
populated with the following client Java class and it is not editable. Java Class:
glog.business.rate.rateengine.external.webservice.client.ExternalRatingWebSe
rviceClient. This class is available with OTM
6. Define a new rate offering type under the power data section of Contract and Rate
Management, associate the Rate Offering Type to EXTERNALRATINGENGINE using the Rate
Attribute ID field. This will associate the rate offering type to the generic rating engine.
7. Define a new rate offering for the rate offering type created above. On the Attribute tab select
GENERIC for the External Rating Engine ID field. The External Rating Engine Fieldset is
created as above with the value for the Generic External Engine Fieldset ID.
8. Define a rate record as per the requirement for the rate offering created above and use it for
rating shipments
Web Service Operations
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.WEIGHT">
<n:values>
<n:value>12.0 LB</n:value>
<n:value>14.0 LB</n:value>
</n:values>
</n:inputData>
Outputs:
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.
2-6 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
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 shipments 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.)
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.
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 (Base, Accessorial, Discount, SpecialService).
accessorialCode: If this cost is an accessorial, the accessorial code is specified here. This code
must exist in Oracle Transportation Management.
costCode: Secondary accessorial code for classification purposes only. This code must exist in
Oracle Transportation Management.
specialServiceCode: If this cost is a special service, the special service code is specified here.
This code must exist in Oracle Transportation Management.
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 OTM.
Refer to the Appendix: WSDL Definitions for more details.
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 2-7
3. Directory Information
The jar file with custom java classes should be placed in the following directory:
appserver/applications/GC3App.ear/APP-INF/lib
Oracle Transportation Management includes jar files in this directory on the classpath.
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 3-1
4. Appendix: WSDL Definitions
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">
<!--
1. Valid values for Country code, countty code and other code
valid values will be documented
-->
<xs:complexType name="keyValue">
<xs:annotation>
<xs:documentation>
This acts like place holder for requirement similar to
Map.
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="value" type="xs:string"/>
</xs:complexType>
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 4-1
<xs:documentation>
Message contain information to be shown to user when
fault occurs.
</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" />
4-2 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
<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: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>
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 4-3
<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>
<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>
4-4 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
</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">
<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">
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 4-5
<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="values">
<xs:complexType>
<xs:sequence>
<xs:element ref='tns:value' maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="calculationDetails">
<xs:complexType >
4-6 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
<xs:sequence>
<xs:element ref="tns:calculationDetail"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 4-7
</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:
{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>
4-8 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.
</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
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" />
Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved. 4-9
</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>
<service name="ExternalRatingService">
<port name="ExternalRatingPort"
binding="tns:ExternalRatingPortBinding">
<soap:address
location="http://localhost/GC3Services/REXPublicExternalService"/>
</port>
</service>
</definitions>
4-10 Copyright 2009, 2016, Oracle and/or its affiliates. All rights reserved.