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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.04.2013, 11:39   #1  
A.Nekrasov is offline
A.Nekrasov
Участник
 
4 / 10 (1) +
Регистрация: 13.11.2012
Проблема с аргументами формы в АХ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();
в данном классе один из параметров - это переменная parentObjectRun типа object, в которой хранится другая форма. Переменная callerArgs введена для отслеживания параметров Args при трассировке в связи с проблемой. Вот метод в котором инициируется переменная parentObjectRun:

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();
с последующей проверкой наличия аргументов. Результат тот же - переменная callerArgs приняла значение null.

Если кто сталкивался с подобной ситуацией, подскажите пожалуйста в чем может быть причина проблемы?

PS Удаление пользовательских данных, компиляция формы и класса не помогли(((

Заранее спасибо за ответы.

Последний раз редактировалось A.Nekrasov; 16.04.2013 в 12:00. Причина: Добавление дополнительной информации по проблеме
Теги
args, проблема

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
В АХ2009 проблема с General Ledger->Chart of accounts AndrianG DAX: Администрирование 3 12.02.2009 13:15
Проблема с передачей контролов из формы в класс matew DAX: Программирование 0 28.04.2008 17:37
Проблема с активно-пассивными счетамидля формы 1 в генераторе финансовых отчетов Truba DAX: Функционал 8 14.08.2006 12:07
Проблема с доступом к настройкам формы ViV DAX: Администрирование 6 14.11.2005 15:59
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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