25.10.2018, 10:40 | #1 |
Участник
|
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 |
Moderator
|
В общем - где-то в в 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 |
Участник
|
Нашел в чем была проблема. AX похоже не умеет отлавливать статические клиентские методы
|
|
25.10.2018, 14:09 | #4 |
Участник
|
Если запускать разноску на пакете - то создаются несколько пакетных заданий для многопоточной разноски с именем: "Завершить многопотоковую разноску". Это конечно очень хорошо в плане производительности, но они так и будут накапливаться с каждым новым запуском разноски?
|
|