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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.05.2016, 10:42   #1  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Сбрасывается query в RunBase после classRun.Promt()
Здравствуйте.

Столкнулся со следующей проблемой. Есть класс наследник от RunBase.
Метод main выглядит следующим образом:
X++:
server static void main(Args args)
{
    MyClass classRun = MyClass::construct();

    if (classRun.prompt())
    {
        classRun.run();
    }
}
есть метод showQueryValues, который выводит кнопку "выбрать" для настройки запроса
X++:
public boolean showQueryValues()
{
    return true;
}
Методы pack и unpack пустые, т.е. ничего не сохраняют и не восстанавливают.

Сама проблема заключается в следующем, после настройки запроса и нажатие кнопки ОК, если в методе getFromDialog выполнить код
X++:
info(strfmt("%1", queryRun.query().dataSourceNo(1).toString()));
он покажет настроенный запрос, а если в методе run выполнить код
X++:
info(strfmt("%1", queryRun.query().dataSourceNo(1).toString()));
то он покажет запрос который формируем при запуске класса, хотя в диалоге отображается настроенный запрос.

Что я делаю не так? Что я упустил?

AX2009
Старый 16.05.2016, 10:47   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Попробуйте перед prompt вызвать getLast
А лучше сразу после new класса в конструкторе. Если поможет то дальше можно смотреть.
Старый 16.05.2016, 11:01   #3  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от Logger Посмотреть сообщение
Попробуйте перед prompt вызвать getLast
А лучше сразу после new класса в конструкторе. Если поможет то дальше можно смотреть.
Я правильно понял, что должно получиться как-то так?
X++:
server static void main(Args args)
{
    ReportInventTransGroupByInvoiceAccount   classRun = ReportInventTransGroupByInvoiceAccount::construct();
    ;
    classRun.getLast();
    
    if (classRun.prompt())
    {
        classRun.run();
    }
}
Результат тот же.
Старый 16.05.2016, 11:04   #4  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2476 (88) +++++++++
Регистрация: 20.08.2005
Цитата:
Сообщение от demianimp Посмотреть сообщение
Методы pack и unpack пустые, т.е. ничего не сохраняют и не восстанавливают.
На какой стороне у вас вызывается метод run?
Если на сервере, то pack/unpack реализовывать необходимо (с сериализацией запроса)
__________________
Axapta v.3.0 sp5 kr2
Старый 16.05.2016, 11:09   #5  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Цитата:
Сообщение от AndyD Посмотреть сообщение
На какой стороне у вас вызывается метод run?
Если на сервере, то pack/unpack реализовывать необходимо (с сериализацией запроса)
На стороне клиента.
X++:
public boolean unpack(container packedClass)
{
    ;
    return true;
}
public container pack()
{
    ;
    return conNull();
}
Старый 17.05.2016, 07:43   #6  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
Всем спасибо.

Глюк оказался в кэше. Закрыл клиента, удалил кэш и пошло все по маслу.
Старый 18.05.2016, 22:39   #7  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
#CurrentValues макрос не почистили, ага, бывает
Старый 19.05.2016, 07:39   #8  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
642 / 347 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Можно в каждый проект добавлять такой джобик по очистке кэша.
В контейнер добавляем классы, формы, отчеты в строковом формате.
X++:
static void ClearUserSettings(Args _args)
{
    SysLastValue    lastValue;
    int             counter;
    FormName        formName;
    container       names = [classstr(ReportInventTransGroupByInvoiceAccount)];
    ;

    try
    {
        ttsbegin;

        for (counter = 1; counter <= conlen(names); counter++)
        {
            formName = strFmt('*%1*', conPeek(names, counter));

            delete_from lastValue
                where lastValue.elementName like formName;
        }

        ttscommit;

        info(strfmt("Job '%1' succeeded.", funcname()));
    }
    catch (Exception::Error)
    {
        throw error(strfmt("Job '%1' failed.", funcname()));
    }
}
__________________
// no comments
За это сообщение автора поблагодарили: S.Kuskov (5).
Старый 19.05.2016, 09:31   #9  
Weez is offline
Weez
Участник
Axapta Retail User
 
250 / 84 (3) ++++
Регистрация: 18.01.2006
Адрес: Moscow city
А можно менять версию в макросе #CurrentVersion.
__________________
Существует 10 типов людей: одни понимают двоичную систему, другие - нет.
За это сообщение автора поблагодарили: Logger (1).
Старый 19.05.2016, 17:35   #10  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Weez Посмотреть сообщение
А можно менять версию в макросе #CurrentVersion.
Я бы даже сказал что нужно.
А не менять ее - плохой тон.
Старый 20.05.2016, 11:00   #11  
demianimp is offline
demianimp
Участник
 
202 / 104 (4) +++++
Регистрация: 10.10.2013
У меня в классе не было #CurrentValues . кеш чистил путем удаления файлов в папке пользователя. В SysLastValue не было данных.
Старый 20.05.2016, 17:53   #12  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от demianimp Посмотреть сообщение
У меня в классе не было #CurrentValues . кеш чистил путем удаления файлов в папке пользователя. В SysLastValue не было данных.
Имеете ввиду, .auc файлы?
Как интересно, почему usage data не помог..
Теги
ax2009, queryrun, runbase

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Удаление файла после исполнения RunBase в пакетном режиме Art_Tanis DAX: Функционал 3 14.09.2015 16:32
emeadaxsupport: Microsoft Dynamics AX general performance analysis scripts page 5 Blog bot DAX Blogs 0 01.09.2014 14:11
Восстановление фильтров грида после смены Query HorrR DAX: Программирование 3 15.05.2014 17:46
dynamicscare: Using Power BI to Analyze Your Dynamics AX Data Blog bot DAX Blogs 1 06.10.2013 18:11
emeadaxsupport: Calling the Query Service Blog bot DAX Blogs 0 18.02.2012 01:13
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 16:29.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.