Показать сообщение отдельно
Старый 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.