Histórico da Página
...
draw.io Diagram border true diagramName geracao_importacao_informe simpleViewer false width links auto tbstyle top lbox true diagramWidth 786 revision 2
| border | true |
|---|---|
| diagramName | geracao_importacao_informe |
| simpleViewer | false |
| width | |
| links | auto |
| tbstyle | top |
| lbox | true |
| diagramWidth | 786 |
| revision | 2 |
1 - Importação de dados
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 Entrada de dados do sistema, o sistema recebe 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:
202513_CC_00001.json (Válido)
202113_CF_99999.json (Válido)
202513_CC_1.json (Inválido - sequencial curto)
dados_importacao.json (Inválido - fora do padrão)
1.5 - Substituição dos Dados no Sistema e particionamento dos dados:
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.
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.
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)
- Agência/Conta (Lista):
- Fonte Pagadora (Lista):
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.
- Cliente:
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
...