giovedì 26 luglio 2018

D365 - Inventory movement using a template

In D365 we can generate an inventory movement applying a work template and a location directive that can suggest the final location for the movement.

In order to do it we have to define a specific menuitem in the terminal warehouse as follows.


We should define the following parameters:
  • work creation process defined as "Movement by template"
  • in the field work template we can specify the work template that will we used in the generation of the works.
The work template can be defined at the path warehouse management - setup - work - work template.



When we transfer the materials the system will show us to which location we have to move items, as reported below.



Clicking OK the movement is performed.
 

AX 2012 - D365FO - Recuperare la risorsa collegata alla fase

Con questo job possiamo recuperare la risorsa primaria collegata alla fase:



partendo da prodRoute:

 public static WrkCtrId getWrkCtrId(ProdRoute _prodRoute)  
   {  
     RecId              recId;  
     WrkCtrId            wrkCtrGrpId;  
     ProdId             prodId;  
     WrkCtrActivityRequirementType  relationShipType;  
     WrkCtrActivityRequirement    wrkCtrActivityRequirement;  
       
       recId = _prodRoute.activityRequirementSet().RecId;  
   
       select WrkCtrActivityRequirement  
         where WrkCtrActivityRequirement.ActivityRequirementSet == recid;  
   
       if(WrkCtrActivityRequirement)  
       {  
         wrkCtrGrpId = WrkCtrActivityRequirement.requirementEdit();  
       }  
       
       return wrkCtrGrpId;  
   }  

oppure partendo da routeOpr:

 static WrkCtrActivityRequirementEdit getWrkCtrActivityRequirementEdit(RouteOpr _routeOpr)  
   {  
     wrkCtrActivityRequirement    wrkCtrActivityRequirement;  
     WrkCtrActivityRequirementEdit  WrkCtrActivityRequirementEdit;  
   
     select firstonly wrkCtrActivityRequirement  
       where wrkCtrActivityRequirement.ActivityRequirementSet == _routeOpr.activityRequirementSet().RecId;  
   
     if(wrkCtrActivityRequirement)  
     {  
       wrkCtrActivityRequirementEdit = wrkCtrActivityRequirement.requirementEdit();  
     }  
   
     return wrkCtrActivityRequirementEdit;  
   }  

sabato 21 luglio 2018

D365 Process Inbound ASN


We create two purchase orders having the following structure:

 

  • Purchase order: 00000375 -- Vendor: 1001 - Acme Office Supplies
    • Itemid: A0001, Quantity: 100 pcs
  • Purchase order: 00000348 -- Vendor: 1001 - Acme Office Supplies
    • Itemid: A0001, Quantity: 600 pcs
    • Itemid: P0004, Quantity: 300 ea, Batch: BN0001

 

We import the following file into AX in order to populate the ASN Inbound tables.

 

<?xml version="1.0" encoding="utf-8"?>

<Document>

  <WHSInboundLoadHeaderEntity TractorNumber="0000101">

    <WHSInboundShipmentHeaderEntity VendorShipmentId="VendASN_01" VendorAddressCountryRegionId = "USA" VendorAddressStreet = "123 Coffee Street" VendorAddressStateId = "WA" VendorAddressCity = "Redmond" VendorAddressZipCode = "98052">

      <WHSInboundLoadPackingStructureEntity LICENSEPLATENUMBER="LP_ASN_001">

        <WHSInboundLoadPackingStructureLineEntity PURCHASEORDERNUMBER="00000347" ITEMNUMBER="A0001" QUANTITY="100" UNITSYMBOL="pcs" />

      </WHSInboundLoadPackingStructureEntity>

    </WHSInboundShipmentHeaderEntity>

    <WHSInboundShipmentHeaderEntity VendorShipmentId="VendASN_02" VendorAddressCountryRegionId = "USA" VendorAddressStreet = "123 Coffee Street" VendorAddressStateId = "WA" VendorAddressCity = "Redmond" VendorAddressZipCode = "98052">

      <WHSInboundLoadPackingStructureEntity LICENSEPLATENUMBER="LP_ASN_001">

        <WHSInboundLoadPackingStructureLineEntity PURCHASEORDERNUMBER="00000348" ITEMNUMBER="A0001" QUANTITY="200" UNITSYMBOL="pcs"  />

        <WHSInboundLoadPackingStructureLineEntity PURCHASEORDERNUMBER="00000348" ITEMNUMBER="P0004" QUANTITY="300" UNITSYMBOL="ea" ITEMBATCHNUMBER="BN0001" />

      </WHSInboundLoadPackingStructureEntity>

      <WHSInboundLoadPackingStructureEntity LICENSEPLATENUMBER="LP_ASN_002">

        <WHSInboundLoadPackingStructureCaseEntity LICENSEPLATENUMBER="LP_ASN_002_C01">

          <WHSInboundLoadPackingStructureCaseLineEntity PURCHASEORDERNUMBER="00000348" ITEMNUMBER="A0001" QUANTITY="400" UNITSYMBOL="ea"  />

        </WHSInboundLoadPackingStructureCaseEntity>

      </WHSInboundLoadPackingStructureEntity>

    </WHSInboundShipmentHeaderEntity>

  </WHSInboundLoadHeaderEntity>

</Document>

 

We use the data entity "Inbound ASN" of type "XML-Attribute".



Once we import the xml file automatically the system will generate LOAD and SHIPMENTS according to the purchase orders previously created (as reported below).

 

In the meanwhile AX has also generated the packing structure related to the specific load that is visible clicking on the button "Packing structure".



Once we have followed the whole process above we can start to manage the item arrivals using the WHS terminal. In order to do it we have used the function "Mixed license plate receiving".



At the end of the process we can register the product receipt for the specific load.


 

venerdì 13 luglio 2018

D365 Electronic signature

D365 Electronic signature


Nella form electronic signature parameters è impostato il messaggio da visualizzare in fase di conferma.

Viene impostato l'electronic signature requirements su l'approvazione della BOM version.
Sono impostati alcuni reason codes di electronic signature.

Impostiamo il certificato sull'utente in linea.
Definiamo una password 5 maiuscole, 5 minuscole, 2 numeri.


Approviamo una BOM version, inseriamo un commento.


Viene richiesta la password utente.

Inserita la password, l'update è eseguito!!

mercoledì 11 luglio 2018

D365 - Warehouse and transportation management overview


Warehouse and transportation management
Warehouse management is based on the following elements:

·        Loads: An outbound load is a single shipment or group of shipments shipped from a warehouse location to a customer or intermediate location. You can create an outbound load from a sales order or transfer order automatically or manually.

An inbound load is a single shipment or group of shipments shipped from and external warehouse to an internal one. You can create an inbound load from purchase order manually.

 

·        Shipments: A shipment is a collection of sales / purchase order lines, heading to the same address in one load. A single load may have multiple shipments. E.g. a sales order with two lines, each going to a different destination will result in creation of two shipments, belonging to the same load.

 

·        Waves: A wave is a collection of shipments and it will allow the generation of works in order to move items in warehouse.

 

·        Work: For each wave we can have more than one work in which the steps for moving items are defined, we can have more steps for each item.

 

We can distinguish two different processes:

·        Issue process
·        Receipt process

In detail the process is composed by the following elements linked in the following way.

Transportation module structure
 
·        Issue process

·         Receipt process



Transportation management is based on the following functions / forms:

·        Route break: this function manage the breaks for transport pricing

·        Route rate: this function is made by some tables and it manages the transport prices

·        Route: this function shows the route plan and the pricing planned for it.