Árvore de páginas

Versões comparadas

Chave

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

...

draw.io Diagram
bordertrue
diagramNamegeracao_importacao_informe
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth786
revision2

1 - Importação de dados

Entrada de dados do sistema, o sistema recebe o arquivo JSON de uma competência específica

A importação de dados para o Informe de Rendimentos padrão é realizada por uma rotina de monitoramento de diretórios. Para o correto funcionamento dessa rotina os arquivos devem ser depositados na pasta de entrada da empresa correspondente àquele arquivo.

Também é possível efetuar a importação de um arquivo de até 1MB via API externa conforme documentado na página de DR - 01 - Especificação API - (STIR), e assim esse arquivo poderá ser lido pela rotina automática de acordo com o tempo especificado nas Configurações Gerais.

O sistema espera receber o arquivo JSON de uma competência específica com o seguinte padrão de nomenclatura: AAAAMM_SIGLA_SEQUENCIAL.json (ex.: 202513_CC_00001.json)

Inicialmente só serão aceitas competências anuais para processamento, portanto, é imprescindível que os arquivos importados estejam no formato de competência anual com os dígitos finais referentes ao mês com o valor "13", conforme exemplo acima.


1.1 - Pré-requisitos:

  • Empresa cadastrada no sistema com mesmo código empresa do arquivo.
  • Interface Origem cadastrada no sistema com mesma sigla de interface de origem do arquivo.
  • Configuração Geral devidamente preenchida com diretórios de importação e geração.

1.2 - Visão Geral do Processo:

  • Disponibilização (Manual/Externa): O arquivo JSON deve ser salvo na pasta de entrada correspondente à empresa desse arquivo, no caso da entrada via API o arquivo será armazenado na pasta referente ao código empresa passado como parâmetro.
  • Detecção e Processamento (Automático): Um Job agendado varre periodicamente as pastas de entrada, cria as pastas das empresas que tiverem sido cadastradas no sistema caso não tenha sido criadas ainda, valida os arquivos, processa o conteúdo (pasta processando) e move os arquivos para as pastas de destino conforme o resultado (sucesso, aviso ou erro).

1.3 - Estrutura de Diretórios:

A estrutura de pastas segue as empresas cadastradas no sistema.

  • Padrão de entrada: {Diretorio_Raiz_Configurado}/{CODIGO_EMPRESA}/entrada/
  • Diretorio_Raiz_Configurado: Caminho base definido nas Configurações Gerais do sistema.
  • CODIGO_EMPRESA: Código numérico da empresa (ex: 12345).

Exemplo: Se o diretório raiz for C:\Users\usuario\produto_informe_rendimentos\dados\importacao e a empresa for 11111, o arquivo deve ser salvo em: C:\Users\usuario\produto_informe_rendimentos\dados\importacao\11111\entrada\

Veja mais detalhes da estrutura de pastas na página correspondente em DR - 02 - Estrutura de Pastas (importação) - (STIR).

1.4 - Padrão de Nomenclatura do Arquivo:

O sistema irá mover para pasta de erros arquivos que não sigam estritamente o padrão de nomenclatura abaixo.

  • Formato: AAAAMM_CC_NNNNN.json
  • AAAAMM: Competência (Ano e Mês). Ex: 202513 (Anual).
  • CC: Sigla da Interface de Origem (2 letras maiúsculas). Ex: DP, MN.
  • NNNNN: Sequencial numérico (5 dígitos). Ex: 00001.
  • Extensão: Obrigatório ser .json.

Exemplos:

(seleção) 202513_CC_00001.json (Válido)

(seleção) 202113_CF_99999.json (Válido)

(erro) 202513_CC_1.json (Inválido - sequencial curto)

(erro) dados_importacao.json (Inválido - fora do padrão)

1.5 - Substituição dos Dados no Sistema e particionamento dos dados:

(aviso) No caso de envio de um arquivo que possua os mesmos dados de Competência, Interface de Origem e Empresa que outro já importado, o sistema irá sobrescrever as informações desses Declarantes/Clientes que tenham sido cadastrados anteriormente por outro arquivo.


Ou seja, o processamento de arquivos no sistema é substitutivo do ponto de vista das informações já salvas no banco de dados. Veja:

  • Fonte Pagadora: caso seja enviado mesmo documento e houver cadastro no sistema para tal, serão carregadas as mesmas informações da fonte pagadora cadastrada no sistema, caso não encontre, será adicionada com DocumentoFontePagadora e o NomeFontePagadora informados
  • Cliente: caso seja enviado mesmo documento de cliente, todas as informações serão atualizadas com as enviadas inclusive as que não forem obrigatórias e não tenham sido enviadas nessa nova importação serão removidas. Demais informações dentro da estrutura do cliente no json como seus rendimentos serão completamente excluídas e as novas serão cadastradas no lugar.
  • Rendimentos: os rendimentos de cada cliente bem como suas informações de conta e agência serão removidas e as novas serão cadastradas.

(aviso) ATENÇÃO: Se um determinado cliente for enviado em um arquivo com competência '202513' e interface 'CF' e empresa '12345' e novamente outro arquivo com as mesmas informações citadas for importado, mas esse cliente não for incluso, o cliente não sofrerá nenhuma alteração!


Quando mais de um arquivo é enviado com esses dados se houverem QUAISQUER clientes diferentes o sistema apenas incluirá esses novos clientes e substituirá as informações anteriores. 

Com isso é possível, por exemplo, corrigir informações de apenas um (ou mais) cliente enviando apenas um registro (ou mais) em um arquivo a ser importado com competência e interface origem e empresa iguais ao da informação a ser corrigida por exemplo para atualizar os campos de interesse, sejam esses referentes a nome, endereço ou informação pessoal do cliente contida no json, ou adicionar e/ou remover informações de rendimentos enviando menos ou mais rendimentos, ou rendimentos com informações diferentes das iniciais.


(aviso) Então é necessário CUIDADO ao fazer a divisão de dados por arquivo lembrando de sempre incluir todos os dados dos Rendimentos/Declaráveis de uma mesma Competência e Interface de Origem para o mesmo Declarante de uma determinada Empresa no mesmo arquivo! Isso facilita e otimiza o processamento e evita possíveis substituições não desejadas. 

1.6 - Detalhes do Arquivo:

O conteúdo do arquivo deve estar em formato JSON válido e conter a estrutura abaixo. Veja a estrutura completa na página de DR - 03 - Instruções para preenchimento do arquivo de entrada (JSON) - (STIR).

Bloco de código
{
  "Empresa": {
    "CodigoEmpresa": "12345",       // Deve existir no sistema empresa com tal código
    "SiglaInterface": "CC",         // Deve existir na tabela de interfaces de origem
    "Competencia": "202513",        // Formato AAAAMM (13 = Anual) - sem acento
    "ListaDeclarantes": [...]
  }
}

Validação de Cabeçalho (Erro Impeditivo)
Os dados dentro do objeto Empresa são validados contra o banco de dados:

  • CodigoEmpresa: precisa existir empresa com mesmo código cadastrada no sistema
  • SiglaInterface: precisa existir interface de origem cadastrada no sistema com mesma sigla 
  • Competencia: precisa estar no mesmo formato da nomenclatura do arquivo AAAAMM (13 = Anual).

Se houver divergência, o arquivo é movido imediatamente para a pasta erro e nada é processado.

Detalhe dos Declarantes e Rendimentos

O sistema aceita declarantes Pessoa Física (F) e Jurídica (J).

  • Declarante: 
    • Fonte Pagadora (Lista): 
      • Agência/Conta (Lista): 
        • Rendimentos Isentos (Lista - Tabela 02)
        • Tributação Exclusiva (Lista - Tabela 03)
        • Bens e Direitos (Lista - Tabela 04)
        • Dívidas e Ônus (Lista - Tabela 05)


Ciclo de Vida e Pastas de Saída

O sistema move o arquivo automaticamente entre pastas para indicar o status do processamento.

NÃO REMOVA arquivos das pasta processando manualmente, pois inconsistências podem ser geradas por essas movimentações.

  • /entrada: Local onde o usuário deposita o arquivo. O sistema lê daqui.
  • /processando: O sistema move o arquivo para cá enquanto lê e grava no banco.

Destino Final (Pós-processamento):

  • /sucesso: Todos os registros foram importados corretamente.
  • /aviso: O arquivo foi importado, mas alguns declarantes/itens falharam (erros de negócio) e foram ignorados. O restante foi salvo.
  • /erro: Falha crítica (JSON inválido, cabeçalho incorreto, erro de banco). Nada foi salvo.


Monitoramento de Erros

Para saber o motivo de um arquivo ter ido para a pasta /erro ou /aviso, utilize a tela de Monitoramento da Importação, emita um Relatório de Erros de Importação referente àquela importação de interesse ou a API de consulta de erros.

  • Erros Impeditivos (Pasta Erro): Geralmente problemas estruturais como:
    • JSON quebrado
    • CodigoEmpresa no JSON não cadastrado no sistema ou em formato inválido
    • SiglaInterface inexistente no sistema ou formato inválido
    • Permissões insuficientes para criação das pastas ou movimentação dos arquivos
  • Erros de Negócio (Pasta Aviso):
    • Cliente:
      • CPF/CNPJ inválido para cliente, ou combinação inválida (informado PF, mas fornecido CNPJ e vice-versa) - campo obrigatório
      • Nome vazio ou excede 255 caracteres - campo obrigatório
      • Tipo de pessoa inválida (valores aceitos F e J) - campo obrigatório
    • Fonte Pagadora:
      • Nome vazio ou excede 255 caracteres - campo obrigatório
      • CNPJ inválido - campo obrigatório
    • Agência e Conta:
      • TipoBeneficiario inválido - campo obrigatório
      • NumeroConta em formato inválido - não obrigatório
    • Declaráveis/Rendimentos
      • Código de Domínio ou Grupo (quando aplicável) não existente - campo obrigatório
      • Nome do Produto inválido - campo obrigatório
      • Valores numéricos inválidos - verificar campos específicos de cada rendimento na página inicial

Esses erros são registrados individualmente na tabela de erros do sistema.Dentro desta etapa, são feita validações básicas do arquivo (sintatica, tipagem, negocial)

2 - Consulta Status Importação

...