Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Esta API tem como objetivo realizar a comunicação e tratamento dos dados das APIs do portal da Conformidade Fácil. Essas APIs são referentes a cadastros do sistema como códigos de crédito presumido, código de classificação tributária entre outros.

Requisitos

Para execução correta do programa é necessário realizar as configurações na tela html.mcd.govApiParams. Se o programa for executado e não existir nenhum parâmetro a execução será encerrada e uma mensagem será gravada nos logs informando a inexistência do cadastro.

Funcionamento

A API recebe dois parâmetros: um parâmetro do tipo RAW com os dados de uma tabela temporária usados como parâmetros para execução do programa e uma tabela temporária com um campo do tipo RAW. Em resumo, são os parâmetros padrões de execução de um programa Progress a partir de uma tela, por exemplo.

Devido ao uso deste formato, é possível para o usuário criar um pedido para execução do programa em servidor RPW. 

Exemplo de uso:  

Bloco de código
languagetext
firstline1
titleExemplo de uso
linenumberstrue
DEFINE VARIABLE raw-param AS RAW NO-UNDO.

DEFINE TEMP-TABLE tt-raw-digita
   FIELD raw-digita  AS RAW.

CREATE tt-param. // Definição da tt-param na seção Temp-Tables ao final deste documento.
ASSIGN tt-param.destino = 2
	   tt-param.arquivo = "consumoApiGov.json"
       tt-param.usuario = "super"
       tt-param.data-exec = TODAY
       tt-param.hora-exec = ?
       tt-param.cod-endpoint = "credPresumido" // Endpoint pode ser consultado no portal da Conformidade Fácil, aba Serviços
       tt-param.cod-programa-area = "cdp/consumoApiGovCredPresMOF.p" // Precisa ser o caminho completo do programa
       tt-param.l-sobrescreve = FALSE.

FOR FIRST tt-param:
	RAW-TRANSFER tt-param TO raw_param.
END.

RUN cdp/consumoApiGov.p (INPUT raw_param, INPUT TABLE tt-raw-digita).

O campo arquivo indica em qual arquivo será salvo a resposta da requisição efetuada para o portal da Conformidade Fácil. Esse arquivo serve apenas para conferência dos registros que foram retornados pela API.
O campo cod-endpoint indica qual dos serviços da API do portal da Conformidade Fácil será consumido. Os serviços disponíveis podem ser consultados por meio deste link.
O campo cod-programa-area indica qual o programa que será executado para realizar o tratamento dos dados retornados pela requisição feita pelo programa principal conusmoApiGov.p. Ao final da execução do programa consumoApiGov.p, será executado o programa que foi informado no campo cod-programa-area.
O campo l-sobrescreve é apenas um utilitário para indicar se o programa específico da área deve sobrescrever os dados ou apenas considerar códigos novos. Atenção! A lógica para sobrescrever ou não os códigos é responsabilidade do programa específico da área, o programa consumoApiGov.p apenas realiza a comunicação com o portal da Conformidade Fácil.

Para realizar as requisições para o portal da Conformidade Fácil, o programa utiliza da biblioteca cURL para realizar requisições a partir da linha de comando usando o sistema operacional. Em caso de sucesso na requisição, o programa recebe os dados em formato JSON e realiza os tratamentos para enviar o JSON de retorno para a API da área. Em caso de falha na requisição, o resultado do comando cURL será salvo em um arquivo chamado api_gov_response.txt no diretório temporário da sessão. Outros erros durante a execução do programa serão gravados nos logs da sessão com o código AppError

Execução do programa da área

...

A estrutura desse objeto JSON depende do tipo de retorno que foi feito pela API do portal da Conformidade Fácil. Se for um objeto JSON, a estrutura será a de um objeto JSON comum, mas se o retorno for uma lista de objetos será criado um objeto JSON para encapsular essa resposta e manter o parâmetro sempre do tipo objeto JSON.

Estrutura do objeto JSON de retorno
TipoEstrutura
JsonObject

Estrutura comum de um objeto JSON, com a adição do parâmetro de tipo lógico overwrite oriundo do campo l-sobrescreve.
Esse parâmetro adicional serve para indicar se os dados serão sobrescritos pelo retorno da API ou se serão mantidos.

JsonArray

Será criado um JsonObject para encapsular a resposta da requisição. A estrutura passa a ser:

response: Campo do tipo JsonArray com a resposta da requisição para a API do portal da Conformidade Fácil.
count: Parâmetro auxiliar do tipo inteiro informando o tamanho do JsonArray.
isWrapper: Parâmetro auxiliar do tipo lógico informando se a resposta foi encapsulada.
overwrite: Parâmetro auxiliar do tipo lógico informando se o programa deve sobrescrever os dados.

Dessa forma, a estrutura de um programa de área seria:

...