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.
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