|
![]() |
#1 |
Участник
|
Позвольте, в методе initDocApproveEngine вы же делаете formRunDoc.close();
После этого хотите, чтобы во внешнем классе сохраненные в переменную callerArgs свойства данной формы не приняли значение null? Я вас правильно понял? |
|
![]() |
#2 |
Участник
|
Цитата:
Позвольте, в методе initDocApproveEngine вы же делаете formRunDoc.close();
После этого хотите, чтобы во внешнем классе сохраненные в переменную callerArgs свойства данной формы не приняли значение null? Я вас правильно понял? А значение null переменная callerArgs принимает только в методе CloseOK, тогда как в методах init и run все в порядке. При этом сам formRunDoc не принимает значение null ни в одном из методов. |
|
![]() |
#3 |
Участник
|
В итоге вышел из ситуации изменив подход.
Если в вкратце и глобально, то теряемые аргументы в дальнейшем нужны были для формирования контекстных данных уведомления (EventInBoxData). Суть такова: в контекстных данных сохраняются параметры запуска формы явившейся источником события для которого генерируется оповещение (уведомление). Но стандартно предполагалось, что эта самая форма еще активна на момент генерации уведомления и формирования контекстных данных. Мне же понадобилось генерировать оповещение для уже закрытой формы. А для этого пришлось динамически в коде открыть форму и сохранить параметры запуска, а затем закрыть форму. Но параметры запуска сохранялись неявно как аргументы formrun. Изменение подхода - это явное сохранение аргументов в переменную с типом Args. Я добавил строку: X++: wfDocApproveEngine.parmParentObjectRunArgs(formRunDoc.args()); X++: // _EventContextInformation.parmPackedArgs(callerObjectRun.args()); if(callerObjectRun.args()) { _EventContextInformation.parmPackedArgs(callerObjectRun.args()); } else { _EventContextInformation.parmPackedArgs(wfDocApproveEngine.parmParentObjectRunArgs()); } Все равно всем спасибо |
|
Теги |
args, проблема |
|
|