Справка по системе Платформа ELMA BPM
×
Меню

Примеры SOAP-запросов веб-сервиса

Ниже приведены примеры SOAP-запросов к веб-сервису.

Метод Run

Данный метод реализует запуск бизнес-процесса системы ELMA. Внешнее приложение отправляет веб-сервису ELMA, расположенному по адресу http://127.0.0.1:8000/Modules/EleWise.ELMA.Workflow.Processes.Web/WFPWebService, SOAP-запрос версии SOAP 1.1 следующего содержания:
POST http://127.0.0.1:8000/Modules/EleWise.ELMA.Workflow.Processes.Web/WFPWebService.asmx HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "http://www.elma-bpm.ru/WFPWebService/Run"
Content-Length: 495
Host: 127.0.0.1:8000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wfp="http://www.elma-bpm.ru/WFPWebService/">
   <soapenv:Header/>
   <soapenv:Body>
      <wfp:Run>
         <wfp:userName>admin</wfp:userName>
         <wfp:password>omepassword</wfp:password>
         <wfp:token>d07f82c4-0065-4f95-bb25-05f4008e7cc5</wfp:token>
         <wfp:instanceName>Плоттер в отдел маркетинга</wfp:instanceName>
         <wfp:data>
            <wfp:Items>
               <wfp:WebDataItem>
                  <wfp:Name>Nazvanie</wfp:Name>
                  <wfp:Value>Плоттер в отдел маркетинга</wfp:Value>
               </wfp:WebDataItem>
               <wfp:WebDataItem>
                  <wfp:Name>OpisanieZakaza</wfp:Name>
                  <wfp:Value>Нужен для печати плакатов, нагрузка 100 листов формата А1 в неделю</wfp:Value>
               </wfp:WebDataItem>
            </wfp:Items>
         </wfp:data>
      </wfp:Run>
   </soapenv:Body>
</soapenv:Envelope>
Данный запрос приведет к запуску экземпляра процесса, имеющего токен d07f82c4-0065-4f95-bb25-05f4008e7cc5. Запуск процесса производится от имени пользователя admin, имеющего пароль omepassword. Экземпляр запускаемого процесса будет иметь имя "Плоттер в отдел маркетинга". В процесс будут переданы параметры Nazvanie и OpisanieZakaza, имеющие значения "Плоттер в отдел маркетинга" и "Нужен для печати плакатов, нагрузка 100 листов формата А1 в неделю" соответственно.
При успешном запуске экземпляра процесса, в ответ на такой запрос, веб-сервис ELMA отправит внешнему веб-приложению SOAP-ответ со следующим содержимым:
HTTP/1.1 200 OK
Cache-Control: private, max-age=0
Content-Type: text/xml; charset=utf-8
Content-Length: 345
Connection: Close
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <RunResponse xmlns="http://www.elma-bpm.ru/WFPWebService/">
         <RunResult>280</RunResult>
      </RunResponse>
   </soap:Body>
</soap:Envelope>
В поле RunResult содержится идентификатор экземпляра процесса.

Метод LoadContext

Данный метод позволяет получить значения контекстных переменных экземпляра процесса. Для его реализации внешнее веб-приложение отправляет веб-сервису ELMA, расположенному по адресу http://127.0.0.1:8000/Modules/EleWise.ELMA.Workflow.Processes.Web/WFPWebService.asmx, следующий SOAP-запрос версии SOAP 1.2:
POST http://127.0.0.1:8000/Modules/EleWise.ELMA.Workflow.Processes.Web/WFPWebService.asmx HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/soap+xml;charset=UTF-8;action="http://www.elma-bpm.ru/WFPWebService/LoadContext"
Content-Length: 371
Host: 127.0.0.1:8000
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:wfp="http://www.elma-bpm.ru/WFPWebService/">
   <soap:Header/>
   <soap:Body>
      <wfp:LoadContext>
         <wfp:userName>admin</wfp:userName>
         <wfp:password>2342123</wfp:password>
         <wfp:instanceId>280</wfp:instanceId>
      </wfp:LoadContext>
   </soap:Body>
</soap:Envelope>
При этом будет выполнен вход в систему под учетной записью admin с паролем 2342123. Загружается содержимое контекста экземпляра бизнес-процесса, имеющего instanceId = 280. В ответ веб-сервис отправит следующее SOAP-сообщение:
HTTP/1.1 200 OK
X-AspNet-Version: 4.0.30319
Cache-Control: private, max-age=0
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 2974
Connection: Close
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <LoadContextResponse xmlns="http://www.elma-bpm.ru/WFPWebService/">
         <LoadContextResult>
            <Items>
               <WebDataItem>
                  <Name>Id</Name>
                  <Value>67</Value>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>TypeUid</Name>
                  <Value>16850358-e1b6-4d4d-8ae6-eb5de067727c</Value>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>WorkflowInstance</Name>
                  <Data>
                     <Items>
                        <WebDataItem>
                           <Name>Id</Name>
                           <Value>280</Value>
                           <DataArray/>
                        </WebDataItem>
                        <WebDataItem>
                           <Name>TypeUid</Name>
                           <Value>37ca54ae-c16f-4100-b25d-760adc1e2bd7</Value>
                           <DataArray/>
                        </WebDataItem>
                        <WebDataItem>
                           <Name>Uid</Name>
                           <Value>529cd5ca-33d5-4064-a1cf-9d7a1125034c</Value>
                           <DataArray/>
                        </WebDataItem>
                        <WebDataItem>
                           <Name>Name</Name>
                           <Value>Плоттер в отдел маркетинга</Value>
                           <DataArray/>
                        </WebDataItem>
                     </Items>
                  </Data>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>Uid</Name>
                  <Value>5a7d427c-ed05-42bf-ac7d-0c03c3973b3d</Value>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>Iniciator</Name>
                  <Data>
                     <Items>
                        <WebDataItem>
                           <Name>Id</Name>
                           <Value>1</Value>
                           <DataArray/>
                        </WebDataItem>
                        <WebDataItem>
                           <Name>TypeUid</Name>
                           <Value>18faf3ae-03c9-4e64-b02a-95dd63e54c4d</Value>
                           <DataArray/>
                        </WebDataItem>
                        <WebDataItem>
                           <Name>Uid</Name>
                           <Value>c218a7eb-1e45-4056-bf84-c6818a1dabd6</Value>
                           <DataArray/>
                        </WebDataItem>
                        <WebDataItem>
                           <Name>Name</Name>
                           <Value>Данилов Сергей Игоревич</Value>
                           <DataArray/>
                        </WebDataItem>
                     </Items>
                  </Data>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>Nazvanie</Name>
                  <Value>Плоттер в отдел маркетинга</Value>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>OpisanieZakaza</Name>
                  <Value>Нужен для печати плакатов, нагрузка 100 листов формата А1 в неделю</Value>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>Summa</Name>
                  <Value/>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>SummaSNDS</Name>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>NeobhodimayaData</Name>
                  <Value/>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>TipOplaty</Name>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>VozmozhnayaDataOplaty</Name>
                  <Value/>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>DataZakaza</Name>
                  <Value/>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>DataDostavki</Name>
                  <Value/>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>PrichinaOtkaza</Name>
                  <Value/>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>ZaderzhkaVypolneniyaProcessa</Name>
                  <Value/>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>PechatnayaFormaZayavki</Name>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>PrichinaIzmeneniyaSummy</Name>
                  <Value/>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>WorkflowInstanceStatus</Name>
                  <DataArray/>
               </WebDataItem>
               <WebDataItem>
                  <Name>ParametryZayavki</Name>
                  <DataArray/>
               </WebDataItem>
            </Items>
         </LoadContextResult>
      </LoadContextResponse>
   </soap:Body>
</soap:Envelope>
Параметры выводятся в полях WebDataItem. Поле Name содержит имя параметра, поле Value – его значение.
См. также: