Dynami c AX 2012 R3 Написать пустое финансовое измерение клиента - PullRequest
2 голосов
/ 22 апреля 2020

Как я могу написать все размеры клиента? Я могу использовать этот код, но он приводит только к Department = 022.

CustTable                         custTable = CustTable::find("10112");
DimensionAttributeValueSetStorage dimStorage;
Counter i;

dimStorage = DimensionAttributeValueSetStorage::find(custTable.DefaultDimension);

for (i=1 ; i<= dimStorage.elements() ; i++)
{
    info(strFmt("%1 = %2", DimensionAttribute::find(dimStorage.getAttributeByIndex(i)).Name,
                           dimStorage.getDisplayValueByIndex(i)));

Но я хочу, если измерение пусто, результат пуст. Для приведенного ниже примера результат должен быть таким:

BusinessUnit = 
Department   = 022
Project      = 
ServiceLine  =

related image

Как я могу это сделать?

1 Ответ

2 голосов
/ 22 апреля 2020

Попробуйте изменить свой код ниже. У меня нет того измерения, которое у вас есть, поэтому вам может понадобиться настроить его.

CustTable                               custTable       = CustTable::find("10112");
DimensionAttribute                      segment         = DimensionAttribute::findByName('Segment');
DimensionAttribute                      department      = DimensionAttribute::findByName('Department');
DimensionAttribute                      businessType    = DimensionAttribute::findByName('BusinessType');
DimensionAttribute                      serviceLine     = DimensionAttribute::findByName('ServiceLine');
DimensionAttributeValueSetStorage       dimStorage;

dimStorage = DimensionAttributeValueSetStorage::find(custTable.DefaultDimension);

info(strFmt("%1 = %2", segment.Name, dimStorage.getDisplayValueByDimensionAttribute(segment.RecId)));
info(strFmt("%1 = %2", department.Name, dimStorage.getDisplayValueByDimensionAttribute(department.RecId)));
info(strFmt("%1 = %2", businessType.Name, dimStorage.getDisplayValueByDimensionAttribute(businessType.RecId)));

// You make need to tweak these
info(strFmt("%1 = %2", serviceLine.Name, dimStorage.getDisplayValueByDimensionAttribute(serviceLine.RecId)));
...