[ELMA3] Запуск бизнес-процесса из 1С
В данной статье рассмотрен пример запуска бизнес-процесса из 1С.
Для запуска бизнес-процесса из 1С необходимо:
1. В 1С 8.2 открыть в конфигураторе дерево метаданных нужной конфигурации, зайти в раздел Общие - WS-ссылки, нажать кнопку Добавить и в появившееся окно вставить адрес WS-ссылки.
Вид WS-ссылки:
адрес_сервера/Modules/EleWise.ELMA.Workflow.Processes.Web/WFPWebService.asmx?WSDL/
В данном примере используется следующий адрес WS-ссылки:
http://127.0.0.1:8007/Modules/EleWise.ELMA.Workflow.Processes.Web/WFPWebService.asmx?WSDL
WS-ссылка в 1С представляет собой описание веб-сервиса стороннего производителя, его реквизитов и типов данных, для дальнейшей интеграции с ним. В результате добавления WS-ссылки автоматически будет создана такая же структура, как при добавлении вручную веб-сервиса.
Для подключения к сервису используется метод СоздатьWSПрокси:
- В первом параметре передается URL пространства имен.
Данный параметр определяет название набора пространства имен: названий веб-сервиса, операций, параметров, типов данных и т.д.
URL-пространства имен указан в разделе WS-ссылка − Модель данных − Пакет.
В примере используется пространство имен
http://www.elma-bpm.ru/WFPWebService/
- Второй параметр − Наименование Web-сервиса. Оно указано в разделе WS-ссылка − Web-сервисы. В данном случае наименованием
Web-сервиса является WFPWebService.
Рисунок 3.Наименование Web-сервиса
- Далее предается Наименование Порта, оно указано в разделе WS-ссылка − Web-сервисы − WFPWebService. В примере наименованием порта является WFPWebServiceSoap.
Рисунок 4. Наименование Порта
Для запуска бизнес-процесса необходимо использовать операцию Run с указанием входных переменных: логин и пароль пользователя, токен процесса, наименование экземпляра процесса и его контекстные переменные.
Логин и пароль – это логин и пароль пользователя в системе ELMA.
Токен процесса – это ключ процесса. Каждый бизнес-процесс имеет уникальный ключ, который нужен, во-первых, для идентификации бизнес-процесса, во-вторых, для обеспечения безопасности.
Наименование контекстной переменной должно быть в точности такое же, как наименование переменной, объявленной в процедуре внешней обработке при определении параметров метода.
Рисунок 5. Необходимые параметры для запуска процесса
2. Создать в 1С внешнюю обработку, которая позволяет запустить бизнес-процесс через Web-сервис WorkflowRun и передать необходимые данные. Пример текста процедуры внешней обработки:
// создание подключения к Web-сервису URI = "http://www.elma-bpm.ru/WFPWebService/"; НаименованиеВебСервиса = "WFPWebService"; НаименованиеПорта = "WFPWebServiceSoap"; Сервис = WSСсылки.WSСсылка1.СоздатьWSПрокси(URI, НаименованиеВебСервиса, НаименованиеПорта); Фабрика = Сервис.ФабрикаXDTO; Пакет = Фабрика.Пакеты.Получить(URI); //получение типов параметров ТипWebData = Пакет.Получить("WebData"); ТипWebDataItem = Пакет.Получить("WebDataItem"); ТипArrayWebDataItem = Пакет.Получить("ArrayOfWebDataItem"); WebDataItem = Фабрика.Создать(ТипWebDataItem, ); WebDataItem.Name = "Name"; //где "Name" –это имя свойства контекстной переменной процесса WebDataItem.Value = "Значение Контекстной Переменной"; //задаем значение Контекстной Переменной "Name" ItemsArr = Фабрика.Создать(ТипArrayWebDataItem, ); ItemsArr.WebDataItem.Добавить(WebDataItem); WebData = Фабрика.Создать(ТипWebData, ); WebData.ItemsArr = ItemsArr; UserName = "admin"; Password = ""; Token = "3c102c4f-910e-4d68-99e3-26d0ff3a6ad1"; ProcessName = "Наименование экземпляра процесса"; //Запуск процесса IdInstance = Сервис.Run(UserName, Password, Token, ProcessName, WebData); //Метод возвращает Id запущенного процесса
3. Затем открыть в конфигураторе файл созданной внешней обработки и проверить, правильно ли указано имя WS-ссылки, путь до файла конфигурации, а также правильно ли указаны входные переменные для метода Run.