Показать сообщение отдельно
Старый 08.11.2017, 19:52   #10  
Napalm is offline
Napalm
Участник
 
80 / 88 (3) ++++
Регистрация: 23.05.2012
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
В D365 PU10 нет класса DimensionHelper. Если Вы чего-то другое имели в виду - приведите пример кода.
Имел ввиду класс DimensionStorage. Ниже пример кода (разумеется для реального применения следует поменять константы на параметры и добавить проверок.
X++:
ttsbegin;

LedgerJournalTrans ledgerJournalTrans = LedgerJournalTrans::findRecId(5555555555, true);

DimensionAttribute dimensionAttribute = DimensionAttribute::findByName("BusinessUnit");

DimensionAttributeValue dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, "001");

DimensionStorage dimensionStorage = DimensionStorage::findById(ledgerJournalTrans.LedgerDimension);

for (int i = 1; i <= dimensionStorage.segmentCount(); i++)
{
    if (dimensionStorage.getAttributeIdForSegment(i) == dimensionAttribute.RecId)
    {
        dimensionStorage.setSegment(i, DimensionStorageSegment::constructFromValue(dimensionAttributeValue.getValue(), dimensionAttributeValue));

        ledgerJournalTrans.LedgerDimension = dimensionStorage.save();
        ledgerJournalTrans.update();

        break;
    }
}

ttscommit;
За это сообщение автора поблагодарили: Aquarius (1), BOAL (1), ta_and (4).