Показать сообщение отдельно
Старый 05.11.2017, 23:51   #5  
Aquarius is offline
Aquarius
Участник
 
139 / 29 (1) +++
Регистрация: 08.02.2007
Адрес: Одесса
Добрый вечер,
вот таким способом добавила значение еще одного сегмента (значение воркера) в ledgerdimension (cвязан сDimensionAttributeValueCombination ).Работает. Но нужно наверно же проверить перед добавлением указан ли в структуре счета для данного ledgerdimension такой сегмент.
Подскажите пожалуйста, как это сделать.

ledgerdimension ledgerdim,
recId currentPerson1 = 22565422591;

HcmPersonnelNumberId dimValue = HcmWorker::findByPerson(currentPerson1).PersonnelNumber;
Name dimName = 'Worker';
DimensionAttribute dimensionAttribute = DimensionAttribute::findByName(dimName);
LedgerDefaultDimensionValueSet defaultDimension;
DimensionAttributeValue newDimensionValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, dimValue, true, true);
DimensionAttributeValueSetStorage dimAttrValueSetStorage = new DimensionAttributeValueSetStorage();
dimAttrValueSetStorage.addItem(newDimensionValue);
defaultDimension = dimAttrValueSetStorage.save();
ledgerDim = LedgerDimensionFacade::serviceCreateLedgerDimForDefaultDim(defaultDimension, ledgerDim);
ledgerJournalTrans.LedgerDimension = ledgerDim ;

Ниже пример как присоединить значение еще одной финансовой аналитики (соотвествующей значению worker) к defaultDimension(связано DimensionAttributeValueSet)

commissionTrans.DefaultDimension = commissionTransDefaultDimension;
HcmPersonnelNumberId dimValue = HcmWorker::findByPerson(commissionTrans.Person).PersonnelNumber;
Name dimName = 'Worker';
if (dimValue)
{
DimensionAttribute dimensionAttribute = DimensionAttribute::findByName(dimName);
DimensionAttributeValue newDimensionValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute, dimValue, true, true);
DimensionAttributeValueSetStorage dimAttrValueSetStorage = DimensionAttributeValueSetStorage::find(commissionTrans.DefaultDimension);
dimAttrValueSetStorage.addItem(newDimensionValue);
commissionTrans.DefaultDimension = dimAttrValueSetStorage.save();
}

Последний раз редактировалось Aquarius; 05.11.2017 в 23:53.