Now we can switch to the execution mode and proceed with sales order creation
Sales order
Please note that after I created a new sales order address has been propagated properly on sales order based on customer master setup
Sales order - Lines
I'll do inventory reservation before I release work to warehouse
Reservation
Sales order
From sales order I can now execute Rate route workbench directly. This way all the necessary data will be defaulted into Rate route workbench from sales order
Rate route workbench
The result I observe here will be exactly the same comparing to the one we saw when testing. After I feel comfortable about suggested transportation option I can assign this Route with Rate to my sales order
Infolog
Mode of delivery has been properly assigned to sales order line
Sales order Line - Details
Now as I have planned transportation for sales order I'm ready to execute warehouse work to get products out of the warehouse, that's why I'll release work to the warehouse now
Sales order
Note: Please don't forget to specify street in your addresses (From, To) in order to avoid exception upon Release work to warehouse
Infolog
When my work has been successfully released to the warehouse the system also created associated picking wave and shipment
Infolog
This is how associated Shipment looks like
Shipment
This is how associated Load looks like
Load
This is how generated work looks like
Work
This is how associated picking wave looks like
Wave
You can also review the load on Load planning workbench
Load planning workbench
We know that the work has been already released to warehouse, so we can execute the work now
Scanner interface - Login
Scanner interface - Menu
I enabled only one menu item for sales picking for simplicity
Scanner interface – User directed
We'll start with scanning WorkID to begin work execution
Scanner interface – User directed
Based on earlier Location directive setup we'll be picking from "LPBULK" location. Please note that I assume you have enough on-hand in that location, also otherwise you would not be able to reserve inventory before releasing work to warehouse for picking
Scanner interface – User directed
Please note that initially I did have enough on-hand in "LPBULK" location on License Plate "1"
Scanner interface – User directed
Scanner interface – User directed
I'll move products to "LPSTAGE" location for loading onto the truck. For simplicity I'll only do sales picking using scanner
Scanner interface – User directed
Then I complete the work
Scanner interface – User directed
Now I can review that work status changed to Closed
Work
And associated inventory transactions changed status to "Picked"
Inventory transactions
Now we'll back to sales order
Sales order
This is how planned transportation charges looked like
Rate route workbench
Rate route workbench – Route Results
Rate route workbench – Segments (Segments)
Rate route workbench – Segments (Details)
Please also note that I could have assigned rate and route automatically by pressing "Route with rate" button. In my case the result would be the same because I only set up one transportation option
Infolog
You can also review the route itself
Route
Route – Segment
Route – Segment info
Route - Load
Route - Shipment
On Route rate details screen we can explicitly see the rate (transportation charge)
Route rate details
Now when we reviewed necessary info we can go ahead and confirm outbound shipment which will transfer associated transportation charges onto sales order (apportion them into sales order lines) in form of miscellaneous charges
Load details – Confirm Outbound shipment
Confirm Outbound shipment - Infolog
At this point I can expect miscellaneous charges for transportation charges to appear against appropriate sales order line(s). In fact I will stop for a bit to review what takes place behind the scenes. The question I would logically have in order to understand the process completely: How [transportation charge]-related miscellaneous charge gets created? Assuming that you have proper setup miscellaneous charge will be created and then updated (with exact amount based on results of apportionment) upon outbound shipment confirmation
In Microsoft Dynamics AX 2012 R3 TMS you can also review TMS transactions taking place behind the scenes. Thus route confirmation steps are takes in  \Data Dictionary\Tables\TMSRoute\Methods\routeConfirmation method. Here's how messages related to route confirmation looks like
Request
<?xml version="1.0" encoding="utf-8"?><Transaction><Type>CONFIRMATION</Type><DataArea>alex</DataArea><DlvTerm>DEF</DlvTerm><CarrierCode>Contoso</CarrierCode><CarrierServiceCode>STD</CarrierServiceCode><CarrierGroupCode></CarrierGroupCode><InventSiteId>1</InventSiteId><InventLocationId>11</InventLocationId><ThirdPartyAccount></ThirdPartyAccount><ModeCode></ModeCode><BaseCurrency></BaseCurrency><DefaultDimension><BusinessUnit></BusinessUnit><CostCenter></CostCenter><Department></Department><ItemGroup></ItemGroup><Project></Project></DefaultDimension><ModuleType>Cust</ModuleType><Accounts><CustomerCode>Client</CustomerCode><CustomerGroup>10</CustomerGroup><CustomerInvoiceCode>Client</CustomerInvoiceCode><VendorCode></VendorCode><VendorGroup></VendorGroup><VendorInvoiceCode></VendorInvoiceCode></Accounts><Request><ShippingEntity><Type>SHIPMENT</Type><RouteGuideName></RouteGuideName><RoutePlanName></RoutePlanName><RouteConfigurationCode></RouteConfigurationCode><Sequence>1</Sequence><RECORDTYPE>Load</RECORDTYPE><LoadId>ALEX-000011</LoadId><ShipmentId>ALEX-000003</ShipmentId><Direction>Outbound</Direction><OrderNumber>ALEX-000013</OrderNumber><OrderCurrency>USD</OrderCurrency><LoadTemplate></LoadTemplate><TransportationTemplate></TransportationTemplate><Customer><Name>Client</Name><Address>One Microsoft Way</Address><City>Alpharetta</City><State>GA</State><PostalCode>30009</PostalCode><CountryRegion>USA</CountryRegion><County>FULTON</County><CountryRegionISOCode>US</CountryRegionISOCode><PhoneNumber></PhoneNumber><Residential>No</Residential></Customer><ResponsibleForPayment>Company</ResponsibleForPayment><VendorCode></VendorCode><VendorInvoiceCode></VendorInvoiceCode><PickUp><Name>11 - Warehouse 11</Name><Address>One Microsoft Way</Address><City>Redmond</City><State>WA</State><PostalCode>98052</PostalCode><CountryRegion>USA</CountryRegion><County>KING</County><CountryRegionISOCode>US</CountryRegionISOCode><PhoneNumber></PhoneNumber><Residential>No</Residential><ResponsibleForPayment>Company</ResponsibleForPayment><VendorCode></VendorCode><VendorInvoiceCode></VendorInvoiceCode></PickUp><DropOff><Name>Microsoft</Name><Address>One Microsoft Way</Address><City>Alpharetta</City><State>GA</State><PostalCode>30009</PostalCode><CountryRegion>USA</CountryRegion><County>FULTON</County><CountryRegionISOCode>US</CountryRegionISOCode><PhoneNumber></PhoneNumber><Residential>No</Residential><ResponsibleForPayment>Company</ResponsibleForPayment><VendorCode></VendorCode><VendorInvoiceCode></VendorInvoiceCode></DropOff><Weight>1.00</Weight><Volume>0.00</Volume><STCC></STCC><DeliveryDate>06/20/2015 06:59:59</DeliveryDate><ShipDate>06/13/2015 01:14:33</ShipDate><DlvTerm>DEF</DlvTerm><EquipmentCode></EquipmentCode><Value>100000.00</Value><DirectDelivery>false</DirectDelivery><ShippingEntity><Type>LINE</Type><ItemId>ProductWHS</ItemId><Qty>1.00</Qty><Weight>1.00</Weight><STCC></STCC><Harmonized></Harmonized><Volume>0.00</Volume><Value>100000.00</Value><TMSFilterCode1></TMSFilterCode1><TMSFilterCode2></TMSFilterCode2><TMSFilterCode3></TMSFilterCode3><TMSFilterCode4></TMSFilterCode4><InventTransId>ALEX-000053</InventTransId><RecId>5637146097</RecId><PackQty>1.00</PackQty></ShippingEntity><DeliveryAccessorials /><RatingEntities><RatingEntity><CarrierCode>Contoso</CarrierCode><CarrierServiceCode>STD</CarrierServiceCode><MethodCode>Ground</MethodCode><ModeCode>Ground</ModeCode><Rate><RateType>2</RateType><Code>P2PMileageBase</Code><Level>Shipment</Level><TotalRate>5000.00</TotalRate><ShipperRate>5000.00</ShipperRate><CustomerRate>5000.00</CustomerRate><CurrencyCode>USD</CurrencyCode><UnitRate>5000.00</UnitRate><Units>1</Units><User>No</User></Rate></RatingEntity></RatingEntities></ShippingEntity></Request></Transaction>
 
Response
<Transaction>
  <Type>CONFIRMATION</Type>
  <DataArea>alex</DataArea>
  <DlvTerm>DEF</DlvTerm>
  <CarrierCode>Contoso</CarrierCode>
  <CarrierServiceCode>STD</CarrierServiceCode>
  <CarrierGroupCode></CarrierGroupCode>
  <InventSiteId>1</InventSiteId>
  <InventLocationId>11</InventLocationId>
  <ThirdPartyAccount></ThirdPartyAccount>
  <ModeCode></ModeCode>
  <BaseCurrency></BaseCurrency>
  <DefaultDimension>
    <BusinessUnit></BusinessUnit>
    <CostCenter></CostCenter>
    <Department></Department>
    <ItemGroup></ItemGroup>
    <Project></Project>
  </DefaultDimension>
  <ModuleType>Cust</ModuleType>
  <Accounts>
    <CustomerCode>Client</CustomerCode>
    <CustomerGroup>10</CustomerGroup>
    <CustomerInvoiceCode>Client</CustomerInvoiceCode>
    <VendorCode></VendorCode>
    <VendorGroup></VendorGroup>
    <VendorInvoiceCode></VendorInvoiceCode>
  </Accounts>
  <Request>
    <ShippingEntity>
      <Type>ROUTE</Type>
      <ShippingEntity>
        <Type>SHIPMENT</Type>
        <RouteGuideName></RouteGuideName>
        <RoutePlanName></RoutePlanName>
        <RouteConfigurationCode></RouteConfigurationCode>
        <Sequence>1</Sequence>
        <RECORDTYPE>Load</RECORDTYPE>
        <LoadId>ALEX-000011</LoadId>
        <ShipmentId>ALEX-000003</ShipmentId>
        <Direction>Outbound</Direction>
        <OrderNumber>ALEX-000013</OrderNumber>
        <OrderCurrency>USD</OrderCurrency>
        <LoadTemplate></LoadTemplate>
        <TransportationTemplate></TransportationTemplate>
        <Customer>
          <Name>Client</Name>
          <Address>One Microsoft Way</Address>
          <City>Alpharetta</City>
          <State>GA</State>
          <PostalCode>30009</PostalCode>
          <CountryRegion>USA</CountryRegion>
          <County>FULTON</County>
          <CountryRegionISOCode>US</CountryRegionISOCode>
          <PhoneNumber></PhoneNumber>
          <Residential>No</Residential>
        </Customer>
        <ResponsibleForPayment>Company</ResponsibleForPayment>
        <VendorCode></VendorCode>
        <VendorInvoiceCode></VendorInvoiceCode>
        <PickUp>
          <Name>11 - Warehouse 11</Name>
          <Address>One Microsoft Way</Address>
          <City>Redmond</City>
          <State>WA</State>
          <PostalCode>98052</PostalCode>
          <CountryRegion>USA</CountryRegion>
          <County>KING</County>
          <CountryRegionISOCode>US</CountryRegionISOCode>
          <PhoneNumber></PhoneNumber>
          <Residential>No</Residential>
          <ResponsibleForPayment>Company</ResponsibleForPayment>
          <VendorCode></VendorCode>
          <VendorInvoiceCode></VendorInvoiceCode>
        </PickUp>
        <DropOff>
          <Name>Microsoft</Name>
          <Address>One Microsoft Way</Address>
          <City>Alpharetta</City>
          <State>GA</State>
          <PostalCode>30009</PostalCode>
          <CountryRegion>USA</CountryRegion>
          <County>FULTON</County>
          <CountryRegionISOCode>US</CountryRegionISOCode>
          <PhoneNumber></PhoneNumber>
          <Residential>No</Residential>
          <ResponsibleForPayment>Company</ResponsibleForPayment>
          <VendorCode></VendorCode>
          <VendorInvoiceCode></VendorInvoiceCode>
          <Mileage>
            <MileageEngineCode>P2P</MileageEngineCode>
            <Miles>500</Miles>
          </Mileage>
          <ZoneMasters />
        </DropOff>
        <Weight>1.00</Weight>
        <Volume>0.00</Volume>
        <STCC></STCC>
        <DeliveryDate>06/20/2015 06:59:59</DeliveryDate>
        <ShipDate>06/13/2015 01:14:33</ShipDate>
        <DlvTerm>DEF</DlvTerm>
        <EquipmentCode></EquipmentCode>
        <Value>100000.00</Value>
        <DirectDelivery>false</DirectDelivery>
        <ShippingEntity>
          <Type>LINE</Type>
          <ItemId>ProductWHS</ItemId>
          <Qty>1.00</Qty>
          <Weight>1.00</Weight>
          <STCC></STCC>
          <Harmonized></Harmonized>
          <Volume>0.00</Volume>
          <Value>100000.00</Value>
          <TMSFilterCode1></TMSFilterCode1>
          <TMSFilterCode2></TMSFilterCode2>
          <TMSFilterCode3></TMSFilterCode3>
          <TMSFilterCode4></TMSFilterCode4>
          <InventTransId>ALEX-000053</InventTransId>
          <RecId>5637146097</RecId>
          <PackQty>1.00</PackQty>
        </ShippingEntity>
        <DeliveryAccessorials />
        <RatingEntities>
          <RatingEntity>
            <CarrierCode>Contoso</CarrierCode>
            <CarrierServiceCode>STD</CarrierServiceCode>
            <MethodCode>Ground</MethodCode>
            <ModeCode>Ground</ModeCode>
            <TotalRate>5000</TotalRate>
            <Rate>
              <RateType>0</RateType>
              <TotalRate>5000</TotalRate>
              <Units>500</Units>
              <UnitRate>10</UnitRate>
              <Code>P2PMileageBase</Code>
              <BillingGroupID></BillingGroupID>
              <ExternalCode></ExternalCode>
              <CurrencyCode>USD</CurrencyCode>
              <ObjectID></ObjectID>
              <CustomerRate>5000</CustomerRate>
              <ShipperRate>5000</ShipperRate>
            </Rate>
            <CurrencyCode>USD</CurrencyCode>
            <TransitTime>
              <TransitTimeEngineCode>PointToPoint</TransitTimeEngineCode>
              <TransitDays>7</TransitDays>
            </TransitTime>
          </RatingEntity>
        </RatingEntities>
      </ShippingEntity>
    </ShippingEntity>
  </Request>
</Transaction>
 
Then when the system runs apportionment in \Classes\TMSProcessXML_Base\runApportionment method here's how apportionment related messages look like
Request
<Transaction><Type>APPORTIONMENT</Type><DataArea>alex</DataArea><DlvTerm>DEF</DlvTerm><CarrierCode>Contoso</CarrierCode><CarrierServiceCode>STD</CarrierServiceCode><CarrierGroupCode></CarrierGroupCode><InventSiteId>1</InventSiteId><InventLocationId>11</InventLocationId><ThirdPartyAccount></ThirdPartyAccount><ModeCode></ModeCode><BaseCurrency></BaseCurrency><DefaultDimension><BusinessUnit></BusinessUnit><CostCenter></CostCenter><Department></Department><ItemGroup></ItemGroup><Project></Project></DefaultDimension><ModuleType>Cust</ModuleType><Accounts><CustomerCode>Client</CustomerCode><CustomerGroup>10</CustomerGroup><CustomerInvoiceCode>Client</CustomerInvoiceCode><VendorCode></VendorCode><VendorGroup></VendorGroup><VendorInvoiceCode></VendorInvoiceCode></Accounts><Request><ShippingEntity><Type>ROUTE</Type><ShippingEntity><Type>SHIPMENT</Type><RouteGuideName></RouteGuideName><RoutePlanName></RoutePlanName><RouteConfigurationCode></RouteConfigurationCode><Sequence>1</Sequence><RECORDTYPE>Load</RECORDTYPE><LoadId>ALEX-000011</LoadId><ShipmentId>ALEX-000003</ShipmentId><Direction>Outbound</Direction><OrderNumber>ALEX-000013</OrderNumber><OrderCurrency>USD</OrderCurrency><LoadTemplate></LoadTemplate><TransportationTemplate></TransportationTemplate><Customer><Name>Client</Name><Address>One Microsoft Way</Address><City>Alpharetta</City><State>GA</State><PostalCode>30009</PostalCode><CountryRegion>USA</CountryRegion><County>FULTON</County><CountryRegionISOCode>US</CountryRegionISOCode><PhoneNumber></PhoneNumber><Residential>No</Residential></Customer><ResponsibleForPayment>Company</ResponsibleForPayment><VendorCode></VendorCode><VendorInvoiceCode></VendorInvoiceCode><PickUp><Name>11 - Warehouse 11</Name><Address>One Microsoft Way</Address><City>Redmond</City><State>WA</State><PostalCode>98052</PostalCode><CountryRegion>USA</CountryRegion><County>KING</County><CountryRegionISOCode>US</CountryRegionISOCode><PhoneNumber></PhoneNumber><Residential>No</Residential><ResponsibleForPayment>Company</ResponsibleForPayment><VendorCode></VendorCode><VendorInvoiceCode></VendorInvoiceCode></PickUp><DropOff><Name>Microsoft</Name><Address>One Microsoft Way</Address><City>Alpharetta</City><State>GA</State><PostalCode>30009</PostalCode><CountryRegion>USA</CountryRegion><County>FULTON</County><CountryRegionISOCode>US</CountryRegionISOCode><PhoneNumber></PhoneNumber><Residential>No</Residential><ResponsibleForPayment>Company</ResponsibleForPayment><VendorCode></VendorCode><VendorInvoiceCode></VendorInvoiceCode><Mileage><MileageEngineCode>P2P</MileageEngineCode><Miles>500</Miles></Mileage><ZoneMasters /></DropOff><Weight>1.00</Weight><Volume>0.00</Volume><STCC></STCC><DeliveryDate>06/20/2015 06:59:59</DeliveryDate><ShipDate>06/13/2015 01:14:33</ShipDate><DlvTerm>DEF</DlvTerm><EquipmentCode></EquipmentCode><Value>100000.00</Value><DirectDelivery>false</DirectDelivery><ShippingEntity><Type>LINE</Type><ItemId>ProductWHS</ItemId><Qty>1.00</Qty><Weight>1.00</Weight><STCC></STCC><Harmonized></Harmonized><Volume>0.00</Volume><Value>100000.00</Value><TMSFilterCode1></TMSFilterCode1><TMSFilterCode2></TMSFilterCode2><TMSFilterCode3></TMSFilterCode3><TMSFilterCode4></TMSFilterCode4><InventTransId>ALEX-000053</InventTransId><RecId>5637146097</RecId><PackQty>1.00</PackQty></ShippingEntity><DeliveryAccessorials /><RatingEntities><RatingEntity><CarrierCode>Contoso</CarrierCode><CarrierServiceCode>STD</CarrierServiceCode><MethodCode>Ground</MethodCode><ModeCode>Ground</ModeCode><TotalRate>5000</TotalRate><Rate><RateType>0</RateType><TotalRate>5000</TotalRate><Units>500</Units><UnitRate>10</UnitRate><Code>P2PMileageBase</Code><BillingGroupID></BillingGroupID><ExternalCode></ExternalCode><CurrencyCode>USD</CurrencyCode><ObjectID>5637144598</ObjectID><CustomerRate>5000</CustomerRate><ShipperRate>5000</ShipperRate></Rate><CurrencyCode>USD</CurrencyCode><TransitTime><TransitTimeEngineCode>PointToPoint</TransitTimeEngineCode><TransitDays>7</TransitDays></TransitTime></RatingEntity></RatingEntities></ShippingEntity></ShippingEntity></Request></Transaction>
 
Response
<Transaction>
  <Type>APPORTIONMENT</Type>
  <DataArea>alex</DataArea>
  <DlvTerm>DEF</DlvTerm>
  <CarrierCode>Contoso</CarrierCode>
  <CarrierServiceCode>STD</CarrierServiceCode>
  <CarrierGroupCode></CarrierGroupCode>
  <InventSiteId>1</InventSiteId>
  <InventLocationId>11</InventLocationId>
  <ThirdPartyAccount></ThirdPartyAccount>
  <ModeCode></ModeCode>
  <BaseCurrency></BaseCurrency>
  <DefaultDimension>
    <BusinessUnit></BusinessUnit>
    <CostCenter></CostCenter>
    <Department></Department>
    <ItemGroup></ItemGroup>
    <Project></Project>
  </DefaultDimension>
  <ModuleType>Cust</ModuleType>
  <Accounts>
    <CustomerCode>Client</CustomerCode>
    <CustomerGroup>10</CustomerGroup>
    <CustomerInvoiceCode>Client</CustomerInvoiceCode>
    <VendorCode></VendorCode>
    <VendorGroup></VendorGroup>
    <VendorInvoiceCode></VendorInvoiceCode>
  </Accounts>
  <Request>
    <ShippingEntity>
      <Type>ROUTE</Type>
      <ShippingEntity>
        <Type>SHIPMENT</Type>
        <RouteGuideName></RouteGuideName>
        <RoutePlanName></RoutePlanName>
        <RouteConfigurationCode></RouteConfigurationCode>
        <Sequence>1</Sequence>
        <RECORDTYPE>Load</RECORDTYPE>
        <LoadId>ALEX-000011</LoadId>
        <ShipmentId>ALEX-000003</ShipmentId>
        <Direction>Outbound</Direction>
        <OrderNumber>ALEX-000013</OrderNumber>
        <OrderCurrency>USD</OrderCurrency>
        <LoadTemplate></LoadTemplate>
        <TransportationTemplate></TransportationTemplate>
        <Customer>
          <Name>Client</Name>
          <Address>One Microsoft Way</Address>
          <City>Alpharetta</City>
          <State>GA</State>
          <PostalCode>30009</PostalCode>
          <CountryRegion>USA</CountryRegion>
          <County>FULTON</County>
          <CountryRegionISOCode>US</CountryRegionISOCode>
          <PhoneNumber></PhoneNumber>
          <Residential>No</Residential>
        </Customer>
        <ResponsibleForPayment>Company</ResponsibleForPayment>
        <VendorCode></VendorCode>
        <VendorInvoiceCode></VendorInvoiceCode>
        <PickUp>
          <Name>11 - Warehouse 11</Name>
          <Address>One Microsoft Way</Address>
          <City>Redmond</City>
          <State>WA</State>
          <PostalCode>98052</PostalCode>
          <CountryRegion>USA</CountryRegion>
          <County>KING</County>
          <CountryRegionISOCode>US</CountryRegionISOCode>
          <PhoneNumber></PhoneNumber>
          <Residential>No</Residential>
          <ResponsibleForPayment>Company</ResponsibleForPayment>
          <VendorCode></VendorCode>
          <VendorInvoiceCode></VendorInvoiceCode>
        </PickUp>
        <DropOff>
          <Name>Microsoft</Name>
          <Address>One Microsoft Way</Address>
          <City>Alpharetta</City>
          <State>GA</State>
          <PostalCode>30009</PostalCode>
          <CountryRegion>USA</CountryRegion>
          <County>FULTON</County>
          <CountryRegionISOCode>US</CountryRegionISOCode>
          <PhoneNumber></PhoneNumber>
          <Residential>No</Residential>
          <ResponsibleForPayment>Company</ResponsibleForPayment>
          <VendorCode></VendorCode>
          <VendorInvoiceCode></VendorInvoiceCode>
          <Mileage>
            <MileageEngineCode>P2P</MileageEngineCode>
            <Miles>500</Miles>
          </Mileage>
          <ZoneMasters />
        </DropOff>
        <Weight>1.00</Weight>
        <Volume>0.00</Volume>
        <STCC></STCC>
        <DeliveryDate>06/20/2015 06:59:59</DeliveryDate>
        <ShipDate>06/13/2015 01:14:33</ShipDate>
        <DlvTerm>DEF</DlvTerm>
        <EquipmentCode></EquipmentCode>
        <Value>100000.00</Value>
        <DirectDelivery>false</DirectDelivery>
        <ShippingEntity>
          <Type>LINE</Type>
          <ItemId>ProductWHS</ItemId>
          <Qty>1.00</Qty>
          <Weight>1.00</Weight>
          <STCC></STCC>
          <Harmonized></Harmonized>
          <Volume>0.00</Volume>
          <Value>100000.00</Value>
          <TMSFilterCode1></TMSFilterCode1>
          <TMSFilterCode2></TMSFilterCode2>
          <TMSFilterCode3></TMSFilterCode3>
          <TMSFilterCode4></TMSFilterCode4>
          <InventTransId>ALEX-000053</InventTransId>
          <RecId>5637146097</RecId>
          <PackQty>1.00</PackQty>
          <Apportionment>
            <Rate>
              <TotalRate>5000</TotalRate>
              <CurrencyCode>USD</CurrencyCode>
              <RateType>0</RateType>
              <ChargeCode>DEF</ChargeCode>
              <ModuleType>Cust</ModuleType>
              <ChargeType>None</ChargeType>
              <Code>P2PMileageBase</Code>
              <ObjectID>5637144598</ObjectID>
            </Rate>
          </Apportionment>
        </ShippingEntity>
        <DeliveryAccessorials />
        <RatingEntities>
          <RatingEntity>
            <CarrierCode>Contoso</CarrierCode>
            <CarrierServiceCode>STD</CarrierServiceCode>
            <MethodCode>Ground</MethodCode>
            <ModeCode>Ground</ModeCode>
            <TotalRate>5000</TotalRate>
            <Rate>
              <RateType>0</RateType>
              <TotalRate>5000</TotalRate>
              <Units>500</Units>
              <UnitRate>10</UnitRate>
              <Code>P2PMileageBase</Code>
              <BillingGroupID></BillingGroupID>
              <ExternalCode></ExternalCode>
              <CurrencyCode>USD</CurrencyCode>
              <ObjectID>5637144598</ObjectID>
              <CustomerRate>5000</CustomerRate>
              <ShipperRate>5000</ShipperRate>
            </Rate>
            <CurrencyCode>USD</CurrencyCode>
            <TransitTime>
              <TransitTimeEngineCode>PointToPoint</TransitTimeEngineCode>
              <TransitDays>7</TransitDays>
            </TransitTime>
          </RatingEntity>
        </RatingEntities>
      </ShippingEntity>
    </ShippingEntity>
  </Request>
</Transaction>
 
Our goal is that in \Classes\TMSProcessXML_Base\readAppSalesLine method the system should be able to successfully retrieve appNode element which ideally would look like this
<Apportionment><Rate><TotalRate>5000</TotalRate><CurrencyCode>USD</CurrencyCode><RateType>0</RateType><ChargeCode>DEF</ChargeCode><ModuleType>Cust</ModuleType><ChargeType>None</ChargeType><Code>P2PMileageBase</Code><ObjectID>5637144598</ObjectID></Rate></Apportionment>
 
Subsequently miscellaneous charges for sales order will be calculated in \Classes\TMSRateRoute\calcMiscChargesSOLoad method based on results of apportionment
TMSApportionedValue
Then miscellaneous charge(s) will be available on sales order line level as shown below
Charges transactions
And this is how TMS transactions log looks like. You may review it to better understand what takes place when certain function will be executed, it is also handy for troubleshooting purposes
TMSTransaction
The last thing I want to mention is Freight bill details generated as shown below
Freight bill details
Freight bill details - Rate
After you have Freight bill details you an then compare it with the actual invoice for mathing purposes
This concludes the end-to-end scenario in this walkthrough