Convert Shipment Costs to Freight Charges

Use your own task to convert shipment costs to freight charges.

  1. Create your own task. For details, see Create Your Own Task Type.

  2. Add a new step in your orchestration process that references your new task. Place it after the step that completes the shipment task and before the step that starts the invoice task. The published payload for your task will contain the shipping cost that you capture in the shipping system.

  3. Set up your connector. Here's what it looks like in Oracle JDeveloper (Java Developer).

    Set up your connector.

Note

  1. Transform your input into an immediate response and send it to Order Management.

  2. Wait for two minutes.

  3. Initialize local variables, such as Result and Counter.

  4. Transform your input into a delayed response. It converts cost to charge, including a mark up, if necessary.

  5. Send a delayed response, then wait for a SUCCESS reply.

    Make sure you also implement error handling to handle an ERROR reply.

    Here's an expanded view of step 5, WhileNoSuccess.

    expanded view of step 5, WhileNoSuccess.
  6. Send the delayed response that contains charges back to Order Management. The diagram doesn't include this step.

The connector updates these charges in Order Management, then sends them to invoicing.

Note

  1. Send charges in a delayed response to Order Management.

  2. Receive a reply from Order Management. The reply contains SUCCESS or ERROR.

  3. Save the results of the reply in a local variable.

  4. This is the If condition that routes the flow depending on the value of the local variable, SUCCESS or ERROR.

  5. This is the If condition that routes the flow depending on the Counter local variable that counts the number of attempts.

  6. Depending on the error that you receive, wait five minutes, then call the service in Order Management again.

  7. Increment the Counter variable.

  8. If Counter is equal to or greater than 5, then end the flow.

    You can modify the value in Counter to meet your needs.

As an alternative, you can use Integration Cloud Service instead of JDeveloper. Here's what your connector will look like in Integration Cloud Service.

Here's what your connector will look like in Integration Cloud Service.

For details see, Use Integration Cloud Service with Order Management.

Guidelines

  • Set up your task as a long-running task that uses a wait step in your orchestration process.

  • Send the existing charges back through the task response in addition to the new charges that you're adding for freight.

  • Make sure you use only one primary charge for each ChargeAppliesTo on each fulfillment line. For details, see Manage Pricing Charge Definitions.

  • Make sure you set the Applies To attribute to SHIPPING for each new charge that you add.

  • If you split a shipment line, and if you capture more than one shipping cost in one fulfillment line, then sum the costs and send a single freight charge through your task.

  • If you must calculate tax on the freight charges, see Integrate Order Management with Accounts Receivable.

  • This set up captures the shipping cost when you confirm the shipment.
  • This set up adds a shipping charge only to the order line. It doesn't add the shipping charge to the sales order total. The total on the invoice won't match the sales order total, but Order Management does send these charges to Accounts Receivable.

    Assume your sales order has one order line, the line has a price of $10 each, a quantity of 10, and the line's total is $100. Assume you add a $9 freight charge, which results in a line total of $109 but an order total of $100. Order Management will send $109 to Accounts Receivable.

  • You must test your set up in a test environment for scalability and performance before you deploy it to your production environment.
  • You can use this set up only on the order line that you're orchestrating. You can't use it for an entire sales order.

Make sure the application that calls the delayed response service has these privileges:

  • Manage Orchestration Order Template Interface Web Service

  • Manage Orchestration Order Fulfillment Interface Web Service

Download Example Files

Some of the payloads that you use in this topic are too long or complex to display in this document, but you can download them as files.

  1. Go to Technical Reference for Order Management (Doc ID 2051639.1).

  2. Download the Payloads and Files attachment.

  3. Use the files in the attachment.

    File

    Description

    CostToChargeMappings.xlsx

    Example mapping that the flow uses for a delayed response.

    CostToChargeTTLRequest.xml

    Example payload that requests to convert costs to freight charges.

    The PriceAdjustmentTL tag contains the cost that the flow records when it confirms shipment.

    CostToChargeV4.xls

    Use this example transformation style sheet to convert CostToChargeTTLRequest.xml to CostToChargeDelayedResponse.xml.

    convert_ship_cost_to_freight_charge_input_payload.txt Example input payload.
    convert_ship_cost_to_freight_charge_delayed_response_payoad.txt Example payload for a delayed response.

This topic describes most but not all of the attributes that you need to map. For the complete list, see CostToChargeMappings_V5.xlsx.

Nomenclature

We use indentation to indicate the hierarchy that you must use in the payload. For example:

Headers
  SOAPHeaders
    ReplyTo
      Address

Here's how you read this hierarchy:

  • The Address attribute is in the ReplyTo entity.
  • The ReplyTo entity is in the SOAPHeaders entity.
  • The SOAPHeaders entity is in the Headers entity.
We use bold font to indicate that if the attribute isn't available in the destination, then don't map it.

Immediate Response

We recommend that you set the Invocation Mode attribute on the connector to Asynchronous Service.

You must map these values between your request payload and your response payload when you make an asynchronous call for an immediate response:

Request Payload

Response Payload

Headers
  SOAPHeaders
    ReplyTo
      Address
Headers
  SOAPHeaders
    ReplyTo
      Address
Headers
  SOAPHeaders
    MessageID
Headers
  SOAPHeaders
    MessageID

Here are the rest of the values that you need to map on the order header.

Request Payload

Response Payload

headerTL   
  HeaderId
headerTR
  HeaderId
SUCCESS
headerTR
  Status

Fulfillment Line Entity

Map these values for each fulfillment line entity.

Request Payload

Response Payload

headerTL
  FulfillLineTLVO1
headerTR
  FulfillLinesTR
FulfillLineId
FulfillLineId
headerTL
  SourceOrderSystem
SourceOrderSystem
AWAIT_RESPONSE

You can use some other status. This is typically the intermediate status for the task type.

StatusCode
headerTL
  TaskTypeCode
TaskType

Example Payload

Here's an example payload from the CostToChargeImmediateResponse.xml file.

  <nstrgmpr:HeaderId>300100135839047</nstrgmpr:HeaderId>
  <nstrgmpr:FulfillLinesTR>
    <nstrgmpr:FulfillLineId>300100135839049</nstrgmpr:FulfillLineId>
    <nstrgmpr:SourceOrderSystem>GPR</nstrgmpr:SourceOrderSystem>
    <nstrgmpr:StatusCode>AWAIT_RESPONSE</nstrgmpr:StatusCode>
    <nstrgmpr:TaskType>ConvertCostToCharge</nstrgmpr:TaskType>
  </nstrgmpr:FulfillLinesTR>
</nstrgmpr:headerTR>

Delayed Response

You must map values between your request payload and your response payload for a delayed response.

Fulfillment Line Entity

Map these values for each fulfillment line entity.

Request Payload

Response Payload

headerTL
  FulfillLineTLVO1
Fline
FulfillLineId
FulfillLineId
headerTL
  SourceOrderSystem
SourceOrderSystem
headerTL
  TaskTypeCode
TaskType
Include the appropriate status.

This is typically the exit criteria for the task type.

Status
headerTL
  FulfillServiceProvider

You can also provide the name of a connector instead.

CallbackConnectorName

Charge Entity on the Fulfillment Line

Map these values for each charge entity on the fulfillment line.

Request Payload

Response Payload

OrderChargeTL
FulfillLineOrderChargeSDOTR
AvgUnitSellingPrice
AvgUnitSellingPrice
ChargeAppliesTo
ChargeAppliesTo
ChargeCurrencyCode
ChargeCurrencyCode
ChargeDefinitionCode
ChargeDefinitionCode
ChargeSubtypeCode
ChargeSubtypeCode
ChargeTypeCode
ChargeTypeCode
FreightReferenceLineId FreightReferenceLineId
ParentEntityCode ParentEntityCode
PricedQuantity
PricedQuantity
PricedQuantityUomCode
PricedQuantity
  unitCode
PricedQuantityUomCode
PricedQuantityUOMCode
PricePeriodicityCode
PricePeriodicityCode
PriceTypeCode
PriceTypeCode
PrimaryFlag
PrimaryFlag
ReferenceOrderChargeId
ReferenceOrderChargeId

If Y then true, else false.

RollupFlag
RollupFlag

If Y then true, else false.

SequenceNumber
SequenceNumber
SourceChargeId
SourceChargeId
CanAdjustFlag
CanAdjustFlag

If you set CanAdjustFlag to true, and if you copy the sales order or return it, then you can adjust this entity's values in the copy or return. Set it to false, then you can't adjust them and you must use the values from the original sales order.

Charge Component Entity on the Fulfillment Line

Map these values for each charge component entity on the fulfillment line.

Request Payload

Response Payload

OrderChargeComponentTL
FulfillLineOrderChargeComponentSDOTR
ChargeCurrencyCode
ChargeCurrencyCode
ChargeCurrencyDurationExtendedAmount
ChargeCurrencyDurationExtendedAmount
ChargeCurrencyExtAmount ChargeCurrencyExtendedAmount
ChargeCurrencyCode
ChargeCurrencyExtendedAmount
  currencyCode
ChargeCurrencyUnitPrice
ChargeCurrencyUnitPrice
ChargeCurrencyCode
ChargeCurrencyUnitPrice
  currencyCode
Explanation
Explanation
ExplanationMessageName
ExplanationMessageName
HeaderCurrencyCode
HeaderCurrencyCode
HeaderCurrencyDurationExtendedAmount HeaderCurrencyDurationExtendedAmount
HeaderCurrencyExtAmount
HeaderCurrencyExtendedAmount
HeaderCurrencyCode
HeaderCurrencyExtendedAmount
  currencyCode
HeaderCurrencyUnitPrice
HeaderCurrencyUnitPrice
HeaderCurrencyCode
HeaderCurrencyUnitPrice
  currencyCode
PercentOfComparisonElement
PercentOfComparisonElement
PriceElementCode
PriceElementCode
PriceElementUsageCode
PriceElementUsageCode
PricingSourceId
PricingSourceId
PricingSourceTypeCode
PricingSourceTypeCode
RollupFlag
RollupFlag

If Y then true, else false.

SequenceNumber
SequenceNumber
SourceChargeId
SourceChargeId
SourceParentChargeCompId
SourceParentChargeCompId
SourceChargeComponentId
SourceChargeComponentId

Price Adjustment Entity on the Fulfillment Line

Map these values for each price adjustment entity on the fulfillment line.

Request Payload

Response Payload

PriceAdjustmentTL
FulfillLineOrderChargeSDOTR 
SHIPPING
ChargeAppliesTo
headerTL
  TransactionalCurrencyCode
ChargeCurrencyCode
QP_SHIP_FREIGHT

You can also use an appropriate Charge Definition Code instead.

ChargeDefinitionCode
  • Make sure you have only one charge for each Charge Definition Code.
  • Make sure you set the Applies To attribute for this charge definition to Shipping.
  • If the order line is a return line and you need to refund the freight charge, then make sure this Charge Definition Code is refundable.
  • To verify charge definition codes, go to the Setup and Maintenance work area, then open the Manage Pricing Charge Definitions page. Search for your charge definition, then make sure the combination of Charge Definition Code, Charge Type Code, Charge Sub Type Code and Price Type Code is valid.

For details, see Manage Pricing Charge Definitions.

ORA_PRICE 

You can also use an appropriate ChargeCharge Sub Type Code instead.

ChargeSubtypeCode
ORA_SHIPPING_FREIGHT
You can also use an appropriate Charge Type Code instead.
ChargeTypeCode
headerTL
  FulfillLineTLVO1
    OrderedQty
PricedQuantity
headerTL
  FulfillLineTLVO1
    OrderedUom
PricedQuantity
  unitCode
headerTL
  FulfillLineTLVO1
    OrderedUom
PricedQuantityUOMCode
ONE_TIME
PriceTypeCode
true or false
PrimaryFlag

You can have only one primary charge for each ChargeAppliesTo on a fulfillment line.

false
RollupFlag
Maximum plus position

where

  • Maximum equals the FulfillLineTLVO1 divided by OrderChargeTL divided by SequenceNumber
  • Position equals FulfillLineTLVO1 divided by PriceAdjustmentTL

Use this code to calculate the value:

ue-among-nodeset (../nsmpr0:OrderChargeTL/nsmpr0:SequenceNumber ) + position()
SequenceNumber
PriceAdjustmentId
SourceChargeId
true
CanAdjustFlag

Note

  • You repeat this entity in each FulfillLineOrderChargeSDOTR entity.
  • You can use the code that's in the Request Payload column with Oracle Integration Cloud Service. If you use a different service, then you might need to use some other code.

FulfillLineOrderChargeComponentSDOTR Entity on the Fulfillment Line

Map these values for each FulfillLineOrderChargeComponentSDOTR entity on the fulfillment line.

Request Payload

Response Payload

headerTL
  TransactionalCurrencyCode
ChargeCurrencyCode
Amount multiplied by markup divided by OrderedQty:
headerTL
  FulfillLineTLVO1         
    OrderedQty

Use this code to calculate the value:

nsmpr0:Amount div ../nsmpr0:OrderedQty
ChargeCurrencyUnitPrice
headerTL
  TransactionalCurrencyCode
ChargeCurrencyUnitPrice
  currencyCode
Amount multiplied by markup divided by OrderedQty:
headerTL
  FulfillLineTLVO1
    OrderedQty

Use this code to calculate the value:

nsmpr0:Amount div ../nsmpr0:OrderedQty
HeaderCurrencyUnitPrice
headerTL
  TransactionalCurrencyCode
HeaderCurrencyUnitPrice
  currencyCode
Amount multiplied by markup
ChargeCurrencyExtendedAmount
headerTL
  TransactionalCurrencyCode
ChargeCurrencyExtendedAmount
  currencyCode
Amount multiplied by markup
HeaderCurrencyExtendedAmount
headerTL
  TransactionalCurrencyCode
HeaderCurrencyExtendedAmount
  currencyCode
headerTL
  TransactionalCurrencyCode
HeaderCurrencyCode
QP_NET_PRICE
PriceElementCode
PriceAdjustmentId
SourceChargeId
NET_PRICE
PriceElementUsageCode
AdjustmentName
Explanation
false
RollupFlag
1

You are adding one charge component, so you use a literal value of 1.

SequenceNumber
1

You are adding one charge component, so you use a literal value of 1.

SourceChargeComponentId

markup is conditional. If the value that you need to charge in this attribute equals the shipping cost, then don’t include the markup in the expression.

Map these values for each duplicate FulfillLineOrderChargeComponentSDOTR entity on the fulfillment line.

Request Payload

Response Payload

headerTL
  TransactionalCurrencyCode
ChargeCurrencyCode
Amount multiplied by markup divided by OrderedQty:
headerTL
  FulfillLineTLVO1
    OrderedQty

Use this code to calculate the value:

nsmpr0:Amount div ../nsmpr0:OrderedQty
ChargeCurrencyUnitPrice
headerTL
  TransactionalCurrencyCode
ChargeCurrencyUnitPrice
  currencyCode
Amount multiplied by markup divided by OrderedQty:
headerTL
  FulfillLineTLVO1
    OrderedQty

Use this code to calculate the value:

nsmpr0:Amount div ../nsmpr0:OrderedQty
HeaderCurrencyUnitPrice
headerTL
  TransactionalCurrencyCode
HeaderCurrencyUnitPrice
  currencyCode
Amount multiplied by markup
ChargeCurrencyExtendedAmount
headerTL
  TransactionalCurrencyCode
ChargeCurrencyExtendedAmount
  currencyCode
Amount multiplied by markup
HeaderCurrencyExtendedAmount
headerTL
  TransactionalCurrencyCode
HeaderCurrencyExtendedAmount
  currencyCode
headerTL
  TransactionalCurrencyCode
HeaderCurrencyCode
QP_LIST_PRICE
PriceElementCode
PriceAdjustmentId
SourceChargeId
LIST_PRICE
PriceElementUsageCode
false
RollupFlag
2

You are adding two charge components, so you use a literal value of 2.

SequenceNumber
2

You are adding two charge components, so you use a literal value of 2.

SourceChargeComponentId

Example Response Payload

Here's an example payload for a delayed response. The CostToChargeDelayedResponse.xml file contains this response. Use the FulfillLineOrderChargeSDOTR tag to send back the shipping charges.

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <ns1:FulfillmentRequest xmlns:ns1="http://xmlns.oracle.com/apps/scm/doo/taskLayer/fulfillOrder/DooTaskFulfillOrderResponseInterfaceComposite">
      <ns1:FLine xmlns:ns2="http://xmlns.oracle.com/apps/scm/doo/common/process/model/">
        <ns2:FulfillLineId>300100135839049</ns2:FulfillLineId>
        <ns2:SourceOrderSystem>GPR</ns2:SourceOrderSystem>
        <ns2:Status>COMPLETED</ns2:Status>
        <ns2:TaskType>ConvertCostToCharge</ns2:TaskType>
        <ns2:FulfillLineOrderChargeSDOTR>
          <ns2:ChargeDefinitionCode>QP_SHIP_FREIGHT</ns2:ChargeDefinitionCode>
          <ns2:ChargeSubtypeCode>ORA_PRICE</ns2:ChargeSubtypeCode>
          <ns2:PriceTypeCode>ONE_TIME</ns2:PriceTypeCode>
          <ns2:PricedQuantity>3</ns2:PricedQuantity>
          <ns2:PricedQuantityUOMCode>Ea</ns2:PricedQuantityUOMCode>
          <ns2:PrimaryFlag>true</ns2:PrimaryFlag>
          <!-- This attribute specifies that the charge is a shipping charge: -->
          <ns2:ChargeAppliesTo>SHIPPING</ns2:ChargeAppliesTo>
          <ns2:RollupFlag>false</ns2:RollupFlag>
          <ns2:SourceChargeIdentifier>300100171244129</ns2:SourceChargeIdentifier>
          <ns2:ChargeTypeCode>ORA_SHIPPING_FREIGHT</ns2:ChargeTypeCode>
          <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
          <ns2:SequenceNumber>2</ns2:SequenceNumber>
          <ns2:GsaUnitPrice/>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>15</ns2:HeaderCurrencyExtendedAmount>
            <ns2:PriceElementCode>QP_NET_PRICE</ns2:PriceElementCode>
            <ns2:SequenceNumber>1</ns2:SequenceNumber>
            <ns2:PriceElementUsageCode>NET_PRICE</ns2:PriceElementUsageCode>
            <!-- This attribute specifies the unit net price of the charge in the charge's currency: 
                   It can be same or different than the order header currency. -->       
            <ns2:ChargeCurrencyUnitPrice>5</ns2:ChargeCurrencyUnitPrice>
            <!-- This attribute specifies the per unit net price of the charge in the order header's currency. 
                   It can be the same or different than the charge's currency: -->       
            <ns2:HeaderCurrencyUnitPrice>5</ns2:HeaderCurrencyUnitPrice>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <!-- This attribute identifies the charge for this charge component in the source system:-->
            <ns2:SourceChargeId>300100171244129</ns2:SourceChargeId>
            <!-- This attribute identifies the charge component in the source system: -->
            <ns2:SourceChargeComponentId>1</ns2:SourceChargeComponentId>
            <!-- This attribute specifies the total line amount for the charge component in the charge's currency. 
                                 You must specify the quantity multiplied by the unit price in the charge's currency: -->
            <ns2:ChargeCurrencyExtendedAmount>15</ns2:ChargeCurrencyExtendedAmount>
            <ns2:Explanation>UPS Freight Costs</ns2:Explanation>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>15</ns2:HeaderCurrencyExtendedAmount>
            <ns2:PriceElementCode>QP_LIST_PRICE</ns2:PriceElementCode>
            <ns2:SequenceNumber>2</ns2:SequenceNumber>
            <ns2:PriceElementUsageCode>LIST_PRICE</ns2:PriceElementUsageCode>
            <!-- This attribute specifies the unit net price of the of the charge in the currency in which charge was calculated. 
                   It can be same or different than the order header currency. -->       
            <ns2:ChargeCurrencyUnitPrice>5</ns2:ChargeCurrencyUnitPrice>
            <!-- This attribute specifies the per unit net price of the of the charge in the currency of the order header. 
                   It can be same or different than the charge currency. -->       
            <ns2:HeaderCurrencyUnitPrice>5</ns2:HeaderCurrencyUnitPrice>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <!-- This attribute identifies the charge for this charge component in the source system: -->
            <ns2:SourceChargeId>300100171244129</ns2:SourceChargeId>
            <!-- This attribute identifies the charge component in the source system: -->
            <ns2:SourceChargeComponentId>2</ns2:SourceChargeComponentId>
            <!-- This attribute specifies the total line amount for the charge component in the charge's currency. 
                                 You must specify the quantity multiplied by the unit price in the charge's currency:-->
            <ns2:ChargeCurrencyExtendedAmount>15</ns2:ChargeCurrencyExtendedAmount>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
        </ns2:FulfillLineOrderChargeSDOTR>
        <!-- Here are the existing charges. Don't modify these values:>
        <ns2:FulfillLineOrderChargeSDOTR>
          <ns2:ChargeAppliesTo>PRICE</ns2:ChargeAppliesTo>
          <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
          <ns2:ChargeDefinitionCode>QP_SALE_PRICE</ns2:ChargeDefinitionCode>
          <ns2:ChargeSubtypeCode>ORA_PRICE</ns2:ChargeSubtypeCode>
          <ns2:ChargeTypeCode>ORA_SALE</ns2:ChargeTypeCode>
          <ns2:ParentEntityCode>LINE</ns2:ParentEntityCode>
          <ns2:PricePeriodicityCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          <ns2:PriceTypeCode>ONE_TIME</ns2:PriceTypeCode>
          <ns2:PricedQuantity>3</ns2:PricedQuantity>
          <ns2:PricedQuantityUomCode>Ea</ns2:PricedQuantityUomCode>
          <ns2:PrimaryFlag>true</ns2:PrimaryFlag>
          <ns2:ReferenceOrderChargeId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          <ns2:RollupFlag>false</ns2:RollupFlag>
          <ns2:SequenceNumber>1</ns2:SequenceNumber>
          <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
          <ns2:AvgUnitSellingPrice xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          <ns2:FreightReferenceLineId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          <ns2:CanAdjustFlag>true</ns2:CanAdjustFlag>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>7500</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>2500</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation>Base List Price Applied from Corporate Segment Price List</ns2:Explanation>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>7500</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>2500</ns2:HeaderCurrencyUnitPrice>
            <ns2:PercentOfComparisonElement>1</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_BASE_LIST_PRICE</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:PricingSourceId>300100071623860</ns2:PricingSourceId>
            <ns2:PricingSourceTypeCode>PRICE_LIST_CHARGE</ns2:PricingSourceTypeCode>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1000</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226042</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>7500</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>2500</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>7500</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>2500</ns2:HeaderCurrencyUnitPrice>
            <ns2:PercentOfComparisonElement>1</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_LIST_PRICE</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode>LIST_PRICE</ns2:PriceElementUsageCode>
            <ns2:PricingSourceId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:PricingSourceTypeCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ReferenceOrderChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1001</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226043</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>-30</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>-10</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation>Manual Discount of 10USD for reason code Price match</ns2:Explanation>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>-30</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>-10</ns2:HeaderCurrencyUnitPrice>
            <ns2:PercentOfComparisonElement>-0.004</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_CUSTOM_ADJUSTMENT</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode>PRICE_ADJUSTMENT</ns2:PriceElementUsageCode>
            <ns2:PricingSourceId>300100171226062</ns2:PricingSourceId>
            <ns2:PricingSourceTypeCode>MANUAL_ADJUSTMENT</ns2:PricingSourceTypeCode>
            <ns2:ReferenceOrderChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1002</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226064</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>-33</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>-11</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation>Manual Discount of 11USD for reason code Error correction</ns2:Explanation>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>-33</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>-11</ns2:HeaderCurrencyUnitPrice>
            <ns2:ModifiedFlag>N</ns2:ModifiedFlag>
            <ns2:PercentOfComparisonElement>-0.0044</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_CUSTOM_ADJUSTMENT</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode>PRICE_ADJUSTMENT</ns2:PriceElementUsageCode>
            <ns2:PricingSourceId>300100171226080</ns2:PricingSourceId>
            <ns2:PricingSourceTypeCode>MANUAL_ADJUSTMENT</ns2:PricingSourceTypeCode>
            <ns2:ReferenceOrderChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1003</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226082</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>-7.5</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>-2.5</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation>Manual Discount of 0.1% on price element List Price for reason code Sales negotiation</ns2:Explanation>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>-7.5</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>-2.5</ns2:HeaderCurrencyUnitPrice>
            <ns2:PercentOfComparisonElement>-0.001</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_CUSTOM_ADJUSTMENT</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode>PRICE_ADJUSTMENT</ns2:PriceElementUsageCode>
            <ns2:PricingSourceId>300100171226101</ns2:PricingSourceId>
            <ns2:PricingSourceTypeCode>MANUAL_ADJUSTMENT</ns2:PricingSourceTypeCode>
            <ns2:ReferenceOrderChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1004</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226103</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>7429.5</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>2476.5</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>7429.5</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>2476.5</ns2:HeaderCurrencyUnitPrice>
            <ns2:PercentOfComparisonElement>0.9906</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_NET_PRICE</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode>NET_PRICE</ns2:PriceElementUsageCode>
            <ns2:PricingSourceId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:PricingSourceTypeCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ReferenceOrderChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1005</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226044</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>1485.9</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>495.3</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation>Exclusive Tax ( 20%)</ns2:Explanation>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>1485.9</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>495.3</ns2:HeaderCurrencyUnitPrice>
            <ns2:PercentOfComparisonElement>0.19812</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_EXCLUSIVE_TAX</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode>EXCLUSIVE_TAX</ns2:PriceElementUsageCode>
            <ns2:PricingSourceId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:PricingSourceTypeCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ReferenceOrderChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1015</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226200</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>8915.4</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>2971.8</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>8915.4</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>2971.8</ns2:HeaderCurrencyUnitPrice>
            <ns2:PercentOfComparisonElement>1.18872</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_NET_PRICE_PLUS_TAX</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode>NET_PRICE_PLUS_TAX</ns2:PriceElementUsageCode>
            <ns2:PricingSourceId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:PricingSourceTypeCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ReferenceOrderChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1016</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226201</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
          <ns2:FulfillLineOrderChargeComponentSDOTR>
            <ns2:ChargeCurrencyCode>USD</ns2:ChargeCurrencyCode>
            <ns2:ChargeCurrencyExtendedAmount>7429.5</ns2:ChargeCurrencyExtendedAmount>
            <ns2:ChargeCurrencyUnitPrice>2476.5</ns2:ChargeCurrencyUnitPrice>
            <ns2:Explanation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ExplanationMessageName xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:HeaderCurrencyCode>USD</ns2:HeaderCurrencyCode>
            <ns2:HeaderCurrencyExtendedAmount>7429.5</ns2:HeaderCurrencyExtendedAmount>
            <ns2:HeaderCurrencyUnitPrice>2476.5</ns2:HeaderCurrencyUnitPrice>
            <ns2:PercentOfComparisonElement>0.9906</ns2:PercentOfComparisonElement>
            <ns2:PriceElementCode>QP_MARGIN</ns2:PriceElementCode>
            <ns2:PriceElementUsageCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:PricingSourceId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:PricingSourceTypeCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:ReferenceOrderChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
            <ns2:RollupFlag>false</ns2:RollupFlag>
            <ns2:SequenceNumber>1017</ns2:SequenceNumber>
            <ns2:SourceChargeComponentId>300100171226045</ns2:SourceChargeComponentId>
            <ns2:SourceChargeId>300100171226040</ns2:SourceChargeId>
            <ns2:SourceParentChargeCompId xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/>
          </ns2:FulfillLineOrderChargeComponentSDOTR>
        </ns2:FulfillLineOrderChargeSDOTR>
      </ns1:FLine>
    </ns1:FulfillmentRequest>
  </soap:Body>
</soap:Envelope>