Dynamics AX 2009: добавление поля в InventJournalTrans, распространение в InventTrans - PullRequest
1 голос
/ 11 апреля 2011

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

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

В идеале это должно быть

inventTrans.ReasonRefRecId = inventJournalTrans.ReasonRefRecId;

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

inventTrans.insert();

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

1 Ответ

1 голос
/ 12 апреля 2011

Ссылка выше содержит решение - я включил код с этой страницы на случай, если эта страница исчезнет или больше не станет доступной.Спасибо 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;
}
...