Dynamics AX 2009: добавление поля в InventJournalTrans, распространение в InventTrans

Мне нужно добавить дополнительное поле в InventJournalTrans, которое после публикации будет отображаться в таблице InventTrans. Поле представляет собой столбец ссылки на запись в другой таблице. Какие методы мне нужно изменить, чтобы это произошло?

В настоящее время я уже добавил поля в обе таблицы и изменил форму, чтобы пользователь мог вводить и сохранять новое поле. Я просто не могу найти дно кроличьей норы, где происходит фактическая публикация в InventTrans.

В идеале это должен быть просто:

inventTrans.ReasonRefRecId = inventJournalTrans.ReasonRefRecId;

оператор присваивания перед

inventTrans.insert();

вызов. Кто-нибудь знает, где это?


person C. Griffin    schedule 11.04.2011    source источник
comment
Похоже, потенциальное решение указано на форумах Microsoft Dynamics страница.   -  person C. Griffin    schedule 11.04.2011


Ответы (1)


Ссылка выше действительно содержит решение - я включил код с этой страницы на случай, если эта страница исчезнет или станет недоступной. Спасибо gl00mie за ответ на этом сайте и за этот ответ.

Вы должны создать новый метод InventMovement следующим образом:

public MyNewFieldType myNewField()
{
    return MyNewFieldType::DefaultValue; // suppose your new field is an enum
}

Затем измените \ Classes \ InventMovement \ initInventTransFromBuffer

void initInventTransFromBuffer(InventTrans _inventTrans, InventMovement _movement_orig)
{
    // ... append this line to the end of whatever else is already in this method
    _inventTrans.MyNewField            = this.myNewField();
}

И, наконец, перегрузим новый метод в классе InventMov_Journal:

public MyNewFieldType myNewField()
{
    return inventJournalTrans.MyNewField;
}
person C. Griffin    schedule 12.04.2011