EM CONSTRUÇÃO
Mensageria ou Messaging consiste na utilização de mensagens para estabelecer a comunicação síncrona ou
assíncrona entre aplicações.
1 - O SAM não dispõe de um serviço de mensageria que integre os 'Documentos Eletrônicos' por ele produzido ao [Ambiente Nacional da SEFAZ], sendo assim, a transmissão destes documentos se dará através de um [Serviço de Mensageria] externo que deverá ser contratado pela Empresa Usuária do SAM.
2 - Os 'Documentos Eletrônicos' produzidos pelo SAM serão disponibilizados ao [Serviço de Mensageria] através da tabela "Aaa16 - Integração de Documento" contida no banco de dados da Empresa Usuária do SAM.
3 - Caso o [Serviço de Mensageria] externo contratado pela Empresa Usuária do SAM, por qualquer razão, não queira acessar a tabela Aaa16 na Base de Dados, então deve ser desenvolvido um [Serviço Intermediário] que irá integrar a tabela Aaa16 com os respectivos mecanismos do [Serviço de Mensageria].
3.1 - Esquema lógico de integração do SAM com o [Serviço de Mensageria]:
3.2 - Esquema lógico de integração do SAM com o [Serviço de Mensageria] através de um [Serviço Intermediário]:
4 - A Tema: Multitec recomenda o [Serviço de Mensageria] desenvolvido pela Multitec Software denominado MultiNFe, que integra diretamente a tabela Aaa16 com o [Ambiente Nacional da SEFAZ] e provê outros serviços de grande valia ao administrador dos documentos eletrônicos.
5 - Caso a Empresa Usuária queira usar outro [Serviço de Mensageria] que não seja o MultiNFe, a Multitec disponibiliza gratuitamente alguns [Serviços Intermediários], abaixo relacionados, que integram a tabela Aaa16 com o [Serviço de Mensageria], neste caso considerar:
5.1 - Criar uma pasta na máquina onde será executado o [Serviço de Mensageria]. Exemplo: 'C:/SAM4Sebrae/'
5.2 - Configurar o ambiente operacional do [Serviço Intermediário] entre o SAM e o [Serviço de Mensageria]: Os parâmetros de configuração devem estar contidos no arquivo que está localizado na pasta onde está instalado os softwares do [Serviço Intermediário] denominado de 'si_config.ini'. Os parâmetros são:
si_database=basesam001
si_user_name=postgres
si_password=postgres
si_server=localhost
si_porta=5432
si_enviar=C:\SAM4Sebrae\XmlEnviar\
si_retorno=C:\SAM4Sebrae\XmlRetorno\
si_segundos_processamento=60
onde:
si_database: Nome da base de dados. Exemplo: 'basesam001'
si_user_name: Nome do usuário do banco de dados. Exemplo: 'postgres'
si_password: Nome da senha do banco de dados: Exemplo: 'postgres'
si_server: Local onde esta o banco de dados: Exemplo: 'localhost' ou '192.168.15.5'
si_porta: Porta onde esta o banco de dados: Exemplo: '5432'
si_enviar: Nome da pasta na qual o [Serviço Intermediário] irá copiar da base de dados SAM (tabela Aaa16, campo aaa16dados) o respectivo texto e gerar um arquivo nesta pasta que ficará a disposição do [Serviço de Mensageria]. Exemplo: 'C:\SAM4Sebrae\XmlEnviar\.
si_retorno: Nome da pasta na qual o [Serviço Intermediário] irá ler o arquivo de retorno disponibilizado pelo serviço de [Serviço de Mensageria] e atualizar a base de dados SAM (tabela Aaa16, campos: aaa16retXML, aaa16retValid, aaa16retCod, aaa16retDescr, aaa16retData, aaa16retHora, aaa16retProt e aaa16status) para que o SAM execute os processos inerentes em função dos dados recebidos do serviço de [Serviço de Mensageria]. Exemplo: 'C:\SAM4Sebrae\XmlRetorno\.
si_segundos_processamento: Intervalo de tempo, contado em segundos, em que o [Serviço Intermediário] irá entrar em execução. Exemplo: '60'
5.3 - O [Serviço Intermediário] após ler o arquivo de retorno disponibilizado pelo serviço de [Serviço de Mensageria] irá atualizar o campo 'Status de Validação' da tabela Aaa16 (aaa16retValid) a partir dos seguintes códigos (vStatus):
A - 100, 101, 102, 128, 135, 150, 151: 0 - Autorizado
B - 200..300, 304..999: 1 - Rejeitado
C - 110, 301, 302, 303: 2 - Denegado
5.4 - Os arquivos manipulados nas pastas definidas nas configurações do ambiente operacional do [Serviço Intermediário] 'si_enviar' e 'si_retorno' após processados serão excluídos automaticamente.
5.5 - SEBRAE: Para usar o serviço de mensageria gratuito disponibilizado pelo SEBRAE, a Empresa Usuária deve:
5.5.1 - Instalar o software de [Serviço de Mensageria] fornecido gratuitamente pelo SEBRAE.
5.5.2 - Copiar o software de [Serviço Intermediário] disponibilizado para download no Tema: Tasks em 'Arquivos' e colocá-lo na pasta onde está instalado o [Serviço Intermediário]. Exemplo: 'C:\SAM4Sebrae\'.
5.5.3 - São diversos softwares que constituem o [Serviço Intermediário]: 'SamSebrae.exe' e uma subpasta denominada 'Lib' com alguns arquivos '.dll' exigido pelo PostgreSQL.
5.5.4 - Executar 'SamSebrae.exe'. Recomenda-se criar um atalho a fim de facilitar a operacionalidade do usuário.
5.6 - Pastas Operacionais: Estando o [Serviço Intermediário] em execução serão criadas automaticamente as pastas definidas nas configurações do ambiente operacional do [Serviço Intermediário] ('si_enviar' e 'si_retorno') nas quais os arquivos farão transito.
5.7 - Log Operacional: Estando o [Serviço Intermediário] em execução será criado automaticamente um arquivo de log chamado de 'SamSebraeLog.log' na pasta indicada no parâmetro 'si_enviar', no qual conterá um descritivo de todas a operações realizadas pelo SamSebrae.exe. Este descritivo deve ser lido por alguém da Empresa Usuária sempre que algum problema, erro ou bug seja percebido. Também deve a Empresa Usuária, de tempos em tempos, deletar este arquivo (SamSebraeLog) pois não há necessidade de se armazenar tantos registros que não sejam mais necessários.
6 - Todos os 'Documentos Eletrônicos' que deverão ser enviados ao [Ambiente Nacional da SEFAZ], serão previamente lançados na tabela "Aaa16 - Integração de Documento". Os 'Documentos Eletrônicos' produzidos pelo SAM são:
6.1 - NFe modelo '55' ou NFCe modelo '65':
6.1.1 - Lançamentos a partir do SRF1040 - Integrador de Documento Eletrônico e produzidos pelas tarefas SRF1001 - Recebimentos, SRF1002 - Faturamentos e SRF1003 - Faturamento de Vendas.
6.1.2 - Cancelamento lançado pelo processo SRF1010 - Cancelar Documentos;
6.1.3 - Correção de documentos lançado pelo processo SRF1041 - Carta de Correção Eletrônica;
6.1.4 - Inutilização de documentos lançado pelo processo SRF1042 - Inutilizar Documentos.
6.2 - MDFe
6.2.1 - Lançamentos a partir da tarefa SRF1111 - Integrador de MDFe;
6.2.2 - Cancelamento lançado pelo processo SRF1105 - Cancelar/Encerrar;
6.2.3 - Encerramento lançado pelo processo SRF1105 - Cancelar/Encerrar.
7 - O [Serviço de Mensageria] juntamente ou não com o [Serviço Intermediário] deverão assim operar:
7.1 - Selecionar os registros a enviar (aaa16status = 0);
7.2 - Para os registros selecionados alterar o status para 'Enviado' (aaa16status = 1);
7.3 - Gerar, validar, assinar e transmitir o arquivo tipo XML, conforme layout publicados pela SEFAZ, a partir do texto contido no campo 'Dados' (aaa16dados);
7.4 - Após a SEFAZ retornar o resultado do processamento, atualizar os campos de {Dados do Retorno}, descritos abaixo, e alterar o status para 'Processado' (aaa16status = 2).
8 - A tabela de integração contida na Base de Dados da Empresa Usuária do SAM denomina-se 'Aaa16 - Integração de Documento' e é composta pelos seguintes campos:
8.1 - aaa16id: Número identificador do registro atribuído pelo SAM.
8.2 - aaa16eg: Empresa Geradora do lançamento, que é a Empresa Ativa e previamente cadastrada em CAS2010 - Empresas.
8.3 - aaa16doc: Id do SRF0101 - Documentos (eaa01id) da Base de Dados da Empresa Usuária ou
Id do SRF1101 - MDFe - Manifesto Eletrônico de Documentos Fiscais (eaa10id) da Base de Dados da Empresa Usuária
8.4 - aaa16data e aaa16hora: Data e hora da última alteração no registro efetuada pelos processos inerentes.
8.5 - aaa16tipo: Tipo do 'Documento Eletrônico' lançado:
0-NFe ou NFCe -> NFe modelo '55' ou NFCe modelo '65'
1-CCe -> Carta de Correção Eletrônica
2-Cancelamento -> Cancelamento de documentoa
3-Inutilização -> Inutilização de documento
4-MDF -> MDFe
5-Encerramento -> Encerramento do manifesto
8.6 - aaa16status: Indica a condição do lançamento:
0-A Enviar -> Lançamento disponível para o [Serviço de Mensageria] juntamente ou não com o [Serviço Intermediário].
1-Enviado -> Lançamento enviado ao [Ambiente Nacional da SEFAZ] pelo [Serviço de Mensageria] e aguardando retorno.
2-Processado -> Lançamento já processado pelo [Ambiente Nacional da SEFAZ] percebido pelo [Serviço de Mensageria].
3-Arquivado -> Lançamento arquivado pelos processos inerentes do SAM que atualizaram a Base de Dados.
8.7 - aaa16dados: Texto (Xml, Txt, Json, etc.) a ser considerado para envio ao [Ambiente Nacional da SEFAZ]. Este texto será a base para geração dos 'Documentos Eletrônicos' através do [Serviço de Mensageria] juntamente ou não com o [Serviço Intermediário]. O texto contido nesse campo será gerado através dos processos abaixo, a partir das respectivas fórmulas, previamente escritas no CAS4011 - SamDev, sendo assim tais fórmulas deverão gerar os textos em conformidade com os requisitos do do [Serviço de Mensageria]:
8.7.1 - Texto para NFe ou NFCe, processo SRF1040 - Integrador de Documento Eletrônico, fórmula contida no parâmetro EA-NFeFormula;
8.7.2 - Texto para CCe, processo SRF1041 - Carta de Correção Eletrônica, fórmula contida no parâmetro EA-NFeFormCCe;
8.7.3 - Texto para Cancelamento, processo SRF1010 - Cancelar Documentos, fórmula contida no parâmetro EA-NFeFormCanc;
processo SRF1105 - Cancelar/Encerrar, fórmula contida no parâmetro EA-MDFeFormCanc;
8.7.4 - Texto para Inutilização, processo SRF1042 - Inutilizar Documentos, fórmula contida no parâmetro EA-NFeFormInut.
8.7.5 - Texto para MDFe, processo SRF1111 - Integrador de MDFe, fórmula contida no parâmetro EA-MDFeFormula.
8.7.6 - Texto para Encerramento, processo SRF1105 - Cancelar/Encerrar, fórmula contida no parâmetro EA-MDFeFormEnc.
8.8 - {Dados do Retorno}: Após a SEFAZ retornar o resultado do processamento do 'Documento Eletrônico' o [Serviço de Mensageria] juntamente ou não com o [Serviço Intermediário] deve atualizar o conteúdo destes campos como segue:
8.8.1 - aaa16retXML: Arquivo XML de retorno do documento, que é o 'Documento Eletrônico' propriamente dito.
8.8.2 - aaa16retValid: Status de validação do documento:
0-Autorizado: Quanto aaa16retCod = Para NFe/NFCe: 100, 101, 102, 128, 135, 150 e 151
Para MDFe: 100, 101, 103, 132, 135
1-Rejeitado: Quanto aaa16retCod for diferente dos código aqui identificados.
2-Denegado: Quanto aaa16retCod = 110, 301, 302 e 303
8.8.3 - aaa16retCod: Código de validação do documento.
8.8.4 - aaa16retDescr: Descrição de validação do documento.
8.8.5 - aaa16retData: Data do processamento do documento na SEFAZ.
8.8.6 - aaa16retHora: Hora do processamento do documento na SEFAZ.
8.8.7 - aaa16retProt: Número do protocolo do documento na SEFAZ.
Premissas
1 - Parâmetros envolvidos nos processos que envolvem documentos fiscais modelos NFe e NFCe (aah01modelo = '55' ou '65'):
1.1 - EA-NFeDataProducao: Data inicial em que a NFe passou para o ambiente de produção.
1.2 - EA-EnvioMensageria: Permite que após a elaboração de NFe (Modelo 55) ou NFCe (Modelo 65) de emissão própria, através das tarefas de SRF1001 - Recebimentos ou de SRF1002 - Faturamentos o Usuário Logado possa enviá-las imediatamente, ao serviço de mensageria.
1.3 - EA-ExpurgarAaa16: Opção de deletar os registros arquivados (aaa16status = 3) da tabela 'Aaa16 - Integração de Documento'.
1.4 - Parâmetros para backup dos documentos:
1.4.1 - EA-NFeBackupPath: Pasta para onde serão transferidos (cópia) os arquivos XML de NFe/NFCe emitidas de após serem processadas pelo serviço de mensageria.
1.4.2 - EA-NFeBackupPathPasta: Separação dos arquivos XML de NFe por sub-pastas dentro pasta onde serão armazenados os backups podendo ser 0-Única 1-Por dia 2-Por mês.
1.4.3 - EA-PastaOrigemXmlEnt: Pasta onde deve estar os arquivos XML de NFe de Entrada para serem importadas pelo processo de recebimento.
1.4.4 - EA-PastaDestinoXmlEnt: Pasta para backups dos XMLs das NFe de Entrada após serem importadas pelo processo de recebimento.
1.5 - Parâmetros que contêm as fórmulas, previamente cadastrada no CAS4011 - SamDev, para geração dos documentos:
1.5.1 - EA-NFeBoleto: Fórmula para geração dos boletos bancários dos 'Documentos SCF' relacionados à NFe/NFCe.
1.5.2 - EA-NFeDanfe: Fórmula para geração da DANFE.
1.5.3 - EA-NFeFormCanc: Fórmula para geração do arquivo de Cancelamento de NFe a ser disponibilizado para o serviço de mensageria.
1.5.4 - EA-NFeFormCCe: Fórmula para geração do arquivo de CCe - Carta de Correção de NFe a ser disponibilizado para o serviço de mensageria.
1.5.5 - EA-NFeFormInut: Fórmula para geração do arquivo de Inutilização de Números de NFe a ser disponibilizado para o serviço de mensageria.
1.5.6 - EA-NFeFormula: Fórmula para geração do arquivo de NFe a ser disponibilizado para o serviço de mensageria.
1.6 - Parâmetros utilizados quando a SEFAZ denega as NFe/NFCe:
1.6.1 - EA-NFeDenegCancDocSCV: Opção de cancelar ou não os 'Documentos SCV' origens da NFe/NFCe.
1.6.2 - EA-NFeDenegMotCanc: Código do motivo do cancelamento para a NFe/NFCe denegada.
1.7 - Parâmetros para controlar os envios dos documentos por eMail
1.7.1 - EA-NFeEnvEmailRep: Permitir envio de eMail para os representantes citados na NFe do arquivo XML e/ou Danfe.
1.7.2 - EA-NFeEnvioEmail: Permitir envio de eMail para o destinatário da NFe do arquivo XML e/ou Danfe.
2 - Parâmetros envolvidos nos processos de MDFe
2.1 - Parâmetros que contêm as fórmulas, previamente cadastrada no CAS4011 - SamDev, para geração do documento:
2.1.1 - EA-MDFeFormula: Fórmula para geração do arquivo de MDFe a ser disponibilizado para o serviço de mensageria.
2.1.2 - EA-MDFeFormCanc: Fórmula para geração do arquivo de Cancelamento de MDFe a ser disponibilizado para o serviço de mensageria.
2.1.3 - EA-MDFeFormEnc: Fórmula para geração do arquivo de Encerramento de MDFe a ser disponibilizado para o serviço de mensageria.