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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.04.2021, 17:10   #1  
Loengrinchik is offline
Loengrinchik
Участник
 
9 / 10 (1) +
Регистрация: 02.11.2014
В пакетнике(!) не проходит цикл
Создал пакетник. Цель - вывести excel отчет - его в рассылку определенным лицам.
используется наследник ComExcelDocument_RU_Server - серверный от базового стандарта.
сейчас баг в том, что в пакетном режиме на почту приходит пустой отчет. только шапка. Т.е. заполнение цикла значениями(данными) не проходит.
В непакетном режиме все ок. Т.е. внутрь цикла не попадаем в пакетном режиме.

X++:
 while select oOProblemTable
        where oOProblemTable.Confirmed
        &&  oOProblemTable.ConfirmationDate >= dt &&  oOProblemTable.ConfirmationDate <= dtEND
        join   PIN, SObjectType, SObjectGroupId, CustGroupId, SObjectCategoryId, InstallDate, smmMountingOrganisationAccount, smmDealerAccount, Installer, 
         ActivationDate, createdDateTime, Address, ProblemReasonId, ServiceDistrictId,ManagerIdPersonal, RecId, CustGroupId FROM sObject where
        sObject.PIN == oOProblemTable.PIN
        && sObject.SObjectType == VK6_SObjectType::Stationary
        && sObject.ServiceDistrictId == smmServiceDistrictId
        join  Name FROM smmBusRelTable where
        smmBusRelTable.busRelAccount == sObject.smmClientAccount
        EXISTS JOIN  * FROM OOProblemClass WHERE OOProblemTable.ProblemClassId == OOProblemClass.ProblemClassId
        NOTEXISTS JOIN * FROM SOServiceRequests
      WHERE OOProblemTable.SOServiceReqId == SOServiceRequests.Number && (SOServiceRequests.eMPLiD) && ((SOServiceRequests.RequestDate >= tDate) || (SOServiceRequests.Status == 2))
Куда копать?

Последний раз редактировалось Loengrinchik; 16.04.2021 в 17:20.
Старый 16.04.2021, 18:06   #2  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
CurrentList не забыли наполнить переменными ?
pack\unpack и всё такое.
__________________
Дмитрий
Старый 16.04.2021, 18:53   #3  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Да, предыдущий комментарий, вероятно, прав.
Ну и вообще - убедитесь что параметры в этом while select у вас верные (все эти ваши tDate и т.д.), выведите их куда-нибудь в инфолог, например.
За это сообщение автора поблагодарили: Loengrinchik (1).
Старый 19.04.2021, 12:16   #4  
Loengrinchik is offline
Loengrinchik
Участник
 
9 / 10 (1) +
Регистрация: 02.11.2014
Оказалось тип DateTime (TransDateTime) в пакетном режиме в инфолог выводит пустую строку. Т.е не работает этот тип в пакете.
Старый 19.04.2021, 12:28   #5  
online
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,737 / 404 (17) +++++++
Регистрация: 23.03.2006
Цитата:
Сообщение от Loengrinchik Посмотреть сообщение
Оказалось тип DateTime (TransDateTime) в пакетном режиме в инфолог выводит пустую строку. Т.е не работает этот тип в пакете.
У вас явно ошибка в коде, тк типы всегда "работают"
Старый 19.04.2021, 12:36   #6  
astralsun is offline
astralsun
Участник
 
16 / 19 (1) ++
Регистрация: 17.04.2018
Цитата:
Сообщение от Loengrinchik Посмотреть сообщение
Оказалось тип DateTime (TransDateTime) в пакетном режиме в инфолог выводит пустую строку. Т.е не работает этот тип в пакете.
если вы так считаете, попробуйте переменной этого типа перед выводом в инфолог присвоить значение DateTimeUtil::utcNow()
Старый 19.04.2021, 14:00   #7  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Цитата:
Сообщение от Loengrinchik Посмотреть сообщение
Оказалось тип DateTime (TransDateTime) в пакетном режиме в инфолог выводит пустую строку. Т.е не работает этот тип в пакете.
пустую строку выводит, вероятно потому, что дата-время пустые
что опять же подталкивает к первому комментарию о том, что распаковка-упаковка сделаны неверно и переменная просто в пакетном режиме не инициализирована
Старый 20.04.2021, 11:25   #8  
d_alexe is offline
d_alexe
Участник
 
17 / 10 (1) +
Регистрация: 01.04.2009
Цитата:
Сообщение от Loengrinchik Посмотреть сообщение
ComExcelDocument_RU_Server
А он от какго класса наследуется?
ПС У нас просто такого класса нет, есть ComExcelDocument_RU так он наследуется в итоге от ComOfficeDocument_RU, который к RunBaseBatch ни какого отношения не имеет.

подробно тут разжевано когда что инициализируется Создание пакетного задания DAX 2009
Старый 20.04.2021, 17:26   #9  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Создаём копию класса. Перед циклом делаем вывод всех переменных (dt, dtEnd и т.д) в таблицу лога (либо создать табличку ради такого дела). Остальной код можно либо убрать либо оставить (на усмотрение автора).
Запускаем класс разово в пакете.
Смотрим что записалось в таблицу лога.
Профит!
Старый 21.04.2021, 10:33   #10  
Loengrinchik is offline
Loengrinchik
Участник
 
9 / 10 (1) +
Регистрация: 02.11.2014
Цитата:
Сообщение от smailik Посмотреть сообщение
Создаём копию класса. Перед циклом делаем вывод всех переменных (dt, dtEnd и т.д) в таблицу лога (либо создать табличку ради такого дела). Остальной код можно либо убрать либо оставить (на усмотрение автора).
Запускаем класс разово в пакете.
Смотрим что записалось в таблицу лога.
Профит!
Ровно этот метод я и использовал, когда писал предыдущий пост (про вывод в инфолог в пакете - "инфолог" был метафорой именно такой таблички).

Что тип не "работает" - я имел ввиду, что никакая моя запись - ни через DateTimeUtil::newDateTime - ни через запись вида 2018-12-31T21:00:00(напрямую в коде) ни через преобразование вида str2datetime( - в итоге в строковое поле таблички пишет пусто. При этом не в пакетном режиме все ок.

Последний раз редактировалось Loengrinchik; 21.04.2021 в 11:36.
Старый 21.04.2021, 12:17   #11  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Для разбирательства очень помогло бы полное содержание методов main, dialog, getfromDialog, pack, unpack ну и run до кучи
Старый 21.04.2021, 12:28   #12  
d_alexe is offline
d_alexe
Участник
 
17 / 10 (1) +
Регистрация: 01.04.2009
Цитата:
Сообщение от smailik Посмотреть сообщение
Для разбирательства очень помогло бы полное содержание методов main, dialog, getfromDialog, pack, unpack ну и run до кучи
В пакетном режиме работают только методы pack, unpack, и run.
Старый 21.04.2021, 13:13   #13  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Цитата:
Сообщение от d_alexe Посмотреть сообщение
В пакетном режиме работают только методы pack, unpack, и run.
Спору нет что они в пакетном режиме работают. Но класс в пакетный режим не сам попадает. Разве нет? Это я на main намекаю.
Переменные же из диалога берутся. Если конечно он есть.
Старый 21.04.2021, 13:18   #14  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
И classDeclaration еще бы посмотреть.
Старый 23.04.2021, 16:01   #15  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
временные таблицы принимают участие в этом забеге?
__________________
Felix nihil admirari
Старый 23.04.2021, 18:18   #16  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Физически пакетное задание - это запись в таблице Batch. Найдите запись в этой таблице, соответствующее Вашему пакетному заданию (по id класса или по тексту названия), откройте таблицу через обозреватель таблицы через AOT в Axapta и перейдите к нужной записи

Те параметры, которые передаются через pack/unpack в пакетное задание - это содержимое поля batch.Parameters. Это контейнер. В обозревателе таблиц если щелкнуть мышкой по этому полю, то откроется специальная формочка для просмотра его содержимого. Вот и посмотрите, что реально записалось в этот контейнер. Какие реквизиты
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: S.Kuskov (5), Loengrinchik (1).
Старый 24.04.2021, 18:00   #17  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от smailik Посмотреть сообщение
pack, unpack
Только что столкнулся: переделывал очередной "унаследованный" классик, типа RunBaseBatch.

Добавляю CurrentList, добавляю туда альтернативный е-мейл, чтобы поьзователей не дергать попусту (тестирование на продуктовой базе, иначе там никак. А оно е-мейлы рассылает...). Задаю свой е-мейл - из пакета отправка идет пользовтелю... долго смотрел, пока не увидел, что pack-unpack в этом классе вообще нет, и работают pack-unpack родителя... Занавес )))
__________________
Best Regards,
Roman
Старый 26.04.2021, 17:09   #18  
Loengrinchik is offline
Loengrinchik
Участник
 
9 / 10 (1) +
Регистрация: 02.11.2014
Да, всем спасибо, разобрался.
Действительно, в параметрах Batch не были заполнены даты.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SysExcelApplication в пакетнике ex3em DAX: Программирование 10 27.11.2014 16:33
Как организовать цикл exodus DAX: Программирование 1 21.11.2007 10:50
Складская аналитика. Авторезервирование. Бесконечный цикл. andenis DAX: Функционал 8 27.06.2007 08:12
простейший job уходит в бесконечный цикл Keen DAX: Программирование 6 17.02.2007 21:32
Цикл, ttsabort и continue PavelX DAX: Программирование 8 15.01.2007 07:11
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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