Árvore de páginas

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:

Rotina

Nome Técnico

Tipos de Ocorrência

GFEA032

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

FonteGFEA032
Nome do ServiçoGFEA032

 

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

GFEA032 REST
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