Árvore de páginas

Versões comparadas

Chave

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

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:

  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.

...

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

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

...

hTasRest(INPUT

...

"12345678901234",

...

INPUT

...

"

...

SP",

...

OUTPUT

...

poJson).

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

...

dados

...

dados

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


NOMETIPO DE DADO
CNPJString
InscriçãoString
RazãoString
Nome FantasiaString
LogradouroString
NúmeroString
ComplementoString
BairroString
Cidade
CEPString
Estado
CidadeString
CEP
EstadoString
TelefoneString
E-Mail
Atividade EconômicaString
Data Inscrição
Atividade Econômica SecundáriaString
Situação
Data Início da AtividadeString
Data SituaçãoString
Atividade
Regime ICMSString
Regime ICMS
ObservaçõesString
Observações
Situação CadastralString
Atividade Principal
URL ComprovanteString