Child pages
  • Sintegra - Consulta Nacional ao Cadastro

O serviço de consulta do SINTEGRA pode possuir de uma a três etapas:

  1. Verificação de CAPTCHA;
  2. Seleção de inscrição estadual;
  3. 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.

Execução direta

Após a configuração, deve ser feita a chamado para a procedure ConsultaSintegra com os seguintes parâmetros:

TIPO DE PARÂMETROTIPO DE DADODESCRIÇÃO
INPUTCHARACTERCNPJ para o qual será executada a consulta
INPUTCHARACTERSigla do estado para o qual a pesquisa será efetuada. Os estados podem ser obtidos através do método GetEstados
OUTPUTJSONObjeto JSON com informações do CNPJ informado
RUN ConsultaSintegra IN hMashup(INPUT "12345678901234", INPUT "SC", OUTPUT oJson).

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.

Execução em etapas

Após a configuração, deve ser feita a chamada para a procedure SintegraParcial com os seguintes parâmetros:

TIPO DE PRÂMETROTIPO DE DADODESCRIÇÃO
INPUTCHARACTERCNPJ para o qual será executada a consulta
INPUTCHARACTERSigla do estado para o qual a pesquisa será efetuada. Os estados podem ser obtidos através do método GetEstados
OUTPUTJSON

Objeto JSON com 3 retornos possíveis:

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".

Retorno de imagem

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:

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 de inscrições estaduais

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:

  • Name - nome do campo da tabela de inscrições
  • DataType - tipo de campo.

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.

/*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.

Após o envio de inscrição estadual, o retorno será com os dados do CNPJ informado.

 

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.

Busca de estado

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.

 

RUN GetEstadosIN hMashup(OUTPUT oJson).

Um exemplo com o retorno dos estados e leitura do array pode ser baixado aqui.

Retorno de dados

Os dados retornados pelo serviço de consulta do SINTEGRA são:

NOMETIPO DE DADO
CNPJString
InscriçãoString
RazãoString
LogradouroString
NúmeroString
ComplementoString
BairroString
CidadeString
EstadoString
CEPString
TelefoneString
E-MailString
Data InscriçãoString
SituaçãoString
Data SituaçãoString
AtividadeString
Regime ICMSString
ObservaçõesString
Atividade PrincipalString