Monday, June 15, 2015

Microsoft Dynamics AX 2012 R3 – WMS/TMS scenario - Part 3 (WMS/TMS Execution)

 
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