Как создать свой конфигурационный сервис
Glossary Item Box
Общие положения
Сервисная модель bpm'online реализует базовый набор веб-сервисов, с помощью которых может быть организована интеграция bpm'online с внешними приложениями и системами. Примерами системных сервисов являются EntityDataService.svc, который предоставляет возможности обмена данными с bpm'online по протоколу OData, а также ProcessEngineService.svc, с помощью которого можно осуществлять запуск бизнес-процессов bpm'onlne из внешних приложений.
В bpm'online вы можете создавать свои пользовательские веб-сервисы в конфигурации, с помощью которых реализовывать специфичные интеграционные задачи.
Конфигурационный веб-сервис представляет собой RESTful-сервис, реализованный на базе технологии WCF.
Порядок создания конфигурационного сервиса.
Чтобы создать свой веб-сервис в конфигурации, необходимо:
- Создать в конфигурации схему исходного кода на языке C#.
- В блок usings добавить ссылки на пространства имен System.ServiceModel, System.ServiceModel.Web, System.ServiceModel.Activation.
- В пространстве имен Terrasoft.Configuration создать класс сервиса и пометить его атрибутами [ServiceContract] и [AspNetCompatibilityRequirement] с параметрами (см. пример реализации).
- В созданный класс добавить реализацию методов сервиса. Каждый метод сервиса должен быть помечен артибутами [OperationContract] и [WebInvoke] с параметрами (см. пример реализации).
- При необходимости вы можете реализовать дополнительные классы — объектные типы данных, с которыми будет работать ваш сервис. Каждый такой класс должен быть помечен атрибутом [DataContract], а поля класса — атрибутом [DataMember].
- Выполнить публикацию схемы исходного кода.
После публикации схемы созданный веб-сервис станет доступен для вызова из программного кода конфигурационных схем, а также из внешних приложений. Более подробно о вызове конфигурационных веб-сервисов изложено в статье "Как программно вызвать конфигурационный сервис".
Пример создания конфигурационного сервиса
В примере создается конфигурационный сервис с одним методом. Метод принимает один входящий параметр строкового типа и возвращает также строку.
Полный программный код веб-сервиса приведен ниже:
// Класс конфигурационного сервиса должен быть реализован в пространстве имен Terrasoft.Configuration. // При необходимости можно создавать для веб-сервиса свое рабочее пространство, но оно должно быть // обязательно вложенным в Terrasoft.Configuration. namespace Terrasoft.Configuration.CustomConfigurationService { using System; using System.ServiceModel; using System.ServiceModel.Web; using System.ServiceModel.Activation; // Класс сервиса помечен обязательными атрибутами [ServiceContract] и // [AspNetCompatibilityRequirements] с параметрами. [ServiceContract] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] public class CustomConfigurationService { // Метод сервиса помечен обязательными атрибутами [OperationContract] и // [WebInvoke] с параметрами. [OperationContract] [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)] public string GetTransformValue(string inputParam) { var result = inputParam + " + output string"; return result; } } }