Показать сообщение отдельно
Старый 12.11.2015, 13:13   #1  
sgt.Pepper is offline
sgt.Pepper
Участник
Аватар для sgt.Pepper
 
43 / 15 (1) ++
Регистрация: 05.10.2007
Адрес: Германия
Вызов AIF сервиса в отдельном соединении
Всем добрый день,

есть одна проблема, которая заключается в следующем:
при вызове AIF custom сервиса происходит импорт данных, во время которого пишутся логи. НО: если хоть где-то в коде выбросится ошибка или вызов ttsabort, то соответственно ни лога, ни данных...

Если бы это была одна какая-то таблица, я не задумываясь использовал бы UserConnection, но здесь сервис вызывает класс, который выполняет всю логику, поэтому классу я передать соединение не могу, к тому же класс написан внешниками и зашифрован при помощи макросов (можно конечно парсер написать, но по лицензионному соглашению запрещено).

Есть предложение от коллеги использовать anonymous pipes, примерно вот так:
X++:
        pipeServer = new System.IO.Pipes.AnonymousPipeServerStream(System.IO.Pipes.PipeDirection::Out
                                                                    , System.IO.HandleInheritability::Inheritable);

        thread = new Thread();
        thread.setInputParm([clr2XppStr(pipeServer.GetClientHandleAsString())]);
        thread.removeOnComplete(true);
        thread.run(classNum(ApIpcExample), staticMethodStr(ApIpcExample, messageReader));
        pipeServer.DisposeLocalCopyOfClientHandle();
но не уверен, что в этом случае будет использоваться отдельное соединение.

Может кто сталкивался с подобной проблемой?