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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.05.2009, 21:05   #1  
Blog bot is offline
Blog bot
Участник
 
25,640 / 848 (80) +++++++
Регистрация: 28.10.2006
aEremenko: Пакетная обработка в AX 2009
Источник: http://blogs.msdn.com/aeremenk/archi...1/9566049.aspx
==============



В отличие от предыдущих версий, пакетная обработка в  AX 2009 базируется на сервере, и не требует запуска клиентского приложения AX. Между тем, для обратной совместимости оставлена возможность использовать клиентские пакетные обработчики, основанные на тех же принципах, что и в версиях 3.0 и 4.0. Из-за этого возникает путаница.

Для того, чтобы настроить серверный пакетный обработчик, необходимо создать пакетную группу, и задать ее для запуска на сервере. Для самого сервера приложений опция ‘Сервер обработки пакетных заданий’ должна быть включена.



Выбор серверного или клиентского метода запуска регулируется свойством ‘RunOn’ для класса, базирующегося на RunBaseBatch.

Если свойство установлено в ‘Server’, используется серверный пакетный обработчик, автоматически запускающий задание для выбранной группы. Рекомендуется использовать этот путь.

Если значение ‘RunOn’ установлено в ‘Client’, то для выполнения пакета необходимо запустить клиента AX и периодическую процедуру обработки, как и в предыдущих версиях.

Самое интересное начинается при   ‘RunOn’, установленном в ‘CalledFrom’. Задание ставится в очередь на обработку в любом случае: при выбранной опции ‘Пакетная обработка’ – как клиентское, в обратном случае – как серверное. В общем, оставлять для такого класса значение ‘CalledFrom’, - значит с большой вероятностью иметь проблемы в будущем.

Данная статья подготовлена с помощью Windows Live Writer.



Источник: http://blogs.msdn.com/aeremenk/archi...1/9566049.aspx
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
За это сообщение автора поблагодарили: alex55 (1).
Старый 13.04.2010, 16:56   #2  
Mikky is offline
Mikky
Участник
 
16 / 10 (1) +
Регистрация: 22.07.2008
Post
Всем привет! Есть проблема, может кто сталкивался или что подскажет. Суть в следующем.

Настраиваем пакетную обработку на сервере в AX 2009.
Руководствуемся сведениями, взятыми с http://blogs.msdn.com/aeremenk/archi...1/9566049.aspx (Пакетная обработка в AX 2009)
В отличие от предыдущих версий, пакетная обработка в AX 2009 базируется на сервере, и не требует запуска клиентского приложения AX.
Между тем, для обратной совместимости оставлена возможность использовать клиентские пакетные обработчики,
основанные на тех же принципах, что и в версиях 3.0 и 4.0.

Настраиваем серверный пакетный обработчик, создаем пакетную группу, и задаем ее для запуска на сервере.
Для самого сервера приложений включаем опцию ‘Сервер обработки пакетных заданий’.

Запускаем разноску журнала типа Проводка из Управление запасами -> Журналы -> Проводки по номенклатуре.
В свойствах запускаемого класса InventJournalPost установлено свойство RunOn в CalledFrom.
На пункте меню, запускающем этот класс также свойство RunOn установлено в CalledFrom.
В параметрах в диалоге разноски журнала на вкладке ‘Пакет’ ставим галочку 'Пакетная обработка',
выбираем группу пакетов, которую мы создали ранее для запуска на сервере, указываем время запуска задания в форме,
вызываемой на кнопке “Повторение”.

Задание отправляется в очередь журнала пакетной обработки, когда наступает время запуска задание начинает обрабатываться,
затем обработка прекращается и появляется сообщение об ошибке:

Код:
Олицетворенный на сервере (RunAs) сеанс попытался вызвать метод, который доступен только на клиенте.
(S)\Data Dictionary\Tables\SysDataBaseLog\Methods\createIdent - line 8
(S)\Data Dictionary\Tables\SysDataBaseLog\Methods\insert - line 22
(S)\Classes\Application\logUpdate - line 29
(S)\Classes\xRecord\update
(S)\Classes\JournalCheckPost\updateJournalTablePosted - line 7
(S)\Classes\JournalCheckPost\runPostEnd - line 6
(S)\Classes\JournalCheckPostLedger\runPostEnd - line 7
(S)\Classes\JournalCheckPost\run - line 29
(S)\Classes\InventJournalCheckPost_Movement\run - line 9
(S)\Classes\BatchRun\runJobStatic - line 62
В методе SysDataBaseLog.createIdent() ошибка появляется на строке
i = winAPI::getTickCount();

В описании метода getTickCount находим что этот метод клиентский:
X++:
client static int getTickCount()
  {
      int ticks;
      ;
   
      ticks = System.Environment::get_TickCount();
      return ticks;
  }
Такая ошибка появляется на всех заданиях, которые делают изменения записей (вставку, удаление или изменение) таблиц,
на которых настроено ведение журнала базы данных.

Может есть какие-то мысли как решить эту проблему?


Microsoft Dinamix AX 2009 SP1.
Kernel version 5.0.1000.52.

Последний раз редактировалось Mikky; 13.04.2010 в 17:01.
Старый 13.04.2010, 17:20   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Аксапта некастомизированная? Не могу найти вызов \Data Dictionary\Tables\SysDataBaseLog\Methods\createIdent

Вообще, есть \Classes\WinAPIServer\getTickCount
Старый 13.04.2010, 17:51   #4  
Mikky is offline
Mikky
Участник
 
16 / 10 (1) +
Регистрация: 22.07.2008
Сенькс, проблема решена.
Код действительно был самописный. Думал штатный, упустил это.
Поправил. Завтра попробую оттестить пакетчик.
Старый 28.09.2010, 15:36   #5  
propeller is offline
propeller
Участник
Аватар для propeller
 
359 / 29 (1) +++
Регистрация: 25.07.2007
Цитата:
Сообщение от Blog bot Посмотреть сообщение
Если значение ‘RunOn’ установлено в ‘Client’, то для выполнения пакета необходимо запустить клиента AX и периодическую процедуру обработки, как и в предыдущих версиях.
Должна ли при этом стоять галочка "Сервер обработки пакетных заданий" в конфигурации сервера?
Пробуй с выключенным маркером - не выполняется.

Из своих наблюдений: Только при включенном параметре "Сервер обработки пакетных заданий" у задания поменяется статус с "ожидания" на выполнение, обработав такое задание, периодическая процедура обработки "проставит" в поле "прогресс" значение 100 и дальше пакетный сервер поменяет статус задание на "выполнено".

Последний раз редактировалось propeller; 28.09.2010 в 17:21.
Теги
ax2009, runbase, runbasebatch, пакетная обработка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX: Managing Your Supply Chain Using Microsoft Dynamics AX 2009 - Book Review Blog bot DAX Blogs 0 31.03.2009 23:06
AX UK: Microsoft Dynamics AX 2009 Exam Deadline extended to 1st July 2009 Blog bot DAX Blogs 0 03.12.2008 19:05
JOPX: Dynamics AX 2009 - Enterprise Portal link bonanza Blog bot DAX Blogs 0 27.11.2008 01:05
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Arijit Basu: AX 2009 - Quick Overview Blog bot DAX Blogs 4 19.05.2008 14:47

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

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

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