Tempo aproximado para leitura: 00:03:10 min
Dúvida
Como utilizar o WebService wsProcess?
Ambiente
Cross Segmentos - Backoffice RM - Integração - Todas as versões.
Solução
O Web Service wsProcess é o responsável pela execução de processos do sistema.
Estão expostos no wsProcess alguns serviços, para consumi-los é necessário enviar por meio de uma requisição um envelope SOAP, passando os parâmetros de cada serviço.
Serviços Disponíveis no wsProcess:
1 - ExecuteWithXmlParams
2 - ExecuteWithXmlParamsAsync
3 - GetProcessStatus
Os outros métodos expostos foram descontinuados e encontram-se disponíveis somente por motivo de compatibilidade.
1 - ExecuteWithXmlParams
Serviço responsável por executar processos com parâmetros XML.
Parâmetros:
ProcessServerName - Obrigatório - Nome do Processo a ser executado.
strXmlParams - Obrigatório - XML obtido do processo.
Em caso de dúvidas quanto a obter o XML do processo, consulte a documentação abaixo:
Como identificar e extrair um XML exemplo de Processo
Como exemplo, efetuaremos o processo de Cópia de Permissões de Usuários via WebServices:
Ao executar o processo padrão via sistema, o XML será gerado conforme a documentação acima. Extraia este XML para ser utilizado abaixo.
Para a Tag <tot:ProcessServerName>, adicione o nome do processo "GlbCopyPermisUsrProc".
Para a tag <tot:strXmlParams>, adicione <![CDATA[cole o XML obtido]]> entre as tags.
Lembrando que o XML obtido através do processo pode ser manipulado para que a execução do processo de cópia de permissões considere os parâmetros desejados.
Assim que o processo for corretamente executado, será exibido o retorno:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ExecuteWithXmlParamsResponse xmlns="http://www.totvs.com/">
<ExecuteWithXmlParamsResult>1</ExecuteWithXmlParamsResult>
</ExecuteWithXmlParamsResponse>
</s:Body>
</s:Envelope>
2 - ExecuteWithXmlParamsAsync
Serviço responsável por executar processos com parâmetros XML de forma assíncrona, isto é, o serviço submeterá a execução do processo e devolverá um ID de job que pode ser passado como parâmetro para o serviço GetProcessStatus consultar o andamento do processo.
Os passos a serem seguidos são idênticos ao serviço ExecuteWithXmlParams, porém o retorno do método é diferente. Confira abaixo:
A partir do retorno obtido, pegaremos o JobID e o ExecID para validar o andamento do processo criado através do serviço GetProcessStatus:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<ExecuteWithXmlParamsAsyncResponse xmlns="http://www.totvs.com/">
<ExecuteWithXmlParamsAsyncResult><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<ProcessID>
<JobID>103723</JobID>
<ExecID>1</ExecID>
</ProcessID>]]></ExecuteWithXmlParamsAsyncResult>
</ExecuteWithXmlParamsAsyncResponse>
</s:Body>
</s:Envelope>
3 - GetProcessStatus
Serviço responsável por retornar as informações de um processo. Os parâmetros podem ser capturados pelo método ExecuteWithXmlParamsAsync.
Conforme exemplo acima, obtemos o JobID "103723" e ExecID "1". Vamos utilizar esses dados para obter o retorno do método, confira abaixo:
Desta forma temos o seguinte retorno:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetProcessStatusResponse xmlns="http://www.totvs.com/">
<GetProcessStatusResult><![CDATA[<?xml version="1.0" encoding="utf-16"?>
<ProcessInfo>
<ProcessID>
<JobID>103723</JobID>
<ExecID>1</ExecID>
</ProcessID>
<Message />
<Progress>100</Progress>
<Status>Finished</Status>
</ProcessInfo>]]></GetProcessStatusResult>
</GetProcessStatusResponse>
</s:Body>
</s:Envelope>
Saiba Mais:
Para mais informações sobre o WsProcess, segue documentação abaixo:
wsProcess
0 Comentários