# 1. Melhoria Importação de Cadastro



# PROC001 Melhoria importação de clientes

<table border="1" id="bkmrk-%C2%A0-projeto%2Fsistema%3Age" style="border-collapse: collapse; width: 100.123%; height: 68px;"><tbody><tr style="border-style: solid;"><td rowspan="3" style="width: 26.6667%; height: 68px; border-color: black; border-top-style: hidden; border-left-style: hidden; border-bottom-style: hidden;">  
[![image-1762776253666.png](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/scaled-1680-/image-1762776253666.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2025-11/image-1762776253666.png)

</td><td style="width: 49.9999%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Projeto/Sistema:**</span>  
<span style="color: #000000;">GerencieAqui</span></td><td class="align-center" style="width: 23.3333%; height: 10px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do *Template:***</span>  
<span style="color: #000000;">1.2</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Processo:**</span>  
PROC001 Melhoria importação de clientes</td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Versão do Documento:**</span>  
<span style="color: #000000;">1.0</span></td></tr><tr style="border-style: solid;"><td style="width: 49.9999%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Responsável(eis):** </span>  
<span style="color: #000000;">Luís Leite</span></td><td class="align-center" style="width: 23.3333%; height: 29px; border-color: black; border-style: solid;"><span style="color: #000000;">**Data:** </span>

<span style="color: #000000;">26/03/2026</span>

</td></tr></tbody></table>

##### <span style="color: #000000;">**1. Introdução**</span>

<span style="color: #000000;">**Este processo visa exemplificar a melhoria para a importação de cadastro de clientes.**</span>

##### <span style="color: #000000;">**2. Processo**</span>

<table cellpadding="9" cellspacing="0" id="bkmrk-processo-envolvidos-" width="100%"><tbody><tr valign="top"><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Processo**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">**Envolvidos**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Entrada**</span>

</td><td bgcolor="#acb9ca" style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">**Dados de Saída**</span>

</td></tr><tr valign="top"><td style="border-style: solid; border-color: black;" width="27%">PROC001 Melhoria importação de clientes

</td><td style="border-style: solid; border-color: black;" width="19%"><span style="font-size: small; color: #000000;">-</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="font-size: small; color: #000000;">Arquivo XLSX ou XML</span>

</td><td style="border-style: solid; border-color: black;" width="27%"><span style="color: #000000; font-size: small;">Dados inseridos ou atualizados em banco.</span>

</td></tr></tbody></table>

#### **Especificação Funcional**

- - - - - -

#### **PROC001 Melhoria importação de clientes:**

##### ***Protótipo de Tela:***

[![image-1774442104688.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/scaled-1680-/image-1774442104688.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/image-1774442104688.png)

*Imagem I - Exemplo de nova Dialog de guia para importação de clientes.*

[![image-1774448498248.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/scaled-1680-/image-1774448498248.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/image-1774448498248.png)

*Imagem II- Exemplo de nova Dialog.*

[![image-1774448833646.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/scaled-1680-/image-1774448833646.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/image-1774448833646.png)

*Imagem III - Importação de planilha.*

[![image-1774442017143.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/scaled-1680-/image-1774442017143.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/image-1774442017143.png)

*Imagem IV - Exemplo de nova Dialog de importação.*

[![image-1774449597692.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/scaled-1680-/image-1774449597692.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/image-1774449597692.png)

*Imagem V - Progresso importação.*

[![image-1774449668825.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/scaled-1680-/image-1774449668825.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/image-1774449668825.png)

*Imagem VI - Tela de resultado.*

##### ***Descrição dos Campos:***

<table border="1" cellpadding="7" cellspacing="0" id="bkmrk-campo-tipo-tamanho-o" style="width: 843px; height: 429px;"><tbody><tr style="height: 35px;" valign="top"><td bgcolor="#acb9ca" style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Campo**</span>

</td><td bgcolor="#acb9ca" style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Tipo**</span>

</td><td bgcolor="#acb9ca" style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Tamanho**</span>

</td><td bgcolor="#acb9ca" style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Obrig. ?**</span>

</td><td bgcolor="#acb9ca" style="width: 119px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Máscara**</span>

</td><td bgcolor="#acb9ca" style="width: 201px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">**Observações**</span>

</td></tr><tr style="height: 35px;"><td colspan="6" style="width: 843px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">*Dialog* inicial de importação</span>

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">\[Baixar Planilha Modelo\]</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Link</span>

</td><td style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;">-

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Fechar</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;"> </span>

</td><td style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;">-

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Entendi</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;"> </span>

</td><td style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;">-

</td></tr><tr style="height: 35px;"><td colspan="6" style="border-style: solid; border-color: black; width: 843px; height: 35px;"><span style="color: #000000;">*Dialog* de importação</span>

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Resolução de conflitos</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Check</span>

</td><td style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;">-

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Planilha com Cabeçalho</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Botão</span>

</td><td style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;"> -</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 35px;"> -

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;"></td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Arquivo XLSX/XML</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Botão</span>

</td><td style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">- </span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;"> -</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 35px;"> -

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;"></td></tr><tr style="height: 57px;"><td style="width: 168px; border-style: solid; border-color: black; height: 57px;"><span style="color: #000000;">Coluna da Planilha</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 57px;">*<span style="color: #000000;">Column Header</span>*

</td><td style="width: 88px; border-style: solid; border-color: black; height: 57px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 57px;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 57px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 57px;"></td></tr><tr style="height: 57px;"><td style="width: 168px; border-style: solid; border-color: black; height: 57px;"><span style="color: #000000;">Escolha uma opção</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 57px;">*<span style="color: #000000;">Column Header</span>*

</td><td style="width: 88px; border-style: solid; border-color: black; height: 57px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 57px;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 57px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 57px;">Deve ser um *Dropdown* com campo de busca

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Fechar</span>

</td><td style="width: 102px; border-style: solid; border-color: black;">*<span style="color: #000000;"> </span>*

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;"> </span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;"> </span>

</td><td style="width: 119px; border-style: solid; border-color: black;"></td><td style="width: 201px; border-style: solid; border-color: black;"></td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Importar</span>

</td><td style="width: 102px; border-style: solid; border-color: black;">*<span style="color: #000000;"> </span>*

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;"> </span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;"> </span>

</td><td style="width: 119px; border-style: solid; border-color: black;"></td><td style="width: 201px; border-style: solid; border-color: black;"></td></tr><tr><td colspan="6" style="border-style: solid; border-color: black; width: 843px;"><span style="color: #000000;">*Dialog* Progresso</span>

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Cancelar Importação</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Botão</span>

</td><td style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;">-

</td></tr><tr><td colspan="6" style="border-style: solid; border-color: black; width: 843px;"><span style="color: #000000;">*Dialog* Progresso</span>

</td></tr><tr style="height: 35px;"><td style="width: 168px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Baixar relatório de Erros</span>

</td><td style="width: 102px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">Botão</span>

</td><td style="width: 88px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 165px; border-style: solid; border-color: black; height: 35px;"><span style="color: #000000;">-</span>

</td><td style="width: 119px; border-style: solid; border-color: black; height: 35px;">-

</td><td style="width: 201px; border-style: solid; border-color: black; height: 35px;">-

</td></tr><tr><td style="width: 168px; border-style: solid; border-color: black;"><span style="color: #000000;">Fechar</span>

</td><td style="width: 102px; border-style: solid; border-color: black;"><span style="color: #000000;"> </span>

</td><td style="width: 88px; border-style: solid; border-color: black;"><span style="color: #000000;"> </span>

</td><td style="width: 165px; border-style: solid; border-color: black;"><span style="color: #000000;"> </span>

</td><td style="width: 119px; border-style: solid; border-color: black;"></td><td style="width: 201px; border-style: solid; border-color: black;"></td></tr></tbody></table>

##### ***Regras de Interface:***

<span style="color: #000000;">**1. Baixar Planilha Modelo:** Executa o download do modelo para guia de importação.  
</span>***2.*** **Resolução de conflitos:** <span style="color: #000000;">Deve conter as seguintes opções "Atualizar cadastro existente"; "Ignorar duplicados" e "Gerar erro e bloquear".  
</span><span style="color: #000000;">**3. Planilha com Cabeçalho:** Por padrão deve vir como [![image-1774447263799.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/scaled-1680-/image-1774447263799.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/image-1774447263799.png), o evento de clique deve alterar o botão para</span>[![image-1774447287695.png](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/scaled-1680-/image-1774447287695.png)](https://docs.softensistemas.com.br/uploads/images/gallery/2026-03/image-1774447287695.png)  
  
**4. Arquivo XLSX/XML:** <span style="color: #000000;">Ao importar o arquivo deve gerar o </span>*Loading*<span style="color: #000000;"> da importação do arquivo. Caso seja possível a importação, retornar o popup "Arquivo importado". Caso não seja possível, retornar a mensagem de erro "Não foi possível importar, verifique o arquivo".  
</span>**5. Fechar (Imagem IV):**<span style="color: #000000;"> Deve encerrar a tela sem modificações em base, apenas memoria.  
</span>**<span style="color: #000000;">6. Importar: </span>**<span style="color: #000000;">Se possível importar, deve ir para a </span><span style="color: #000000;">*Imagem V - Progresso importação.* </span>**7. Escolha uma opção:**<span style="color: #000000;"> O campo para o vínculo entre campo do sistema e coluna de vínculo da planilha deve ser um </span>*Dropdown* com campo de busca, já existente na tela de vínculo do cadastro de produto<span style="color: #000000;">. Deve conter as opções já existentes com a adição do "Regime Tributário". Os campos obrigatórios devem ser listados primeiro:</span>

<table border="1" class="align-center" id="bkmrk-op%C3%A7%C3%A3o-obrigatoriedad" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Oxygen, Ubuntu, Roboto, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px; width: 71.4815%; height: 667px;"><tbody><tr style="height: 29px;"><td style="width: 50%; height: 29px; border-style: solid; border-color: black; background-color: lightgray;"><span style="color: #000000;">**Opção**</span></td><td style="width: 50%; height: 29px; border-style: solid; border-color: black; background-color: lightgray;"><span style="color: #000000;">**Obrigatoriedade**</span></td></tr><tr style="height: 29px;"><td style="width: 50%; height: 29px; border-style: solid; border-color: black;">Ignorar ou Escolha o campo</td><td style="width: 50%; height: 29px; border-style: solid; border-color: black;">-</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Razão Social\*</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">S</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">CNPJ\*</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">S</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Inscrição Estadual</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Endereço</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Número</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Complemento</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Bairro</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Cidade</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">IBGE</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">CEP</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">UF</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Cidade-UF</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Estado</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">E-mail</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Tipo</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Telefone</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Celular</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Tipo de Contribuinte</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">CNAE</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Inscrição Municipal</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr><tr style="height: 29px;"><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">Regime Tributário</td><td style="width: 50%; border-style: solid; border-color: black; height: 29px;">N</td></tr></tbody></table>

*<span style="color: #000000;">Tabela I - Tabela de campos para vínculo</span>*

<span style="color: #000000;">**8. Importar:** Se possível iniciar a importação, a tela deve ser finalizada e deve ser dado sequência para a *Dialog* da Imagem V - Progresso importação.  
Essa tela deve mostrar o progresso tanto em percentual quanto de registros sendo salvos.</span>

<span style="color: #000000;">**8.1** Caso não seja possível a importação, deve exibir em tela a mensagem:   
"Erro  
Valide a estrutura do arquivo a ser importado"</span>

<span style="color: #000000;">*****9.* Cancelar Importação:**** A ação deve abrir uma tela de confirmação pro usuário "Deseja interromper o processo de importação?" caso o usuário clique em 'Não', deve ser fechada a tela de confirmação e o processo continuado. Caso clique em 'Sim' a tela de importação deve ser encerrada.  
**10. Tela de resultado:** Deve exibir a quantidade de registros no arquivo, importados com sucesso e registros com erro. Caso houverem erros exibir a mensagem:</span>

> Alguns registros não puderam ser importados. Verifique o relatório para mais detalhes.

<span style="color: #000000;">**10.1 Baixar relatório de Erros:** </span><span style="color: #000000;">Deve ser renderizado apenas se existirem erros na importação. Mais detalhes nas regras de negócio.</span>

##### ***Regras de Negócio:***

<span style="color: #000000;">**1. Baixar Planilha Modelo:** Deve fazer o download de uma planilha XLSX contendo a coluna com todos os campos disponíveis para vínculo no sistema, conforme Tabela I - Tabela de campos para vínculo.  
**2. Arquivo XLSX/XML:** Deve validar o formato do arquivo, se é XLSX ou XML e se o arquivo não supera **2MB** . Caso for um formato diferente desses, não dar sequência na tentativa de importação.  
**3. Importar:** Validar se os campos obrigatórios do sistema possuem vínculo com a coluna da planilha. Se estiverem vinculados, deve ser validado a "**Resolução de conflitos"** </span>

- <span style="color: #000000;">Se for "Atualizar cadastro existente", novos registros devem gerar uma Inserção na base de dados. Registros existentes devem ser Atualizados. O Critério para isso é o CNPJ.  
    </span>
- <span style="color: #000000;">Se for "Ignorar duplicados", os registros conflitantes/já existentes na base de dados devem ser ignorados no momento da importação dos registros da planilha.  
    </span>
- <span style="color: #000000;">Se "Gerar erro e bloquear", quando um registro já existir em banco, a importação deve ser interrompida, não realizando mais inserções no banco.  
    </span>

<span style="color: #000000;">**4.** Deve ser gerado um log de registro da importação, contendo dados básicos 'data/hora', 'modulo', 'Usuário' e 'Descrição'. Inserir a descrição como "Realizada importação de planilha {nome\_arquivo} de clientes com total de {numero\_total\_registros}, importados com sucesso: {numero\_total\_sucesso}, com erro: {numero\_total\_erro}"  
</span>

<span style="color: #000000;">**5. Cancelar Importação:** A ação deve interromper a importação até que o usuario confirme alguma ação. Caso o usuário confirme o cancelamento da importação, deve ser interrompida as inserções e alterações na base de dados.</span>

<span style="color: #000000;">**5. Baixar relatório de Erros -** Esse relatório deverá conter:</span>

- - <span style="color: #000000;">número da linha na planilha</span>
    - <span style="color: #000000;">campo que apresentou erro</span>
    - <span style="color: #000000;">descrição do erro encontrado</span>

<table border="1" class="align-center" id="bkmrk-linha-campo-erro-15-" style="border-collapse: collapse; width: 61.9753%; height: 87px;"><tbody><tr style="height: 29px;"><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px; background-color: lightgray;">**<span style="color: #000000;">Linha</span>**</td><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px; background-color: lightgray;">**<span style="color: #000000;">Campo</span>**</td><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px; background-color: lightgray;">**<span style="color: #000000;">Erro</span>**</td></tr><tr style="height: 29px;"><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px;"><span style="color: #000000;">15</span></td><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px;"><span style="color: #000000;">CNPJ</span></td><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px;"><span style="color: #000000;">Formato inválido</span></td></tr><tr style="height: 29px;"><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px;"><span style="color: #000000;">22</span></td><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px;"><span style="color: #000000;">E-mail</span></td><td style="width: 33.3333%; border-style: solid; border-color: black; height: 29px;"><span style="color: #000000;">Formato inválido</span></td></tr></tbody></table>

##### <span style="color: #000000;">***Questões Técnicas:***</span>

<span style="color: #000000;">**1.** Tabela onde deve ser inserido ou alterado o cliente: 'cliente' e 'enderecos'.</span>

<span style="color: #000000;">**2. Baixar Planilha Modelo:** Planilha de padrão XLSX, deve conter cabeçalho com os campos para vínculo. os campos obrigatórios como CNPJ e Razão Social devem ter o asterisco (\*) indicando obrigatoriedade.</span>

<span style="color: #000000;">**3. Baixar relatório de Erros:** Relatório temporário gerado por HTML, deve listar apenas as rejeições e a linha onde ocorreu a rejeição da importação. </span>

©SOFTEN SISTEMAS 2026.

