PUBLICAÇÃO WEB SERVICE REST DO REGISTRO DA OCORRÊNCIA DE TRANSPORTE
Características do Requisito
Linha de Produto: | Microsiga Protheus | ||||
Segmento: | Supply Chain - Logística | ||||
Módulo: | SIGAGFE | ||||
Rotinas: |
| ||||
Requisito/Story/Issue (informe o requisito relacionado): | DLOGGFE-26 | ||||
País: | Brasil | ||||
Bancos de Dados: | Todos | ||||
Tabelas Utilizadas: | GWD, GWL | ||||
Sistemas Operacionais: | Todos |
Descrição
Para os usuários que possuem algum aplicativo customizado, e que precisam gerar registro de ocorrências para o transporte no produto Gestão de Frete Embarcador (SIGAGFE), foi disponibilizado o método Web Service REST.
Para utilização, é necessário a atualização do produto e a configuração do Web Service REST, conforme descrito nos pré-requisitos.
Método Publicado
Fonte | GFEA032 |
---|---|
Nome do Serviço | GFEA032 |
Exemplo de Utilização
Para realizar testes, pode ser utilizado qualquer programa de sua preferência, que teste API Web Service REST.
Como exemplos de programas, podemos citar o SoapUI ou a extensão Postman do Navegador Chrome. Ambos são excelentes aplicativos.
Utilizando o Postman
Abaixo uma tela utilizando a extensão Postman, executando a gravação de dados no método POST. Neste exemplo os dados da tabela GWD e os detalhes da tabela GWL estão sendo gravados.
Exemplo de utilização, quando o model apresenta uma validação, impedindo a gravação do registro. No exemplo abaixo o documento de carga não existe na base de dados.
Importante:
Caso a tabela do cadastro de Ocorrências seja exclusiva, no Headers deve ser indicado no campo tenantId o grupo de empresas e a filial que deseja localizar as informações. Abaixo um exemplo utilizando o programa Postman.
Utilizando o Progress Datasul
Código de exemplo
DEFINE VARIABLE h_http AS HANDLE NO-UNDO. DEFINE VARIABLE mptr_response AS MEMPTR NO-UNDO. DEFINE VARIABLE i_response_code AS INTEGER NO-UNDO. DEFINE VARIABLE c_response_status AS CHARACTER NO-UNDO. DEFINE VARIABLE lc_content AS LONGCHAR NO-UNDO. ASSIGN lc_content = ' ~{"id":"GFEA032","operation":3,"models":[ ~{"id":"GFEA032_GWD","modeltype":"FIELDS","fields":[ ~{"id":"GWD_DSOCOR","order":3,"value":"DESCRICAO CAMPO"}, ~{"id":"GWD_CDTIPO","order":4,"value":"99"}, ~{"id":"GWD_CDMOT","order":6,"value":"99"}, ~{"id":"GWD_DSPROB","order":8,"value":"PROBLEMA CAMPO 00000026"}, ~{"id":"GWD_DSSOLU","order":9,"value":"Aprovada automaticamente"}, ~{"id":"GWD_DTOCOR","order":10,"value":"20170506"}, ~{"id":"GWD_HROCOR","order":11,"value":"14:38"}, ~{"id":"GWD_DTCRIA","order":12,"value":"20170506"}, ~{"id":"GWD_HRCRIA","order":13,"value":"14:38"}, ~{"id":"GWD_DTBAI","order":14,"value":"20170509"}, ~{"id":"GWD_HRBAI","order":15,"value":"09:51"}, ~{"id":"GWD_SIT","order":16,"value":"2"}, ~{"id":"GWD_USUCRI","order":19,"value":"andre.wisnheski"}, ~{"id":"GWD_CDTRP","order":24,"value":"000000002"}, ~{"id":"GWD_ACAODC","order":26,"value":"2"}, ~{"id":"GWD_ACAODF","order":27,"value":"1"}, ~{"id":"GWD_ORIGEM","order":28,"value":"2"}, ~{"id":"GWD_SITTMS","order":29,"value":"0"}, ~{"id":"GWD_QTDVOL","order":32,"value":"12"}],"models":[ ~{"id":"GFEA032_GWL","modeltype":"GRID","optional":1,"struct":[ ~{"id":"GWL_FILIAL","order":1}, ~{"id":"GWL_NROCO","order":2}, ~{"id":"GWL_NRDC","order":3}, ~{"id":"GWL_FILDC","order":4}, ~{"id":"GWL_EMITDC","order":5}, ~{"id":"GWL_SERDC","order":6}, ~{"id":"GWL_TPDC","order":7}, ~{"id":"GWL_SDOCDC","order":8}],"items":[ ~{"id":1,"deleted":0,"fields":[ ~{"id":"GWL_NRDC","value":"060201"}, ~{"id":"GWL_FILDC","value":"D MG 01"}, ~{"id":"GWL_EMITDC","value":"000000003"}, ~{"id":"GWL_SERDC","value":"17"}, ~{"id":"GWL_TPDC","value":"NFS"}, ~{"id":"GWL_SDOCDC","value":"17"}]}]}]}]} ':U. IF NOT VALID-HANDLE(h_http) THEN DO: RUN utp/ut-http-api.p PERSISTENT SET h_http. END. RUN setServerName IN h_http (INPUT '10.80.18.198':U). RUN setServerPort IN h_http (INPUT 8022). RUN clearQueryParam IN h_http. RUN setRequestHeader IN h_http (INPUT 'Content-Type':U, INPUT 'application/json':U). RUN setServiceUrl IN h_http(INPUT '/MG2/fwmodel/GFEA032':U). RUN setServiceMethod IN h_http(INPUT 'POST':U). RUN setBody IN h_http(INPUT lc_content, INPUT 'application/json':U). RUN callService IN h_http. RUN getResponseData IN h_http(OUTPUT mptr_response). RUN getResponseCode IN h_http(OUTPUT i_response_code). RUN getResponseStatus IN h_http(OUTPUT c_response_status). IF VALID-HANDLE(h_http) THEN DO: DELETE PROCEDURE h_http. END. IF i_response_code NE 200 AND i_response_code NE 201 THEN DO: MESSAGE i_response_code SKIP c_response_status SKIP STRING(mptr_response) VIEW-AS ALERT-BOX. RETURN 'NOK':U. END. COPY-LOB FROM mptr_response TO lc_content NO-CONVERT. MESSAGE STRING(lc_content) VIEW-AS ALERT-BOX.
Resultado esperado quando o registro é incluído corretamente.
Resultado esperado quando ocorre uma validação que impossibilite a inclusão da ocorrência.
Pré-requisitos para Utilização
- Atualização do Microsiga Protheus com versão igual ou superior a 12.1.17.
- Configuração do AppServer para disponibilizar as rotinas publicadas com o Web Service REST.
- No link http://tdn.totvs.com.br/pages/viewpage.action?pageId=185748193 é possível encontrar todas as configurações necessárias.
- Documentação do Web Service REST
- No link http://tdn.totvs.com.br/pages/viewpage.action?pageId=271671548 é possível encontrar toda a documentação da API RESTFull do Protheus e como utilizá-la.