Приложение 1: Типовые диапазоны жизненного цикла

Основные правила конфигурирования жизненного цикла:

  • Должно быть минимум 2 диапазона.
  • В параметрах диапазонов должны присутствовать поля:
    • executorClassName
    • executorConfigJSON
    • statusChain
    • GroupName

Рассмотрим набор доступных блоков, на основе которых может быть составлен жизненный цикл документа.

1. Тип: «Проверка логического условия»

Наименование класса для блока: BooleanCondition.

Назначение блока: проверить истинность сконфигурированного условия применительно к текущему документу (задаче) и проставить соответствующие биты состояния.

Пример конфигурации:

{
  "Type": "BooleanCondition",
  "Condition": "{ { #documentTaskData[IsFullDocument] == True } } && { { #documentTaskData[IsAllPagesBarcodeValid] == True } }",
    "OnTrue": {
    "Bits": [
      {
        "Index": 1,
        "NewValue": 1
      }
    ]
  },
  "OnFalse": {
    "Bits": [
      {
        "Index": 4,
        "NewValue": 1
      },
      {
        "Index": 10,
        "NewValue": 0
      }
    ]
  }

Описание конфигурации:

  • Type — наименование типа класса обработчика, заполняется строковым значением «BooleanCondition».
  • Condition — логическое выражение, на основе которого будет проводиться проверка. При написании данного условия может использоваться шаблон обращения к параметрам задачи, оформленный согласно синтаксиса TweezLanguage.
  • OnTrue — блок содержит набор бит, которые будут изменены, если результат выполнения условия будет ИСТИНА.
  • OnFalse — блок содержит набор бит, которые будут изменены, если результат выполнения условия будет ЛОЖЬ.
  • Bits — список объектов, описывающих биты.
  • Index — порядковый номер бита (нумерация начинается с единицы).
  • NewValue — новое значение бита, допустимые значения 1 или 0.

2. Тип: «Отправка запроса во внешнюю систему»

Наименование класса для блока: ClientChannelRequestRP.

Назначение блока: отправить запрос с данными на основе текущей задачи по каналу и обработать ответ на основе конфигурации.

Пример конфигурации:

{
  "ConfigType": "clientChannelRequest",
  "ActionList": [
    {
      "Type": "1CSOAP",
      "ClientChannelId": "1",
      "Request": {
        "InputParameters": [
          {
            "Name": "Номер документа",
            "Value": "#НомерДокумента[FieldValue]"
          },
          {
            "Name": "Дата документа",
            "Value": "#ДатаДокумента[FieldValue]"
          },
          {
            "Name": "Организация",
            "Value": "#Организация[FieldValue]"
          },
          {
            "Name": "Оператор",
            "Value": "#Оператор[FieldValue]"
          }
        ],
        "OutputParameters": [
          {
            "ColumnName": "Ref_Guid",
            "DocumentFieldName": "Ref_Guid",
            "ValidateRegexp": "^(?!\\s*$).+"
          }
        ]
      },
      "OnSuccess": {
        "Bits": [
          {
            "Index": 6,
            "NewValue": 1
          }
        ]
      },
      "OnError": {
        "Bits": [
          {
            "Index": 5,
            "NewValue": 1
          },
          {
            "Index": 10,
            "NewValue": 0
          }
        ]
      }
    }
  ]
}

3. Тип: «Проверка документа на уникальность»

Наименование класса для блока: UniqueCheck.

Назначение блока: позволяет произвести проверку, является ли обрабатываемый документ новым (уникальным) или такой документ уже имеется в хранилище.

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

Пример конфигурации:

{
  "ConfigType": "UniqueCheck",
  "OnTrue": {
    "Bits": [
      {
        "Index": 6,
        "NewValue": 1
      }
    ]
  },
  "OnFalse": {
    "Bits": [
      {
        "Index": 5,
        "NewValue": 1
      },
      {
        "Index": 10,
        "NewValue": 0
      }
    ]
  }
}

Описание конфигурации:

  • ConfigType — наименование типа класса обработчика, заполняется строковым значением «UniqueCheck».
  • OnTrue — блок содержит набор бит, которые будут изменены, если результат выполнения условия будет ИСТИНА.
  • OnFalse — блок содержит набор бит, которые будут изменены, если результат выполнения условия будет ЛОЖЬ.
  • Bits — список объектов, описывающих биты.
  • Index — порядковый номер бита (нумерация начинается с единицы).
  • NewValue — новое значение бита, допустимые значения 1 или 0.

4. Тип: «Блок завершения жизненного цикла»

Наименование класса для блока: FinishRangeProcessing.

Назначение блока: позволяет провести обработку необходимой логики на конечных точках жизненного цикла (конечных точек может быть несколько, например, успешная и ошибочная).

Пример конфигурации:

{
  "ConfigType": "DocChangeProcessing",
  "BitIndex": 10,
  "DisablingBits": [ 7, 6 ]
}