Histórico da Página
A consulta ao Sintegra trabalha com dois parâmetro: código do CNPJ e estado.
Execução
...
Após a configuração REST
O serviço de consulta do SINTEGRA pode possuir de uma a três etapas:
- Verificação de CAPTCHA;
- Seleção de inscrição estadual;
- Retorno de dados.
O consumo do serviço pode ser feito de duas maneiras: chamada do serviço, que, caso necessário, abrirá uma tela com a imagem para verificação e seleção de inscrição, ou a execução em etapas, onde deve ser verificado se houve retorno de imagem ou lista de inscrições para reenvio e retorno dos dados.
...
Após a configuração, deve ser feita a chamado para a procedure ConsultaSintegra procedure ConsultaSintegra
com os seguintes parâmetros:
TIPO DE PARÂMETRO | TIPO DE DADO | DESCRIÇÃO |
---|---|---|
INPUT | CHARACTER | CNPJ para |
consulta | ||
INPUT | CHARACTER | Sigla do estado |
OUTPUT | JSON | Objeto JSON com informações do CNPJ informado |
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
...
|
Durante a consulta, serão exibidas as telas necessárias para digitação de valor do CAPTCHA ou seleção da inscrição estadual. Portanto, este procedimento apresentará as interfaces para exibir o CAPTCHA e solicitar ao usuário o respectivo valor ou a lista de inscrições estaduais para seleção. O uso deste procedimento é recomendado para aplicações Progress GUI por encapsular todas as etapas necessárias para a consulta do serviço em questão.
Um exemplo completo pode ser baixado aqui.
...
Após a configuração, deve ser feita a chamada para a procedure SintegraParcial com os seguintes parâmetros:
...
Objeto JSON com 3 retornos possíveis:
...
.
Bloco de código |
---|
RUN SintegraParcial IN hMashup(INPUT "12345678901234", INPUT "SC", OUTPUT oJson). |
O objeto de retorno da procedure SintegraParcial pode possuir uma imagem para validação de CAPTCHA sob o valor "Imagem" ou uma lista com inscrições estaduais do CNPJ selecionado sob o valor "Inscricoes".
...
Caso o objeto retornado possua uma imagem para validação, esta deve ser validada para reenvio das informações e do texto digitado.
O texto digitado para a imagem deve ser adicionado o objeto JSON retornado sob o valor "Codigo" através do método putValue. Este objeto deverá ser passado para a procedure SintegraContinuacao, já que contém dados necessários para a próxima etapa:
Bloco de código |
---|
IF oJson:getString("Imagem") <> ? THEN
DO:
lcImg = oJson:getString("Imagem").
RUN utp/ut-mashup-tela.w(INPUT lcImg, INPUT "", OUTPUT cCaptcha, OUTPUT cValor).
oJson:putValue("Codigo", cCaptcha).
RUN SintegraContinuacao IN hMashup(INPUT-OUTPUT oJson).
END. |
O objeto retornado poderá ter uma lista para seleção de inscrição estadual ou os dados do CNPJ informado.
...
Retorno
...
Caso o objeto retornado possua a lista com inscrições estaduais, esta deve ser apresentada para seleção do usuário.
As tabelas de inscrições estaduais são diferente entre estados. Por este motivo, o os objetos do array "Inscricoes" pode ter objetos com diferentes estruturas. Pode-se buscar a definição da tabela de inscrições através do valor "InscSchema", um array com a definição da tabela retornada, formado por objetos com a seguinte estrutura:
...
de
...
Após selecionada a inscrição, o objeto JSON associado a ela deve ser adicionado ao objeto retornado pelo última execução no valor "InscEstadual" através do método putValue.
Bloco de código |
---|
/*verificação de existência de lista de inscrições*/
IF oJson:getLongchar("Inscricoes") <> ? THEN
DO:
oJsonArray = oJson:getJSONArray("Inscricoes").
DO iCount = 1 TO oJsonArray:count():
oJsonAux = oJsonArray:getJSONObject(iCount).
IF cInsc <> "" THEN
cInsc = cInsc + ",".
/*exemplo utilizando estrutura de inscrições do estado de Alagoas*/
cInsc = cInsc + oJsonAux:getString("Razão") + "," + oJsonAux:getString("Inscrição").
END.
RUN utp/ut-mashup-tela.w(INPUT "", INPUT cInsc, OUTPUT cCaptcha, OUTPUT cValor).
bloco_do:
/*busca de objeto com inscrição selecionada pelo usuário para adição ao objeto de retorno*/
DO iCount = 1 TO oJsonArray:count():
oJsonAux = oJsonArray:getJSONObject(iCount).
IF oJsonAux:getString("Inscrição") = cValor THEN /*AL*/
DO:
oJson:putValue("InscEstadual", oJsonAux).
LEAVE bloco_do.
END.
END.
RUN SintegraContinuacao IN hMashup(INPUT-OUTPUT oJson).
END. |
...
dados
...
O procedimento em etapas é recomendado quando o processo de negócio estiver sendo executado via Appserver e a camada de apresentação for desenvolvida em tecnologias como HTML ou Flex.
Exemplos com as duas verificações e retornos podem ser encontrados aqui.
...
Para retorno de estados, deve ser utilizado o método GetEstados, que retornará um objeto JSON contendo um array sob o valor "Estados" contendo objetos com a seguinte estrutura:
Code;
Description.
Bloco de código |
---|
RUN GetEstadosIN hMashup(OUTPUT oJson). |
...
...
Âncora |
---|
...
|
...
|
Os dados retornados pelo serviço de consulta do SINTEGRA são:
NOME | TIPO DE DADO |
---|---|
CNPJ | String |
Inscrição | String |
Razão | String |
Nome Fantasia | String |
Logradouro | String |
Número | String |
Complemento | String |
Bairro | String |
CEP | String |
Cidade | String |
Estado | String |
Telefone | String |
Atividade Econômica | String |
Atividade Econômica Secundária | String |
Data Início da Atividade | String |
Data Situação | String |
Regime ICMS | String |
Observações | String |
Situação Cadastral | String |
URL Comprovante | String |