AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.06.2018, 00:07   #1  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
D365FO Новый тип InventJournal
Суть: Надо создать новый тип журнала (аналогичный Invent Movement) с новыми полями.

Скопировал Forms\InventJornalMovement - сделал необходимые правки дизайна
Расширил Enums\InventJournalType - добавил новый тип журнала (он же указан как параметр на MenuItem новой формы)
Расширил Forms\InventJournalCreate что бы создавались журналы с новым типом
Расширил Class\InventMov_Journal\newFromInventJournalTrans() - в switch приравнял Movement к новому типу, что бы форма вела себя так же как Movement.

По сути работает все, кроме Validate\Post, выдает ошибку "Object reference not set to an...".

После дебага понял что проблема конкретно в методе Forms\InventJournalMovement (Копия):
JournalForm journalForm()
{
return journalFormController.parmJournalFormTrans();
}

Эта переменная создается в init() формы, ей надо два параметра InventJournalFormTrans_Movement и InventJournalFormTable, но они почему то создаются пустыми, весь код пересмотрел никакой привязки к типу нету. Он просто сохраняется внутри.

Кто подскажет где искать проблему или как ее решить, уже замучился с этим, может вообще не там копаю?
Старый 15.06.2018, 13:45   #2  
syl is offline
syl
Участник
Аватар для syl
 
236 / 21 (1) +++
Регистрация: 10.06.2015
Адрес: Киев
Проблему решил таким кодом:
X++:
journalCheckPost = InventJournalCheckPost_Movement::newJournalCheckPost(true, true, JournalCheckPostType::Post, tableNum(InventJournalTable), journalTable.JournalId);
journalCheckPost.run()
Заключается она в том что класс InventJournalCheckPost_Movement создается при помощи атрибута
X++:
[InventJournalTypeFactoryAttribute(InventJournalType::Movement),
InventJournalTypeFactoryAttribute(InventJournalType::LossProfit),
InventJournalTypeFactoryAttribute(InventJournalType::Transfer),
InventJournalTypeFactoryAttribute(InventJournalType::BOM),
InventJournalTypeFactoryAttribute(InventJournalType::Count),
InventJournalTypeFactoryAttribute(InventJournalType::project),
InventJournalTypeFactoryAttribute(InventJournalType::Asset)]
class InventJournalCheckPost_Movement extends JournalCheckPostLedger implements InventJournalReportPackable_RU
Если расширить этот класс и добавить новый атрибут - работать это не будет. Пытался унаследовать класс и добавить атрибут, не работает (билд и синхронизация БД не помогают), хотя по логике должно бы сработать. Не уверен что можно обойти это без оверлея, буду рад вашим идеям...

Последний раз редактировалось syl; 15.06.2018 в 14:02.
Старый 16.06.2018, 01:48   #3  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от syl Посмотреть сообщение
Пытался унаследовать класс и добавить атрибут, не работает (билд и синхронизация БД не помогают), хотя по логике должно бы сработать. Не уверен что можно обойти это без оверлея, буду рад вашим идеям...
А кеш чистить пробывали? http://www.agermark.com/2017/07/clea...extension.html это проблема известная с времен 2012
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
kurthatlevik: D365FO – Some nice excel tricks Blog bot DAX Blogs 0 02.06.2018 00:13
Новый текстовый тип --> Синхронизация БД Мартынов Дмитрий DAX: Программирование 7 14.06.2013 16:34
Новый тип складского журнала breakpoint DAX: Функционал 5 06.06.2008 13:55
Новый тип приказа в кадрах TasmanianDevil DAX: Функционал 4 16.12.2005 13:55
Никак не могу вьехать, для чего нужны тип счета и тип разноски maloy DAX: Функционал 5 28.03.2004 17:18

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 18:10.