Програмування web-сервісів

Взявся розбиратися з написанням web-сервісів.
З початковою операцією сервісу [http://bpmonline-dev.local/ServiceModel/AuthService.svc/Login] питань не виникло.
Авторизуюсь, витягую coocies. Все добре.

Але є запитання з подальшою технологією роботи.

[http://localhost/ServiceModel/AuthService.svc/Help] видає варіанти використання сервісу:
Uri Method Description
GetSolutions
POST
Service at http://localhost/ServiceModel/AuthService.svc/GetSolutions

GetSolutionsData
POST
Service at http://localhost/ServiceModel/AuthService.svc/GetSolutionsData

Login
POST
Service at http://localhost/ServiceModel/AuthService.svc/Login

GET
Service at http://localhost/ServiceModel/AuthService.svc/Login?UserName={USERNAME}&UserPassword={USERPASSWORD}&SolutionName={SOLUTIONNAME}&TimeZoneOffset={TIMEZONEOFFSET}

Я так зрозумів, що для формування http-звернення до сервера потрібно визначити номер рішення (solution) яке має бути підставлене в рядок звернення:
http://localhost/номер рішення>/ServiceModel/ProcessEngineService.svc/назва створеного сервісу>Execute

Питання: як визначити номер рішення ?
(якщо можна - з прикладом).

Нравится

3 комментария

Ну от, потрібну інформацію видає сервіс
http://localhost/ServiceModel/AuthService.svc/GetSolutionsData:
[{"Key":"TSBpm","Value":0},{"Key":"TSBpm.1","Value":1},{"Key":"TSBpm.2","Value":2},{"Key":"TSBpm.3","Value":3}]

Добый день, Игорь!
Обычно в продуктивной среде используется только 1 рабочее решение (конфигурация), и его номер - 0. Другие конфигурации могут использоваться для разработки и их номера соответсвуют полю [Number] таблицы [SysSolution], а на IIS должно быть добавлено соответсвующее приложение для каждой конфигурации, как видно на скрине:

Ну, загалом справився.
Написав програмку, в яку вхідними параметрами передаю web-ресурс, назву служби, назву рішення та ще кілька параметрів для проформи.

Спочатку проводжу аутентифікацію за допомогою служби:
http://localhost/ServiceModel/AuthService.svc/Login

Потім читаю список рішень в JSON-форматі за допомогою тієї ж служби:
http://localhost/ServiceModel/AuthService.svc/GetSolutionsData

в цьому списку шукаю рішення за назвою, визначаю номер рішення.

Далі, маючи web-ресурс, назву служби з вхідних параметрів та номер рішення, формую звернення до цієї служби:
http://localhost/<№ рішення>/ServiceModel/ProcessEngineService.svc//Execute

Писав для зовнішнього запуску служби завантаження email-ів, яка раніше запускалася windows-планувальником за допомогою утилітки ProcessExecutor54.exe.

Я в ImapClient вніс зміни на предмет фіксації типу вкладеного в email-файлу, і служба завантаження email-ів в інтерфейсі BPMonline працювала нормально, а при зовнішньому запуску типи файлів не фіксувались (наче ProcessExecutor54.exe десь знаходила старий варіант служби).

Тому вирішив написати свій стартер для web-служб BPMonline.
Написав.
Працює зараз в тестовому режимі.
Поки що все [ok].

Якщо комусь цікаво - можу поділитися .NET утиліткою BPMonlineServise.exe

Показать все комментарии