Translate

Wednesday, June 26, 2019

Job to get distinct display product number in D365FO

 In this blog, I will discuss how to get a distinct display product number in Dynamics 365 Finance and Operations. Please see the screenshot below with the source code explanation.


Note: In my case, I have got Item Id and Invent Dim Id from RFQ Lines.

Explanation of source code (1.1):
  • Get a purchase request for quotation from RFQCaseId and LineNum.
  • Updating inventory dimensions.
  • Find or create an inventory dimension.
  • Find the inventory dimension combination is order to get the product variant record ID.
  • Get the display product number and set it in the info method.

class JobToGetDisplayProductNumber
{
    /// <summary>
    /// In this job we are getting display product number by
    /// Item Id and Invent Dim Id.
    /// </summary>
    /// <param name = "args">The specified arguments.</param>
    public static void main(Args _args)
    {

        PurchRFQCaseLine         line;

        InventDim                inventDim;
        InventDimCombination     inventDimComb;
 
        //Get purchase request for quotation line from RFQId and LineNum
        line = PurchRFQCaseLine::find('CDPL-000051', 3);
         
        //Updating inventory dimensions
        inventDim = line.inventDim();
        inventDim.InventSiteId = '';
        inventDim.InventLocationId = '';
 
        //Find or Create inventory dimensions
        inventDim = InventDim::findOrCreate(inventDim);
 
        //Find inventory dimension combination in order to get Product Variant Record Id
        inventDimComb = InventDimCombination::findByInventDim(line.ItemId, inventDim);

 

        //Display product from <c>EcoResDistinctProductVariant</c> table.
        info(EcoResDistinctProductVariant::find(inventDimComb.DistinctProductVariant).DisplayProductNumber);
    }
}