![]() |
#1 |
Участник
|
Проблема с аргументами формы в АХ2009
Доброго времени суток, уважаемые коллеги
Использую AX2009, Kernel version: 5.0.1000.52, Application version: 5.0.1500.2116, Solution version: RU HRP 5.0.1500.2116.1 Столкнулся с проблемой потери параметров Args формы. Описание ситуации: 1. Есть некоторая форма в методе init которой извне (из вызывающего объекта) в данную форму передается экземпляр класса wfDocApproveEngine: X++: public void init() { Object callerForm; if (!element.args().caller() || !element.args().record()) { throw error("@SYS22539"); } super(); callerForm = element.args().caller(); wfDocApproveEngine = callerForm.getWFDocApproveEngine(); callerArgs = wfDocApproveEngine.parmParentObjectRun().args(); X++: void initDocApproveEngine() { EventContextInformation eci; FormRun formRunDoc; FormDataSource docFormDataSource; Object formObjDoc; int i; ; eci = EventContextInformation::construct(); if (eventInbox.ParentTableId) { eci.parmAlertBuffer(common); if (common.RecId && eci.unpack(eventInbox.contextData())) { formRunDoc = eci.createFormRun(); if (formRunDoc) { for (i=1; i<= formRunDoc.dataSourceCount(); i++) { if (formRunDoc.dataSource(i).cursor().TableId == common.TableId) { docFormDataSource = formRunDoc.dataSource(i); break; } } wfDocApproveEngine.parmParentObjectRun(formRunDoc); wfDocApproveEngine.parmParentDataSource(docFormDataSource); formRunDoc.close(); } } } } Результаты трассировки кода: в методе init переменная callerArgs не пустая и содержит корректный набор аргументов: Args(Name: RHRMOrderTable, Parm: , DesignName: , Enum: RHRMJournalType::Перевод, MenuItemName: RHRMOrderTableTransfer) Аналогично проверил аргументы в методе Run формы, вызвав callerArgs = wfDocApproveEngine.parmParentObjectRun().args(); тоже полный порядок. Но в методе closeOk проверка показала, что аргументы перестали существовать - переменная callerArgs приняла значение null. Хотя ни экземпляр класса, ни его параметр parentObjectRun не изменялись. Попробовал сохранять параметр parentObjectRun в переменную формы: X++: saveobj = wfDocApproveEngine.parmParentObjectRun(); callerArgs = saveobj.args(); Если кто сталкивался с подобной ситуацией, подскажите пожалуйста в чем может быть причина проблемы? PS Удаление пользовательских данных, компиляция формы и класса не помогли((( Заранее спасибо за ответы. Последний раз редактировалось A.Nekrasov; 16.04.2013 в 12:00. Причина: Добавление дополнительной информации по проблеме |
|
Теги |
args, проблема |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|