DimensionAttribute dimensionAttribute1;
DimensionAttributeValueGroupStatus dimAttrValueGroupStatus1;
DimensionAttributeValueGroupCombination dimAttrValueGroupCombo1;
DimensionAttributeValueGroup dimAttrValueGroup1;
DimensionAttributeLevelValue dimAttrLevelValue1;
DimensionAttributeValue dimAttrValue1;
DimensionAttrValueCOAOverride dimAttrValueCOAOverride1;
DimensionAttrValueLedgerOverride dimAttrValueLedgerOverride1;
DimensionFinancialTag dimensionFinancialTag1;
InventPosting inventPosting1;
DimensionValue Dim1, Dim2, Dim3;
MainAccountNum LedgerAc;
RecId LedgerRecId, dimCombinationId;
dimCombinationId = 65656776; // for example here i gave a valid ledgerdimension
// find MainAccountId from LedgerDimension
LedgerAc = MainAccount::findByLedgerDimension(dimCombinationId).MainAccountId;
LedgerRecId = Ledger::findLedgerRecIdByLegalEntity(CompanyInfo::findDataArea(curext()).RecId);
while select Ordinal from dimAttrValueGroupCombo1 order by Ordinal
where dimAttrValueGroupCombo1.DimensionAttributeValueCombination == dimCombinationId
join dimAttrValueGroup1
where dimAttrValueGroup1.RecId == dimAttrValueGroupCombo1.DimensionAttributeValueGroup
outer join dimAttrValueGroupStatus1
where dimAttrValueGroupStatus1.DimensionAttributeValueGroup == dimAttrValueGroup1.RecId
join dimAttrLevelValue1
where dimAttrLevelValue1.DimensionAttributeValueGroup == dimAttrValueGroup1.RecId
join pessimisticLock IsSuspended, IsTotal, ActiveFrom, ActiveTo, DimensionAttribute, RecId, EntityInstance from dimAttrValue1
where dimAttrValue1.RecId == dimAttrLevelValue1.DimensionAttributeValue
outer join pessimisticLock IsSuspended, ActiveFrom, ActiveTo, RecId from dimAttrValueCOAOverride1
where dimAttrValueCOAOverride1.DimensionAttributeValue == dimAttrValue1.RecId && dimAttrValueCOAOverride1.ChartOfAccounts == LedgerChartOfAccounts::current()
outer join pessimisticLock IsSuspended, ActiveFrom, ActiveTo, RecId from dimAttrValueLedgerOverride1
where dimAttrValueLedgerOverride1.DimensionAttributeValue == dimAttrValue1.RecId && dimAttrValueLedgerOverride1.Ledger == LedgerRecId
{
dimensionFinancialTag1 = null;
select * from dimensionFinancialTag1
where dimensionFinancialTag1.RecId == dimAttrValue1.EntityInstance
join dimensionAttribute1
where dimensionAttribute1.RecId == dimAttrValue1.DimensionAttribute;
if (dimensionAttribute1.Name == ‘Department’)
{
Dim1 = dimensionFinancialTag1.Value;
}
if (dimensionAttribute1.Name == ‘CostCenter’)
{
Dim2 = dimensionFinancialTag1.Value;
}
if (dimensionAttribute1.Name == ‘Purpose’)
{
Dim3 = dimensionFinancialTag1.Value;
}
}
Below is sample X++ Code to run SSRS Report with parameter in D365 F&O (Example Sales Invoice ) Args args = new Args(); CustInvoiceJour custInvoiceJour; SalesInvoiceJournalPrint salesInvoiceJournalPrint; select firstonly custInvoiceJour where custInvoiceJour.SalesId != ''; // Add record to be printed. // In order to have the context table we need to set args.record(). args.record(custInvoiceJour); salesInvoiceController = new SalesInvoiceController(); salesInvoiceController.parmReportName( PrintMgmtDocType::construct(PrintMgmtDocumentType::SalesOrderInvoice).getDefaultReportFormat()); salesInvoiceContract = salesInvoiceController.parmReportContrac...