Formatação do Template de Retorno

Com o objetivo de disponibilizar todas as informações necessárias para um bom fluxo de informações ao usuário, o REINFPack utiliza uma implementação de template para retorno personalizado com base nos produtos Edocs Inventti existentes.

Abaixo encontra-se uma tabela dos campos disponíveis para consulta, uma tabela com os comandos disponíveis para utilização e uma lista de exemplos a serem tomados como base para a implantação dos templates de retorno.

Para realizar a edição do template, acesse Configurações > Empresas Emissoras, selecione o grupo de empresa correspondente e clique no botão de edição na barra de botões superior ou inferior.

Campos disponíveis

Os seguintes campos podem ser acessados a partir do template:

Alias Descrição
RegistroTransmissao Objeto com as informações da transmissão realizada
XmlResposta Objeto referente ao xml recebido com as informações de retorno da EFD
XmlEnviado Objeto referente ao xml enviado para a EFD pelo cliente

Informações disponíveis no RegistroTransmissao

Os seguintes campos podem ser acessados a partir do objeto RegistroTransmissao:

Alias Descrição Retorno
Emissor CNPJ base do registro String (ex.: 99878923)
SituacaoTransmissao Situação do registro Inteiro 0 - Indeterminado 1 - Pendente 2 - Sucesso 3 - Erro 4 - Inválido 5 - Em processamento
DataHoraProcessamento Data do processamento pela EFD Data (formatável)
ResultadoOperacao Descritivo do resultado da operação String
NumerosRecibo Descritivo com os números de recibo dos registros de evento retornados pela EFD, enviados nesta transmissão String
RegistrosEvento Lista dos registros de evento contidos na transmissão enviada Lista de RegistroEvento

Informações disponíveis no RegistroEvento

Os seguintes campos podem ser acessados a partir do objeto RegistroTransmissao (contido no campo RegistrosEvento de um RegistroTransmissao):

Alias Descrição Retorno
OperacaoCliente Identificador único do evento para o cliente String (ex.: “R2010.AAA.123”)
TipoRegistroReinf O tipo de evento enviado Inteiro (ex.: 2010)
PeriodoApuracao O período de apuração vigente para o evento String (ex.: “2018-09”)
CaminhoArquivo Caminho do arquivo que gerou o evento (no caso de integração via arquivo) String (ex.: “Evento_2010_ABC”)
NumeroRecibo Número de recibo retornado pela EFD para o evento enviado String (ex.: “11123-2099-1809-11123”)
DataCriacao Data da criação do evento dentro do REINFPack Data (formatável)
DataModificacao Data de modificação do evento dentro do REINFPack Data (formatável)

Comandos disponíveis

Os comandos abaixo são adendos aos comandos já utilizados nos Edocs Inventti visando a manipulação de XMLs. Todos os comando já utilizados nos templates dos outros Edocs estão disponíveis.

Comando Descrição Exemplo
ObterValorXml Obtém o valor da tag XML informada. XMLResposta | ObterValorXml “//Reinf/evtInfoContribuinte/indRetif”
ObterAtributoXml Obtém o valor do atributo informado na tag XML informada. XMLEnviado | ObterAtributoXml “//Reinf/evtInfoCPRB”, “id”
QuantidadeTagXml

Obtém a quantidade de tags com o caminho informado.

Este comando é utilizado para iterar sobre uma lista de elementos do XML (exemplos abaixo).

XMLResposta | QuantidadeTagXml “//infoEvt/RTom”
TagXmlNaPosicao

Obtém a tag informada na posição informada (no caso de uma lista de tags repetíveis).

É possível utilizar este comando passando um parâmetro para o caminho ou dois para obter

tanto o caminho quanto um filho da tag na posição informada.

Este comando é utilizado para iterar sobre uma lista de elementos no XML (exemplos abaixo).

XMLResposta | TagXmlNaPosicao “//infoEvt/RTom[1]”

XMLResposta | TagXmlNaPosicao “//infoEvt/RTom[1]”, “/vlrBruto”

Exemplos

Listagem do OperacaoCliente dos eventos

1
2
3
4
5
    Situação da Transmissão: {{ registroTransmissao.SituacaoTransmissao }}
    Eventos da Transmissão:
    {% for evento in registroTransmissao.RegistrosEvento %}
    {{ evento.OperacaoCliente }}
    {% endfor %}

Obtenção do id do evento enviado

1
    ID do evento: {{ XmlEnviado | ObterAtributoXml "//evtInfoCPRB", "id" }}

Iteração de elementos

1
2
3
4
5
6
7
8
    Elementos "RTom"
    {% capture quantidadeRTom %} {{ XmlResposta | QuantidadeTagXml: "//infoTotalContrib/RTom" }} {% endcapture %}
    Quantidade de Tags: {{ quantidadeRTom }}
    {% for index in (1..quantidadeRTom) %}
    {% capture caminhoRTomAtual %} {{ "//infoTotalContrib/RTom" | TagXmlNaPosicao: index, "/infoCRTom/VlrCRTom" }} {% endcapture %}
    Caminho do RTom Atual: {{ caminhoRTomAtual }}
    VlrCRTom: {{ XmlResposta | ObterValorXml: caminhoRTomAtual }}
    {% endfor %}