Элементы Task

Работа с Receive Task

Общее описание

Задача получения сообщений представляет собой Автоматическую Задачу, приостанавливающую выполнение ветки процесса до получения сообщения определенного типа от внешней АС или другого экземпляра процесса. После получения сообщения выполнение ветки процесса продолжается, а переданные в сообщении данные помещаются в контекст процесса и доступны для обработки в последующих задачах.
В Палитре этот элемент находится в папке "Tasks" и выглядит следующим образом:
Receive_Task

Увеличить

Графическая нотация

Задача получения сообщений обозначается как прямоугольник со скругленными краями и белым конвертом в левом верхнем углу:
Receive_Task

Увеличить

Внимание! Задачи "Отправка сообщения (Send Task)" и "Получение сообщения (Receive Task)" используются всегда в паре.
Задача "Отправка сообщения (Send Task)":
  • считывает из контекста процесса значения атрибутов, формирует из них запрос;
  • передает запрос во внешний сервис.
Задача "Получение сообщения (Receive Task)":
  • принимает ответ внешнего сервиса;
  • сохраняет атрибуты ответа в контекст процесса.
Выбор атрибутов ответа, которые необходимо сохранять в контекст, определяет сотрудник, проектирующий процесс.

XML представление

receiveTask type=xml
<bpmn2:receiveTask
    id="e17a2ced-6b3e-4c19-bca0-2b46fcbaf760"
    sbt:marker.type="Markable"
    sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableRecieveTask"
    name="New Receive Task"
>
</bpmn2:receiveTask>

Вкладка General

Описание вкладки см. в разделе Вкладка General статьи о свойствах элементов.

Вкладка Properties

Стандартная вкладка всех задач. В данном случае не содержит элементов.

Вкладка Marker

Описание вкладки приведено в разделе Настройка точек мониторинга.

Вкладка Execution Listeners

Описание вкладки приведено в разделе Настройка Execution Listeners.

Работа с Script Task \ External Script Task

Общее описание

Задача-сценарий выполняется механизмом исполнения бизнес-процессов. Разработчик модели процесса может создать скрипт, который распознается механизмом исполнения. В нужный момент, когда задача должна быть выполнена, запускается сценарий исполнения скрипта.
В Палитре эти элементы находится в папке "Tasks" и выглядят следующим образом:
  • Script Task:
    Script_Task

    Увеличить

  • External Script Task:
    Script_Task

    Увеличить

External Script Task - альтернативная реализация Script Task, которая позволяет переиспользовать существующий js или groovy-код через подключение его к шагу процесса.

Графическая нотация

Задача-сценарий (Script Task) обозначается как прямоугольник со скругленными краями и свитком в левом верхнем углу:
Script_Task

Увеличить

External Script Task:
Script_Task

Увеличить

XML представление

scriptTask type=xml
<bpmn2:scriptTask
    id="eb28351f-796a-4a71-b23d-57d39969a7a9"
    sbt:marker.type="Markable"
    sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableScriptTask"
    name="New Script Task"
    scriptFormat="JavaScript"
>
</bpmn2:scriptTask>

Вкладка General

Описание вкладки см. в разделе Вкладка General статьи о свойствах элементов.

Вкладка Properties

Script_Task

Увеличить

Допускается написание скрипта с помощью двух языков: JavaScript и Groovy. Выбор языка осуществляется с помощью выпадающего списка "Script Language".
  • Поле "Script" предназначено непосредственно для скрипта.
  • Для "External Script Task" пользователь может указать путь к файлу, из которого должен быть импортирован скрипт.
Скрипт может быть отредактирован в среде разработки и принудитльно сохранен пользователем обратно в файл.
Script_Task

Увеличить

Вкладка Marker

Описание вкладки приведено в разделе Настройка точек мониторинга.

Вкладка Execution Listeners

Описание вкладки приведено в разделе Настройка Execution Listeners.

Работа с UserTask

Общее описание

Пользовательская задача - элемент процесса, который предполагает, что задача будет выполнена человеком с использованием ПО.
В Палитре этот элемент находится в папке "Tasks" и выглядит следующим образом:
UserTask

Увеличить

Графическая нотация

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

Увеличить

XML представление

Представление пользовательской задачи в XML:
userTask type=xml
<userTask id="theTask" name="Important task"/>
   <bpmn2:userTask id="f2fe3c95-d020-4d04-b91a-22392abc268c" sbt:marker.type="Markable" sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.markableUserTask" sbt:excludedUsers="" sbt:managerRole="" bpmn:candidateGroups="" bpmn:dueDate="" bpmn:formKey="" bpmn:priority="" bpmn:assignee="" name="New User Task">
</bpmn2:userTask>
Пользовательская задача, также как и любой элемент BPMN 2.0, может иметь описание. Описание определяется путем добавления элемента "documentation":
documentation type=xml
<userTask id="theTask" name="Schedule meeting">
  <documentation>
    Schedule an engineering meeting for next week with the new hire.
  </documentation>

Вкладка General

Описание вкладки см. в разделе Вкладка General статьи о свойствах элементов.

Вкладка Properties

UserTask

Увеличить

Настройки вкладки "Properties" - группа полей "Attributes" содержит следующие параметры:
ПараметрОписание
1
AssigneeПоле, позволяющее указать логин конкретного пользователя, на которого необходимо назначить задачу. Необязательно для заполнения
2
Candidate GroupsКод роли исполнителя
3
Due DateПоле, отвечающее за значение срока исполнения пользовательской задачи с момента ее создания. Срок исполнения необходимо указывать в одном из следующих форматах: Java.util.Date, java.util.String (ISO8601), ISO8601 time-duration. Обязательно для заполнения.
Примеры заполнения поля:
- P2D - срок исполнения задачи истечет через 2 дня. Этот же период можно представить в часах, тогда выражение будет выглядеть так: PT48H;
- PT24H - срок исполнения задачи истечет через 24 часа;
- PT3H - срок исполнения задачи истечет через 3 часа;
- PT30M - срок исполнения задачи истечет через 30 минут;
- P6W - срок исполнения задачи истечет через 6 недель;
- P2Y10M15DT10H30M20S - срок исполнения задачи истечет через 2 года, 10 месяцев, 15 дней, 10 часов, 30 минут, 20 секунд.
В случае необходимости указания срока исполнения задачи через переменную, необходимо использовать выражение ${userTaskDueDate} - где userTaskDueDate - переменная, в которой хранится значение срока исполнения
4
Form KeyПоле, отвечающее за путь к форме задачи, которая будет открываться при нажатии кнопки "Выполнить" на портале. Путь к форме должен быть представлен в формате:
react:bpms-*наименование проекта*-ui?formName=*наименование формы,
либо пользователь может указать абсолютную ссылку. Пример: react:bpms-flexprice-ui?formName=managerPrimaryForm.
Обязательно для заполнения.
Важно! Форма пользовательской задачи разрабатывается и хранится в прикладной фабрике. Полный путь к форме может быть определен, как аналитиком прикладной фабрики, так и разработчиком формы
5
Manager RoleКод роли руководителя
6
PriorityПоле, отвечающее за приоритет задачи. Допустимые значения: 0-99. Обязательно для заполнения.
Диапазоны значений приоритета:
- 0 - 39: Низкий;
- 40 - 59: Средний;
- 60 - 99: Высокий
7
Excluded UsersСписок логинов пользователей, на которых не может быть назначена задача.
Важно! Поля "Manager Role" и "Candidate Groups" должны быть обязательно заполнены. Каждое поле должно содержать только одну роль

Вкладка Marker

Описание вкладки представлено в разделе Настройке точек мониторинга.

Вкладка Execution Listeners

Описание вкладки представлено в разделе Настройке Execution Listeners.

Вкладка Task Listeners

Вкладка служит для настройки Task Listeners.
UserTask

Увеличить

Task Listeners рекомендованы к использованию для вызова повторяющихся, рутинных действий, обработки атрибутов контекста процесса и контекста пользовательских задач, присвоения значений констант.
Вызываемая функциональность может быть представлена:
  • выражением на языке "Java Query Language";
  • вызовом Java-класса с вложенной функциональностью.
Для добавления Task Listener необходимо нажать пиктограмму "плюс" и в открывшемся окне заполнить поля:
UserTask

Увеличить

  • Свойства "Task Listeners" - "Task Listeners List":
ПараметрЗначениеКомментарий
Value Type
Тип слушателяДоступно одно значение: Expression. Значение Class более недоступно
Value
ЗначениеНеактуально: для слушателей типа Class необходимо указать путь до класса в формате "com.sbt.bpms.Наименование проекта.serviceTasks.Наименование класса". Например, com.sbt.bpms.flexprice.serviceTasks.NotifyInvolvedService.
Для слушателей типа Expression необходимо указать выражение, которое требуется выполнить
Select
Ready ExpressionИспользование готовых выражений Использование готовых выражений описано ниже
Event
СобытиеTask Listeners отслеживает события:
- Create - Task Listener выполняется, когда Пользовательская задача создана;
- Assignment - Task Listener выполняется, когда Пользовательская задача назначена на исполнителя;
- Complete - Task Listener выполняется, когда Пользовательская задача выполнена
  • Использование готовых выражений: преднастроенные выражения доступны для версии 1.9 и выше.
    Среда разработки имеет список преднастроенных наиболее часто используемых выражений. Для использования преднастроенного выражения необходимо нажать кнопку "Select". Откроется окно со списком доступных выражений:
    UserTask

    Увеличить

    Возможен поиск выражения с помощью поля "Search Pattern".
    Выбрав нужное выражение, необходимо ввести недостающие параметры:
    UserTask

    Увеличить

    После заполнения всех необходимых полей нажмите "Ok". В строке "Value" отобразится итоговое выражение:
    UserTask

    Увеличить

    Для сохранения Task Listener нажмите "Оk".

Вкладка Extra Attributes

Вкладка служит для настройки атрибутов Пользовательской задачи, которые будут отображаться в Карточке задачи на Портале задач. Кроме того, указанные дополнительные атрибуты используются для создания динамической группы на портале задач.
UserTask

Увеличить

Для создания дополнительного атрибута необходимо нажать пиктограмму "плюс" и в открывшемся окне заполнить поля:
ПараметрЗначениеКомментарий
Process Var Name
Наименование переменной контекста процессаНеобходимо указать наименование переменной контекста процесса, в которой хранится значение дополнительного атрибута
Extra Attribute Name
Наименование дополнительного атрибутаНаименование дополнительного атрибута отображается на портале задач на карточке задачи
Documentation
ОписаниеКраткое описание атрибута (опционально)
Type
Тип дополнительного атрибутаДоступно три типа атрибутов:
- SearchField - атрибут отображается только на карточке и доступен для поиска;
- Date - атрибут отображается на карточке, не участвует в поиске и доступен в виде date picker на панели фильтров для поиска по диапазону дат;
- Dictionary - атрибут отображается на карточке, участвует в поиске и доступен в виде multiselect на панели фильтров. Ограничение - 25 значений в фильтре. Т.е. если есть предположение, что в атрибуте будет больше 25 уникальных значений, то необходимо использовать тип searchField
Code
Код дополнительного атрибутаНеобходимо указать код дополнительного атрибута
Visibility
Видимость дополнительного атрибута на вкладке задачиДоступно два режима: Visible - дополнительный атрибут отображается на карточке задачи. Invisible - дополнительный атрибут не отображается на карточке задачи
Количество дополнительных атрибутов для одной пользовательской задачи ограничено: доступно 8 дополнительных атрибутов (и видимых, и невидимых).

Работа с Rest Task

Общее описание

Rest Task является задачей-вызовом REST API. Разработчик указывает API и сопутствующие параметры. В нужный момент, когда задача должна быть выполнена, данный API вызывается в соответствии с заданными параметрами и выбранной (либо дефолтной) политикой повторных вызовов.

Графическая нотация

Задача вызова REST API обозначается как прямоугольник со скругленными краями и прямоугольником с надписью "REST" в левом верхнем углу:
Rest_Task

Увеличить

В Палитре этот элемент находится в папке "Tasks".

XML представление

task type=xml
<bpmn2:task id="f1b51f0d-e45a-449c-a1d2-dff3f8a92d00" sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.RestTask" sbt:url="bpm.sbrf.ru/engine/v4/instances/{instanceId}/message" sbt:methodName="post" sbt:retryPolicyModelId="2" sbt:retryPolicyModelDescription="MyService policies" sbt:outputMapping="expression" sbt:apiSource="file" name="New Task">
  <bpmn2:extensionElements>
    <sbt:inputParamList>
      <sbt:inputParam xsi:type="sbt:InputParam" sbt:id="f11793fe-eb12-4456-bbe0-60f025000120">
        <sbt:name>instanceId</sbt:name>
        <sbt:type xsi:type="sbt:Value" text="required string (uuid)"><![CDATA[required string (uuid)]]></sbt:type>
        <sbt:variableName xsi:type="sbt:Value" text="v1"><![CDATA[v1]]></sbt:variableName>
        <sbt:inType>path</sbt:inType>
      </sbt:inputParam>
      <sbt:inputParam xsi:type="sbt:InputParam" sbt:id="ff9502b3-b42e-427f-9573-3f77cb81dbc4">
        <sbt:name>messageName</sbt:name>
        <sbt:type xsi:type="sbt:Value" text="required string"><![CDATA[required string]]></sbt:type>
        <sbt:variableName xsi:type="sbt:Value" text="v2"><![CDATA[v2]]></sbt:variableName>
        <sbt:inType>requestBody</sbt:inType>
      </sbt:inputParam>
      <sbt:inputParam xsi:type="sbt:InputParam" sbt:id="4525cc6f-0ed4-45a0-894f-c11e44a4c236">
        <sbt:name>payload</sbt:name>
        <sbt:type xsi:type="sbt:Value" text="object map<string, anyOf: boolean, string, number, integer, object>"><![CDATA[object map<string, anyOf: boolean, string, number, integer, object>]]></sbt:type>
        <sbt:variableName xsi:type="sbt:Value" text="v3"><![CDATA[v3]]></sbt:variableName>
        <sbt:inType>requestBody</sbt:inType>
      </sbt:inputParam>
    </sbt:inputParamList>
    <sbt:responseParamList>
      <sbt:responseParam xsi:type="sbt:ResponseParam" sbt:id="d3af90f2-badd-4f93-a1ef-dda1d27f4689">
        <sbt:httpCode>200</sbt:httpCode>
        <sbt:contentType>application/json</sbt:contentType>
        <sbt:type>Schema Result</sbt:type>
      </sbt:responseParam>
      <sbt:responseParam xsi:type="sbt:ResponseParam" sbt:id="cbc118cb-9d3e-4187-ae2c-6af760755f18">
        <sbt:httpCode>400</sbt:httpCode>
        <sbt:contentType>application/json</sbt:contentType>
        <sbt:type>Schema Error</sbt:type>
      </sbt:responseParam>
      <sbt:responseParam xsi:type="sbt:ResponseParam" sbt:id="bff63b99-381f-41af-823c-c1189ea965d9">
        <sbt:httpCode>401</sbt:httpCode>
        <sbt:contentType>application/json</sbt:contentType>
        <sbt:type>Schema Error</sbt:type>
      </sbt:responseParam>
      <sbt:responseParam xsi:type="sbt:ResponseParam" sbt:id="ab4daa7f-eec7-4c67-8ca1-862a31d5d8c0">
        <sbt:httpCode>403</sbt:httpCode>
        <sbt:contentType>application/json</sbt:contentType>
        <sbt:type>Schema Error</sbt:type>
      </sbt:responseParam>
      <sbt:responseParam xsi:type="sbt:ResponseParam" sbt:id="f14ac0fe-cbcb-4dc3-a06b-ad28c5c0f90a">
        <sbt:httpCode>404</sbt:httpCode>
        <sbt:contentType>application/json</sbt:contentType>
        <sbt:type>Schema Error</sbt:type>
      </sbt:responseParam>
      <sbt:responseParam xsi:type="sbt:ResponseParam" sbt:id="f641cc65-07e5-4b8c-948b-6c13588f3fcc">
        <sbt:httpCode>500</sbt:httpCode>
        <sbt:contentType>application/json</sbt:contentType>
        <sbt:type>Schema Error</sbt:type>
      </sbt:responseParam>
    </sbt:responseParamList>
    <sbt:httpHeaderList>
      <sbt:httpHeader xsi:type="sbt:HTTPHeader" sbt:id="efd5e6fb-e6b9-46c7-8dc0-dc483c1f15e3">
        <sbt:name>Content-Type</sbt:name>
        <sbt:value>application/json</sbt:value>
      </sbt:httpHeader>
    </sbt:httpHeaderList>
    <sbt:httpCodeErrorMappingList>
      <sbt:httpCodeErrorMapping xsi:type="sbt:HTTPCodeErrorMapping" sbt:id="e2122032-8c70-4ef3-87bb-b81209d1aad9">
        <sbt:bpmnErrorCode>1</sbt:bpmnErrorCode>
        <sbt:httpCode>400</sbt:httpCode>
      </sbt:httpCodeErrorMapping>
    </sbt:httpCodeErrorMappingList>
    <sbt:exceptionErrorMappingList>
      <sbt:exceptionErrorMapping xsi:type="sbt:ExceptionErrorMapping" sbt:id="bc8d2c6f-3c4c-4e03-9418-5b47467e0f9a">
        <sbt:bpmnErrorCode>2</sbt:bpmnErrorCode>
        <sbt:exceptionName xsi:type="sbt:Value" text="exception"><![CDATA[exception]]></sbt:exceptionName>
      </sbt:exceptionErrorMapping>
    </sbt:exceptionErrorMappingList>
    <sbt:outputParamList>
      <sbt:outputParam xsi:type="sbt:OutputParam" sbt:id="b17eb956-81be-4499-a94b-c3f755582355">
        <sbt:variableName xsi:type="sbt:Value" text="a"><![CDATA[a]]></sbt:variableName>
        <sbt:expression xsi:type="sbt:Value" text="b"><![CDATA[b]]></sbt:expression>
      </sbt:outputParam>
    </sbt:outputParamList>
  </bpmn2:extensionElements>
  <bpmn2:incoming>d590907b-88ce-4aea-8faf-0c2466e9bb4c</bpmn2:incoming>
  <bpmn2:outgoing>cce384d8-fb84-4b06-9f3f-056859ff0ce8</bpmn2:outgoing>
</bpmn2:task>

Вкладка General

Описание вкладки см. в разделе Вкладка General статьи о свойствах элементов.

Вкладка Properties

Rest_Task

Увеличить

  • В блоке "Select API" необходимо указать API:
    • Initial URL - URL API;
    • URL - заполняется пользователем вручную;
    • Method name - заполняется пользователем вручную в режиме Manual, в остальных случаях подгружается системой.
    Доступны несколько способов:
    • File – с помощью кнопки "Select" необходимо указать путь к локальному YAML / JSON файлу;
    • Manual – вручную ввести URL (URL сервиса абсолютный, не меняется от стенда к стенду, настраивается на istio, нельзя указывать из контекста) и Method name;
    • при данном способе указания API доступен ручной ввод инпут данных в разделе "Input Parameter List".
    Переключатель "Output Parameters Mapping" можно перемещать в следующие положения:
    • Direct Mapping - ожидается получение map-файла с автоматичесикм маппингом, настройка "Out Parameter List" недоступна;
    • Mapping by Expression - ручной маппинг через настройку "Out Parameter List".
    Пример
    Пример type=yml
    {
      "messageName": "conversionIntermediateMessageName",
      "payload":
        { "fio": "ФИО", "address": { "street": "Улица", "buildNumber": 00 } },
    }
    
  • В блоке "HTTP Header List" можно изменить, добавить, удалить заголовки запросов редактируя параметры:
    • Name;
    • Value.
  • В блоке "Input Parameter List" можно изменить, добавить, удалить входные параметры:
    ПараметрОписание
    Name
    Имя входного параметра
    Type
    Тип параметра (значение оборачивается в CDATA в bpmn-файле). Этот параметр не используется в рантайме и не является обязательным
    Variable Name (Value/Expression)
    Задание константы или выражения в формате Java Expression Language для передачи этого значения в качестве входного аргумента в вызываемый метод (значение оборачивается в CDATA в bpmn-файле)
    In Type
    Тип использования входного параметра:
    - path - значение переменной подставляется в url вместо соответствующей переменной в фигурных скобках;
    - query - переменная со значением добавляется к url после знака "?";
    - requestBody - переменные, которые передаются в теле запроса в формате, написанном в столбце "Content Type"
  • В блоке "Response Parameter List" - таблица с описанием возможных ответов на запрос:
    ПараметрОписание
    HTTP Code
    HTTP код ответа
    Content Type
    Описание формата содержимого, которое придет в ответе
    Type
    Описание данных в ответе (название схемы из файла с описанием апи или список параметров с именами и типами)
  • В блоке "Out Parameter List" можно изменить, добавить, удалить входные параметры:
    ПараметрОписание
    Variable Name
    Имя переменной контекста для сохранения полученного значения
    Value/Expression
    Объект/ответ целиком (через плейсхолдер @RESULT), атрибут полученного объекта (@RESULT.attribute)
  • В блоке "HTTP Code Error Mapping List" можно изменить, добавить, удалить маппинг BPMN ошибок на коды HTTP ошибок:
    ПараметрОписание
    BPMN Error
    Код ошибки в BPMN, на которую можно завязать логику работы (Error Event)
    HTTP Code
    Код ошибки http
  • В блоке "Exception Mapping List" можно изменить, добавить, удалить мапинг исключений на коды ошибок BPMN:
    ПараметрОписание
    BPMN Error
    Код ошибки в BPMN, на которую можно завязать логику работы
    Error/Expression
    Код\текст ошибки

Вкладка Marker

Описание вкладки описано в разделе Настройке точек мониторинга.

Вкладка Execution Listeners

Описание вкладки описано в разделе Настройке Execution Listeners.

Работа с JSON-RPC Task

Общее описание

JSON-RPC Task является задачей-вызовом API. Разработчик указывает API и сопутствующие параметры. В нужный момент, когда задача должна быть выполнена, данный API вызывается в соответствии с заданными параметрами и выбранной (либо дефолтной) политикой повторных вызовов.

Графическая нотация

Задача вызова стороннего API – "JSON-RPC Task" обозначается как прямоугольник со скругленными краями и двоеточием внутри фигурных скобок в левом верхнем углу:
JSON_RPC_Task

Увеличить

В Палитре этот элемент находится в папке "Tasks" и выглядит следующим образом:
JSON_RPC_Task

Увеличить

XML представление

task type=xml
<bpmn2:task id="bc2a7f47-cfe3-4797-b7af-284b1b5ef772" sbt:sbtType="com.sbt.bpms.modeler.plugin.marker.JsonRpcTask" sbt:url="http://127.0.0.1:3000/examplePost" sbt:initialUrl="http://127.0.0.1:3000/examplePost" sbt:methodName="examplePost" sbt:retryPolicyModelId="2" sbt:retryPolicyModelDescription="MyService policies" sbt:timeout="PT10S" sbt:outputMapping="expression" sbt:apiSource="file" sbt:payloadType="map" name="New Task">

      <bpmn2:extensionElements>

        <sbt:inputParamList>

          <sbt:inputParam xsi:type="sbt:InputParam" sbt:id="39be5c47-a5e3-4b52-9300-cafe95407d28">

            <sbt:name>method</sbt:name>

            <sbt:type xsi:type="sbt:Value" text="required string"><![CDATA[required string]]></sbt:type>

            <sbt:variableName xsi:type="sbt:Value" text="value1"><![CDATA[value1]]></sbt:variableName>

          </sbt:inputParam>

          <sbt:inputParam xsi:type="sbt:InputParam" sbt:id="8333c31e-ea36-4b6a-8246-ba573877ccce">

            <sbt:name>id</sbt:name>

            <sbt:type xsi:type="sbt:Value" text="required integer (int32)"><![CDATA[required integer (int32)]]></sbt:type>

            <sbt:variableName xsi:type="sbt:Value" text="value2"><![CDATA[value2]]></sbt:variableName>

          </sbt:inputParam>

          <sbt:inputParam xsi:type="sbt:InputParam" sbt:id="a88f9aeb-79ef-44a5-80b8-a28f0e07365b">

            <sbt:name>jsonrpc</sbt:name>

            <sbt:type xsi:type="sbt:Value" text="required string"><![CDATA[required string]]></sbt:type>

            <sbt:variableName xsi:type="sbt:Value" text="value3"><![CDATA[value3]]></sbt:variableName>

          </sbt:inputParam>

          <sbt:inputParam xsi:type="sbt:InputParam" sbt:id="fda36e72-6e99-4a13-a212-a664261be1fb">

            <sbt:name>params</sbt:name>

            <sbt:type xsi:type="sbt:Value" text="required object (jsonParam: required integer)"><![CDATA[required object (jsonParam: required integer)]]></sbt:type>

            <sbt:variableName xsi:type="sbt:Value" text="value4"><![CDATA[value4]]></sbt:variableName>

          </sbt:inputParam>

        </sbt:inputParamList>

        <sbt:httpHeaderList>

          <sbt:httpHeader xsi:type="sbt:HTTPHeader" sbt:id="b4e448dc-db57-4f2b-ad4c-bb589d4363c7">

            <sbt:name>Content-Type</sbt:name>

            <sbt:value>application/json</sbt:value>

          </sbt:httpHeader>

        </sbt:httpHeaderList>

        <sbt:outputParamList>

          <sbt:outputParam xsi:type="sbt:OutputParam" sbt:id="fb6788ae-d808-4f4e-968a-2823c5e03175">

            <sbt:variableName xsi:type="sbt:Value" text="output"><![CDATA[output]]></sbt:variableName>

            <sbt:expression xsi:type="sbt:Value" text="@RESULT"><![CDATA[@RESULT]]></sbt:expression>

          </sbt:outputParam>

        </sbt:outputParamList>

        <sbt:httpCodeErrorMappingList>

          <sbt:httpCodeErrorMapping xsi:type="sbt:HTTPCodeErrorMapping" sbt:id="a8770405-3f83-484f-a4eb-af783c0a0c63">

            <sbt:bpmnErrorCode>bpmn_error</sbt:bpmnErrorCode>

            <sbt:httpCode>http_code</sbt:httpCode>

          </sbt:httpCodeErrorMapping>

        </sbt:httpCodeErrorMappingList>

        <sbt:exceptionErrorMappingList>

          <sbt:exceptionErrorMapping xsi:type="sbt:ExceptionErrorMapping" sbt:id="d016fae5-97b4-4260-b7da-999a1635f41f">

           <sbt:bpmnErrorCode>bpmn_error</sbt:bpmnErrorCode>

            <sbt:exceptionName xsi:type="sbt:Value" text="exception"><![CDATA[exception]]></sbt:exceptionName>

          </sbt:exceptionErrorMapping>

        </sbt:exceptionErrorMappingList>

      </bpmn2:extensionElements>

    </bpmn2:task>

Вкладка General

Описание вкладки см. в разделе Вкладка General статьи о свойствах элементов.

Вкладка Properties

JSON_RPC_Task

Увеличить

  • В блоке "Select API" необходимо указать API.
    ПараметрОписание
    Initial URL
    URL API
    URL
    Заполняется пользователем вручную
    Method name
    Заполняется пользователем вручную в режиме Manual, в остальных случаях подгружается системой
    Доступны несколько способов:
    • File – с помощью кнопки "Select" необходимо указать путь к локальному YAML / JSON файлу;
    • Manual – вручную ввести URL (URL сервиса абсолютный, не меняется от стенда к стенду, настраивается на istio, нельзя указывать из контекста) и Method name (при данном способе указания API доступен ручной ввод инпут данных в разделе "Input Parameter List").
  • В блоке "Retry Policy" необходимо выбрать или задать политику повторных вызовов сервисов. Подробнее см. в разделе Retry Policy.
  • Переключатель "Output Parameters Mapping" можно перемещать в положения:
    • Direct Mapping - ожидается получение map-файла с автоматичесикм маппингом, настройка "Out Parameter List недоступна";
    • Mapping by Expression - ручной маппинг через настройку "Out Parameter List".
    Пример type=yml
    {
      "messageName": "conversionIntermediateMessageName",
      "payload":
        { "fio": "ФИО", "address": { "street": "Улица", "buildNumber": 00 } },
    }
    
  • В блоке "HTTP Header List" можно изменить, добавить, удалить заголовки запросов редактируя параметры:
  • Name;
  • Value.
  • В блоке "Input Parameter List" можно изменить, добавить, удалить входные параметры:
    ПараметрОписание
    Name
    Имя входного параметра
    Type
    Тип параметра. Поддерживаются строки, числа, массивы данных (array), json, dto. Этот параметр не используется в рантайме и не является обязательным
    Variable Name (Value/Expression) - Value/Expression
    Константа или выражение (доступно использование JUEL)
  • В блоке "Out Parameter List" можно изменить, добавить, удалить входные параметры:
    ПараметрОписание
    Variable Name
    Имя переменной контекста для сохранения полученного значения
    Value/Expression
    Объект/ответ целиком (через плейсхолдер @RESULT), атрибут полученного объекта (@RESULT.attribute)
  • В блоке "HTTP Code Error Mapping List" можно изменить, добавить, удалить мапинг ошибкок протокола:
    ПараметрОписание
    BPMN Error
    Код ошибки в BPMN, на которую можно завязать логику работы (Error Event)
    HTTP Code
    Код ошибки http
  • В блоке "Exception Mapping List" можно изменить, добавить, удалить мапинг исключений на коды ошибок BPMN:
    ПараметрОписание
    BPMN Error
    Код ошибки в BPMN, на которую можно завязать логику работы
    Error Event
    Код Error Event
    Error/Expression
    Код\текст ошибки

Вкладка Marker

Описание вкладки описано в разделе Настройке точек мониторинга.

Вкладка Execution Listeners

Описание вкладки описано в разделе Настройке Execution Listeners.
Предыдущий раздел
Элемент Lane
Следующий раздел
Работа с Sequence Flow
Была ли страница полезной?