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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.10.2018, 10:40   #1  
iiipoizone is offline
iiipoizone
Участник
 
43 / 11 (1) +
Регистрация: 07.09.2015
SalesFormLetter на сервере
X++:
while select InventVendCust, CustVendInventNum from transportRouteTrans
                   where transportRouteTrans.RouteId == transportRouteTable.RouteId
                   && transportRouteTrans.InventVendCust == InventVendCust::Customer
               {
                    salesTable = transportRouteTrans.salesTable();
                    info("Заказ: "+salesTable.SalesId);

                    salesFormLetter = SalesFormLetter::construct( DocumentStatus::Facture_RU );
                    salesFormLetter.parmPackingSlipIdFilter( salesTable.lastPackingSlip() );
                    salesFormLetter.update( salesTable, salesTable.ShippingDateRequested, SalesUpdate::PackingSlip, AccountOrder::None, NoYes::No, NoYes::No );
                }
Пытаюсь сделать разноску Счет-фактуры на сервере в пакетном задании. Но появляется ошибка:

Олицетворенный на сервере (RunAs) сеанс попытался вызвать метод, который доступен только на клиенте.
Номер строки с ошибкой указывает всегда последнюю строчку с кодом в методе, где вызывается SalesFormLetter.
Будь это Infolog или ttscommit;

Если комментировать salesFormLetter то ни на одной сроке ошибок не происходит.
как решить проблему? он не показывает строку , где возникает ошибка.

В классе стоит RunOnServer, в ручном не пакетном задании все работает безупречно
Старый 25.10.2018, 10:55   #2  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
В общем - где-то в в salesformletter стоит вызов метода со спецификатором client. (Скорее всего - это ваша доработка). Когда у вас вызов происходит из обычной пользовательской сесии, у вас все нормально отрабатывает (просто вызов на клиента уходит). Однако при вызове из батча, клиент, как таковой, отсутствует. Поэтому при попытке вызова метода, помечанного как client, система просто генерирует exception.

Во первых - проанализируйте свои изменения. Если найдете вызовы логики, привязанной к клиенту - попробуйте ее исправить. Второй способ - можно попробовать отлаживать сам батч сервер (как описано здесь https://docs.microsoft.com/en-us/dyn...2012#BatchJobs). У меня, правда есть подозрение, что вам для отладки придется местами поотрубать вызов CIL через runAs(). (Ну или можно попробовать CIL с помощью Visual Studio трассировать - но это жесткий экстрим). Так что лучше все-таки код проанализировать, чем возиться с отладкой батча...
За это сообщение автора поблагодарили: iiipoizone (1).
Старый 25.10.2018, 11:38   #3  
iiipoizone is offline
iiipoizone
Участник
 
43 / 11 (1) +
Регистрация: 07.09.2015
Нашел в чем была проблема. AX похоже не умеет отлавливать статические клиентские методы
Старый 25.10.2018, 14:09   #4  
iiipoizone is offline
iiipoizone
Участник
 
43 / 11 (1) +
Регистрация: 07.09.2015
Если запускать разноску на пакете - то создаются несколько пакетных заданий для многопоточной разноски с именем: "Завершить многопотоковую разноску". Это конечно очень хорошо в плане производительности, но они так и будут накапливаться с каждым новым запуском разноски?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Риторический вопрос. Почему в Ах2012 для обработки счетов-фактур НЕ использован SalesFormLetter ? ta_and DAX: Программирование 4 03.09.2018 09:23
Отказано в доступе: SalesFormLetter_Invoice4Paym_RU arhat DAX: Программирование 0 13.03.2017 06:57
Ошибка в AX2009 EE: SalesFormLetter_xxx EVGL DAX: Программирование 6 09.02.2012 19:35
Отладка на сервере Bega DAX: Программирование 6 21.02.2011 15:38
Формат даты на сервере и клиенте bio_unit DAX: Администрирование 2 25.08.2004 16:44
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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