Дизайнер процессов
Внешний вызов

Формирование запросов на вызов внешней системы

Чтобы вызвать внешнюю системы (REST, RPC, SOAP) необходимо добавить кубик service Task. После чего сконфигурировать под нужный тип сервиса. На вкладке "Общее" в поле "Имплементация" из выпадающего списка выбрать "Коннектор". После чего на вкладке "Коннектор" произвести настройку под необходимый вид интеграции.

empty

По ссылке ниже можно скачать пример диаграммы со всеми перечисленными интеграциями.

Скачать пример диаграммы

Настроечные параметры для Коннекторов

REST

REST Diasoft Archetype Call

empty

Для формирования REST на вкладке "Коннектор" необходимо указать следующее:

  1. ID коннектора - rest connector
  2. Входные параметры:
    • service - наименование вызываемого сервиса;
    • resource - ссылка на вызов метода сервиса;
    • method - метод API (POST, GET, PUT, DELETE);
    • payload - тело запроса в виде JSON.
  3. Выходные параметры (в зависимости от того, что нужно получить/обработать):
    • получение параметра сообщения.
      Пример: "имя переменной" - ${response.get("content").get(0).get("clientCode")}
    • получение тела сообщения (тело сообщения автоматически распарсится, параметры тела поместятся в контекст процесса).
      Пример: "имя переменной" - ${response}
    • код ответа.
      Пример: "имя переменной" - ${statusCode}

Для большинства входящих и исходящих параметров используется "Тип переменной" = "Строка или выражение". Для получения конкретного параметра из тела сообщения или формирование входящего параметра вручную требуется заполнить поля следующим образом:

  1. Тип переменной - скрипт;
  2. Формат скрипта - Groovy;
  3. Пример скрипта:
$(response).get("message").stringValue()

REST not Diasoft Archetype

empty

Для формирования внешнего REST на вкладке "Коннектор" необходимо указать следующее:

  1. ID коннектора - http connector
  2. Входные параметры:
    • url - ссылка на вызываемый источник;
    • method - метод API (POST, GET, PUT, DELETE);
    • payload - тело запроса в виде JSON.
  3. Выходные параметры (в зависимости от того, что нужно получить/обработать):
🚫

Тело сообщения автоматически не парсится, данный параметр будет иметь тип string

  • получение тела сообщения, тип string.
    Пример: "имя переменной" - ${response}
  • получение тела сообщения, тип Скрипт Groovy.
    Пример: "имя переменной" - connector.getVariable("response")
  • код ответа, тип string.
    Пример: "имя переменной" - ${statusCode}

JSON RPC

empty

Формируется аналогично внешнему REST (not Diasoft Archetype).

  1. ID коннектора - http connector
  2. Входные параметры:
    • url - ссылка на вызываемый источник;
    • method - метод API (POST, GET, PUT, DELETE);
    • payload - тело запроса по спецификации JSON-RPC. Пример (тип переменной: строка или выражение):
    {
        "jsonrpc": "2.0",
        "method": "my-method",
        "params": [
            42,
            23
        ],
        "id": 100
    }
  3. Выходные параметры (в зависимости от того, что нужно получить/обработать):
🚫

Тело сообщения автоматически не парсится, данный параметр будет иметь тип string

  • получение тела сообщения, тип string.
    Пример: "имя переменной" - "#{response}"
  • получение тела сообщения, тип Скрипт Groovy.
    Пример: "имя переменной" - "connector.getVariable("response")"
  • код ответа.
    Пример: "имя переменной" - "#{statusCode}"

XML RPC

empty

Формируется аналогично внешнему JSON RPC.

  1. ID коннектора - http connector
  2. Входные параметры:
    • url - ссылка на вызываемый источник;
    • method - метод API (POST, GET, PUT, DELETE);
    • payload - тело запроса по спецификации XML-RPC. Пример (тип переменной: строка или выражение):
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <methodCall>
        <methodName>my.xml.method</methodName>
        <params>
            <param>
                <value><int>17</int></value>
            </param>	 
            <param>
                <value><int>13</int></value>
            </param>
        </params>
    </methodCall>
  3. Выходные параметры (в зависимости от того, что нужно получить/обработать):
    • получение параметра сообщения. Пример (формат скрипта Groovy):
    import static org.camunda.spin.Spin.*; 
     
    XML(response).xPath("/methodResponse/params/*[1]/message/string").string();

SOAP

empty

Формируется аналогично XML RPC.

  1. ID коннектора - http connector
  2. Входные параметры:
    • url - ссылка на вызываемый источник;
    • method - метод API (POST, GET, PUT, DELETE);
    • payload - тело запроса по спецификации XML-RPC. Пример (тип переменной: строка или выражение):
    <?xml version = "1.0"?>
    <SOAP-ENV:Envelope
        xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
        SOAP-ENV:encodingStyle = "http://www.w3.org/2001/12/soap-encoding">
        <SOAP-ENV:Body xmlns:m = "http://www.xyz.org/messages">
            <m:GetMessage>
                <m:MessageName>asdfasdfasdf</m:MessageName>
            </m:GetMessage>
        </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
  3. Выходные параметры (в зависимости от того, что нужно получить/обработать):
    • получение параметра сообщения. Пример (формат скрипта Groovy):
    S(response)
        .childElement("Body")
        .childElement("http://www.xyz.org/message", "MessageResponse")
        .childElement("Message")
        .textContent()