Копировать ссылку на страницу Перейти в предыдущий раздел Перейти в следующий раздел

Модуль отправки в систему DIRECTUM настраивается с помощью секций:

ISBuilderSender - для отправки пакетов с одной линии;
ISBuilderCmdLineSender - для параллельной отправки пакетов с нескольких линий, что позволяет увеличить производительность сервиса ввода.

Структура секции ISBuilderSender:

 

<ISBuilderSender Type="{Тип отправителя}">
  <clear/>
     {Модуль отправки}
     ...
</ISBuilderSender>
 
где {Модуль отправки}::=
<add Name="{Имя модуля}"
  ConnectionString="{Параметры подключения}"
  Script="{Имя сценария}"
  LaunchParamsCode="{Параметры запуска сценария}"
  WorkingFolder="{Папка временных файлов}"
  KeepConnection="{Использовать соединение}"
  TimeOut= "{Время ожидания выполнения сценария}"
  TryCount="{Количество попыток}"/>

Type – имя класса, реализующего отправитель.

add – настройки модуля отправки:

Name. Уникальное имя модуля отправки, используемое для настройки линии. Может содержать до 20 символов.
ConnectionString. Параметры подключения к системе DIRECTUM. Задаются в одном из форматов:

 

{Параметры подключения с указанием кода системы}::=
<add Name="{Имя модуля отправки}"
  ConnectionString="SystemCode={Код системы};
  [UserName={Имя пользователя};
  Password={Пароль пользователя};
  IsOSAuth={Признак windows-аутентификации};
  IsVirtualPassword={Признак перекодированного пароля}"]/>

 

{Параметры подключения с указанием сервера и базы данных}::=
<add Name="{Имя модуля отправки}"
  ConnectionString="ServerName={Имя сервера};
  DBName={Имя базы данных};
  [UserName={Логин пользователя};
  Password={Пароль пользователя};
  IsOSAuth={Признак Windows-аутентификации};
  IsVirtualPassword={Признак перекодированного пароля}"]/>

IsOSAuth. Признак использования Windows-аутентификации. Возможные значения: True, False.
IsVirtualPassword. Признак использования перекодированного пароля. Возможные значения: True, False.
Script. Укажите наименование сценария из компоненты Сценарии, который будет заносить документы в DIRECTUM. Если результат запуска сценария - пустая строка, то сценарий выполнен успешно, если сценарий вернул результат, отличный от пустой строки, то это считается ошибкой. В случае ошибки модуль отправки отправляет документы заново. Время ожидания выполнения отправки и количество попыток запуска задается при настройке служб ввода. Подробнее см. раздел «Модуль отправки в систему DIRECTUM». Каждая попытка отправки записывается в журнал событий Windows. Подробнее см. раздел «Журнал событий».
LaunchParamsCode. Код записи справочника Параметры запуска компонент, которая содержит дополнительные параметры сценария занесения в DIRECTUM. Параметр является необязательным. Если его значение не указано, то будут использоваться параметры по умолчанию. Подробнее см. раздел «Параметры запуска».
WorkingFolder. Папка временных файлов.
KeepConnection. Признак сохранения соединения после каждой отправки пакета. Возможные значения:
True – соединение с системой DIRECTUM устанавливается один раз, при отправке первого после старта службы пакета.
False – для отправки каждого пакета устанавливается новое соединение.

Параметр является необязательным. По умолчанию параметр имеет значение True. Для увеличения быстродействия рекомендуется использовать значение True.

TimeOut. Временной интервал, в течение которого модуль отправки будет ожидать выполнения сценария. Укажите в формате <[дни.]чч:мм:cc>, например, 1.23:59:59. Если время ожидания истекает, то службы ввода могут попытаться снова отправить пакет в зависимости от значения параметра TryCount. Значение по умолчанию 0.00:05:00.
TryCount. Количество попыток выполнения сценария. Если за указанное количество попыток не удастся выполнить сценарий, то пакет с документом будет сохранен в папке для временных файлов.

Свернуть/развернуть пример Пример

<ISBuilderSender
Type="NpoComputer.Dcts.Capture.Senders.ISBuilderSender.ISBuilderSenderFactory">
  <clear/>
    <add Name="FaxToSystemSender"
      ConnectionString="ServerName=W1;
      DBName=SystemTest;UserName=Administrator;
      Password=PD29Q9;
      IsOSAuth=False;
      IsVirtualPassword=False"
      Script="Dcts FaxImport"
      WorkingFolder="d:\temp\DCTS\fax\sender"
      TimeOut="0.0:0:30"
      TryCount="1" />
</ISBuilderSender>

Структура секции ISBuilderCmdLineSender аналогична ISBuilderSender за исключением двух параметров:

дополнительный параметр MaxParallelProcessesCount - максимальное число процессов отправки, которые могут быть запущены параллельно. Параметр является необязательным. Если он не указан, то максимальное число параллельных процессов отправки будет принято равным числу процессорных ядер сервера, но не больше 16;
в случае успешного завершения сценария, указанного в параметре Script модуля отправки ISBuilderCmdLineSender, в файл ScriptResult.txt следует записать строку «Success». Любая другая строка или отсутствие файла по завершении сценария будут восприняты как ошибка в работе сценария.

Свернуть/развернуть пример Пример настройки параллельной отправки

 

<sectionGroup name="Senders">
<section name="ISBuilderCmdLineSender" type="NpoComputer.Dcts.Capture.Senders.ISBuilderCmdLineSender.ISBuilderCmdLineSenderFactorySettings, NpoComputer.Dcts.ISBuilderCmdLineSender" />
</sectionGroup>
<Senders>
<ISBuilderCmdLineSender Type="NpoComputer.Dcts.Capture.Senders.ISBuilderCmdLineSender.ISBuilderCmdLineSenderFactory">
  <clear/>
  <add Name="SystemCmdLineSender"
    ConnectionString="ServerName=W1;
      DBName=SystemTest;UserName=Administrator;
      Password=PD29Q9;
      IsOSAuth=False;
      IsVirtualPassword=False"
    Script="Dcts FaxImport"
    WorkingFolder="d:\temp\DCTS\fax\sender"
    TimeOut="0.0:0:20"
    MaxParallelProcessesCount ="8"
    TryCount="3" />
</ISBuilderCmdLineSender>
</Senders>

Этот код необходимо реализовать в сценарии Dcts FaxImport, указанном в параметре Script в примере выше.

Свернуть/развернуть пример Пример ISBL-кода для записи в файл результата выполнения сценария обработки пакета

 

try

  try

    // Выполнить обработку пакета.

    

    // Результат выполнения считать успешным.

    // Если возникнет ошибка, результат выполнения будет перезаписан.

    ScriptResult = "Success"

  except

    // Получить исключение, возникшее при выполнении сценария.

    Exception = GetLastException() 

    // В результат выполнения сценария записать полученное исключение.

    ScriptResult = Format("%0:s %1:s"; ArrayOf(Exception.Name; Exception.Message))

    // Сгенерировать исключение для корректного продолжения работы.

    Raise(Exception)

  endexcept

finally

  // Записать в файл ScriptResult.txt результат выполнения сценария.

  WriteFile(Sender.Params.ValueByName('FilePath')&"\"&"ScriptResult.txt";;ScriptResult)

endfinally

© Компания DIRECTUM, 2018 Сообщество пользователей DIRECTUM
.navbar > a:hover { background: #FFD73B; }