Добрый вечер,
вот таким способом добавила значение еще одного сегмента (значение воркера) в 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.
|