Retorno via Banco de Dados (Saída)
Outra forma de realizar a integração dos retornos da SEFAZ é utilizando um banco de dados. Esta integração pode ser utilizada com qualquer um dos seguintes SGBD’s:
•Microsoft SQL Server 2005;
•Microsoft SQL Server 2008;
•Microsoft SQL Server 2012;
•Microsoft SQL Server 2014;
•Microsoft SQL Server 2016;
•Microsoft SQL Server 2017;
•MySQL 5.1;
•Oracle 10g;
•Oracle 11g;
•Oracle 12c;
•IBM DB2 versão 9;
•IBM Informix 9.40;
•IBM Informix 11.50;
•IBM Informix 12.10.
A tabela de integração de retornos deverá possuir, obrigatoriamente, as colunas a seguir:
•DOCUMENTDATA – conteúdo do documento retornado;
•STATUS – será inserido sempre com o valor ZERO, permitindo que o ERP ou outro sistema possa controlar a captura dos registros;
•KIND – Campo obrigatório que determina para o sistema que fará a leitura do registro, qual o tipo de retorno consta no registro. Este campo pode receber os seguintes valores:
0– Envio;
1– Cancelamento;
2– Inutilização;
3– Impressão;
4– DPEC;
5– Erros;
6– Substituição;
7– Evento;
8– procEvento;
9– Rejeição ADe;
10– EPEC.
11– Retorno auditoria NF-e;
12– Retorno da consulta de documentos MDF-e não encerrados;
13– Retorno de boleto independente (NF-e).
14- Retorno do RECOPI
|
A tabela de integração de retornos pode possuir colunas adicionais, para controles do ERP, porém estas alterações sobre a estrutura padrão devem ser reportadas à NDDigital, a qual fará a análise evitando que ocorram problemas como concorrência de banco de dados, entre outros. |
A seguir são listados os scripts de criação da estrutura padrão, nos diferentes SGBD’s suportados:
|
O nome da tabela de integração "connectorIntegration" é apenas uma sugestão. |
a)SGBD MSSQL SERVER 2005 / MSSQL SERVER 2008 / MSSQL SERVER 2012/ MSSQL SERVER 2014 / MSSQL SERVER 2016 / MSSQL SERVER 2017
|
CREATE TABLE [dbo].[connectorIntegration]( [connectorIntegrationId] [bigint] IDENTITY(1,1) NOT NULL, [documentdata] [varbinary] (max) NOT NULL , [status] [int] NOT NULL , [kind] [int] NOT NULL, CONSTRAINT [PK_connectorIntegration] PRIMARY KEY CLUSTERED ( [connectorIntegrationId] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] |
b)SGBD ORACLE
|
/ CREATE TABLE connectorIntegration ( connectorIntegrationId number(20) NOT NULL, documentdata blob NOT NULL , status int NOT NULL , kind int NOT NULL ) / CREATE SEQUENCE "connectorIntegration_SEQ" INCREMENT BY 1 START WITH 1 MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE CACHE 20 NOORDER / CREATE OR REPLACE TRIGGER "BI_connectorIntegration" BEFORE INSERT ON connectorIntegration FOR EACH ROW WHEN (new.connectorIntegrationId IS NULL)BEGIN SELECT "connectorIntegration_SEQ".NEXTVAL INTO :new.connectorIntegrationId FROM DUAL; END; / ALTER TRIGGER "BI_connectorIntegration" ENABLE / |
c)SGBD IBM DB2
|
CREATE TABLE connectorIntegration ( connectorIntegrationId BIGINT NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH +0 INCREMENT BY +1 MINVALUE +0 MAXVALUE +9223372036854775807 NO CYCLE NO CACHE NO ORDER )PRIMARY KEY, DOCUMENTDATA BLOB NOT NULL, STATUS INTEGER NOT NULL, KIND INTEGER NOT NULL); |
d)SGBD IBM INFORMIX
|
CREATE TABLE connectorIntegration ( documentdata byte NOT NULL , status integer NOT NULL , kind integer NOT NULL ); alter table connectorIntegration modify lock mode (ROW); |
e)MySQL 5.1
|
CREATE TABLE `connectorintegration` ( `idconnectorIntegration` bigint(20) NOT NULL AUTO_INCREMENT, `documentdata` MEDIUMBLOB NOT NULL, `status` tinyint(4) NOT NULL, `kind` smallint(6) NOT NULL, PRIMARY KEY (`idconnectorIntegration`), UNIQUE KEY `idconnectorIntegration_UNIQUE` (`idconnectorIntegration`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; |