Sunday, December 3, 2023

Change Compney And Cross Company in X++

 

change company:-

If you're working on one company within your code but need to insert data into another company, you'd indeed utilise the ChangeCompany functionality.
This feature in Dynamics AX or Dynamics 365 Finance and Operations allows you to switch the context within your code to another company for specific operations.


Code:-

   public static void main(Args _args)

   {

       CustTable           Cust;

       changecompany("DAT")

       {

       ttsBegin;

        Cust.AccountNum = "AE-000001";

       Cust.insert();

       ttsCommit;

       }

   }

CrossCompany:-

You can fetch data from tables across companies using CrossCompany keyword in X++ select queries.

You can also use containers to fetch data from subset of companies.

For example:-

public static void main(Args _args)

   {

       VendTable vendTable;

       ;

       While Select CrossCompany * from vendTable

       {

           info(Strfmt("%1 : %2", vendTable.AccountNum, vendTable.dataAreaId));

       }

   }


public static void main(Args _args)

   {

       VendTable vendTable;

       container con;

       ;

       con = ["USMF","DAT","uspi" ];

       While Select CrossCompany : Con * from vendTable

       {

           Info(Strfmt("%1 : %2", vendTable.AccountNum, vendTable.dataAreaId));

       }

   }


=====================================================================================

Making Financial Dimensions Mandatory on Purchase Requisition Header in D365 Finance & Operations(Custom financial dimensions)

  public void initValue()

    {

        

        FormDataSource                  formDataSource =  this.formRun().dataSource(formDataSourceStr(PurchReqTable, PurchReqTable));

        purchReqTable                   purchReqTable = formDataSource.cursor();

        DimensionAttributeValueSet          DimensionAttributeValueSet;

        DimensionAttributeValueSetItem      DimensionAttributeValueSetItem;

        DimensionAttributeValue             DimensionAttributeValue;

        DimensionAttribute                  DimensionAttribute;

        PurchReqLine                        purchReqLine;

        ;


        select RecId from DimensionAttributeValueSet

            where DimensionAttributeValueSet.RecId == purchReqTable.DefaultDimension

        join DisplayValue from DimensionAttributeValueSetItem

            where DimensionAttributeValueSetItem.DimensionAttributeValueSet == DimensionAttributeValueSet.RecId

        join RecId from DimensionAttributeValue

            where DimensionAttributeValue.RecId == DimensionAttributeValueSetItem.DimensionAttributeValue

        join RecId from DimensionAttribute

            where DimensionAttribute.RecId == DimensionAttributeValue.DimensionAttribute

               && DimensionAttribute.Name == "LEGALENTITY";

        select * from  dimensionAttributeValueSet

            where dimensionAttributeValueSet.RecId == purchReqTable.DefaultDimension;

    

        if(DimensionAttributeValueSetItem.DisplayValue == "")

        {

            throw Global::error("Please select the legal entity from PR Header financial dimension.");


        }

        next initValue();


    }








No comments:

Post a Comment

How to Control Edit Access for Sales Tax Fields in PR Lines Through Configuration in D365 Finance & Operations

 To provide a configuration-driven approach for controlling edit access to the Item Sales Tax Group and Sales Tax Group fields on Purchase...