|
|
#1 |
|
Участник
|
D365 программно создать строки общего журнала и разнести
D365(Ax7) Upd10
Добрый вечер, подскажите пожалуйста, как программо создать и разнести строки общего журнала. |
|
|
|
|
#2 |
|
Боец
|
Так же как и в 2012. Не работает?
|
|
|
|
| За это сообщение автора поблагодарили: Aquarius (1). | |
|
|
#3 |
|
Участник
|
Нет ,не работает
'AxdDimensionUtil' is obsolete: ''This class is no longer supported, use the DimensionResolver classes.''. DimensionResolver не понятно как использовать. DimensionStorage::getDynamicAccount тоже нельзя использовать,такого метода нет Последний раз редактировалось Aquarius; 02.11.2017 в 01:55. |
|
|
|
|
#4 |
|
Участник
|
|
|
|
|
| За это сообщение автора поблагодарили: dech (1), Aquarius (1). | |
|
|
#5 |
|
Участник
|
В 2012 то при сомнениях как заполнять поле можно было посмотреть write ссылки на него, в D365 от этого излишества избавились(ну или надо много раз кликать), ну т.е. да, пока работает способ предложенный skuull, но думаю с 7.3 он тоже потеряет актуальность из за глобального рефакторинга.
В 7.2 пока правда можно посмотреть ссылки на ledgerJournalTrans.insert |
|
|
|
|
#6 |
|
Участник
|
Я нашел достаточно много примеров (например "/Classes/RetailTransactionServiceOrders/Methods/createReturnOrder", "/Classes/TMSInvoiceApproval") быстро посмотрев где используется класс LedgerJournalCheckPost.
PS: Не гарантирую качество примеров, т.к. не верю в префиксы Retail и TMS. |
|
|
|
| За это сообщение автора поблагодарили: Aquarius (1). | |
|
|
#7 |
|
Участник
|
Или "DimensionResolver" или "DimensionStorage". Последний вроде бы работает как и в AX 2012. Если есть конкретные вопросы - спрашивайте.
|
|
|
|
|
#8 |
|
Участник
|
|
|
|
|
|
#9 |
|
Banned
|
X++: journalTrans.initValue();
journalTrans.JournalNum = journalNum;
...
journalTrans.AccountType = LedgerJournalACType::Project;
journalTrans.LedgerDimension = this.getLedgerDim(LedgerJournalACType::Project, curExt(), projId);
journalTrans.AmountCurDebit = costAmount;
journalTrans.DefaultDimension = LedgerJournalEngine::initDefaultDimensionServer(journalTrans);
...
public RefRecId getLedgerDim(LedgerJournalACType _accountType,
DataAreaId _dataAreaId,
DimensionValue _accountId)
{
RefRecId ledgerDimension;
DictEnum dictEnum = new DictEnum(enumNum(LedgerJournalACType));
DimensionDynamicAccountServiceProvider dimensionDynamicAccountServiceProvider;
DimensionDynamicAccountContract dimensionDynamicAccountContract = new DimensionDynamicAccountContract();
dimensionDynamicAccountContract.parmCompany(_dataAreaId);
dimensionDynamicAccountContract.parmAccountType(_accountType);
DimensionAttributeValueContract ledgerContract = DimensionAttributeValueContract::construct(dictEnum.value2Label(_accountType), _accountId);
dimensionDynamicAccountContract.parmPrimaryDimensionAttributeValue(ledgerContract);
dimensionDynamicAccountServiceProvider = DimensionDynamicAccountServiceProvider::newForDynamicAccountContract(dimensionDynamicAccountContract);
DimensionStorageResult dimensionStorageResult = dimensionDynamicAccountServiceProvider.resolve();
switch(dimensionStorageResult.parmStatus())
{
case DimensionStorageResultStatus::Valid:
ledgerDimension = dimensionStorageResult.parmSavedRecId();
break;
default:
error(strFmt("blah-blah-blah-blah-bla", dimensionStorageResult.parmStatus()));
break;
}
return ledgerDimension;
} |
|
|
|
| За это сообщение автора поблагодарили: Aquarius (1). | |
|
|
#10 |
|
Участник
|
Цитата:
да и this.getLedgerDim() можно просто заменить на стандартную journalTrans.parmAccount() Да и вообще самое сложное - это присвоить ваучер, это кстати хорошая задача для собеседования Последний раз редактировалось trud; 02.11.2017 в 15:44. |
|
|
|
| За это сообщение автора поблагодарили: Aquarius (1). | |
|
|
#11 |
|
Banned
|
Цитата:
Сообщение от trud
здесь кстати потенциальная ошибка, часть полей(типа всяких условий оплат и профилей) инициализируются в момент изменения счета.
да и this.getLedgerDim() можно просто заменить на стандартную journalTrans.parmAccount() Да и вообще самое сложное - это присвоить ваучер, это кстати хорошая задача для собеседования 2) Точно, journalTrans.parmAccount() 3) Ваучер обычно присваиваем через JournalTableData. |
|
|
|
| За это сообщение автора поблагодарили: Aquarius (1). | |
|
|
#12 |
|
Участник
|
|
|
|
|
| За это сообщение автора поблагодарили: Aquarius (1). | |