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 2008;
Microsoft SQL Server 2012;
Oracle.
A tabela de integração de retornos deverá possuir, obrigatoriamente, as colunas a seguir:
Id - identificador único do registro. Campo auto incremento - Usar 8 bytes de armazenamento para este campo (long ou bigint)
InsertDate - Data e hora de inserção do registro na tabela
AgentId - Identificador do agente que está postando esta informação
ConcentratorId - Identificador do concentrador
Protocol - Texto livre. Este campo é uma cópia do campo na tabela de entrada caso o documento tenha vindo de integração via banco ou será o nome do arquivo caso ele tenha se originado de um arquivo depositado no diretorio.
NFCe - campo raw que conterá o documento completo da NFCe
A seguir são listados os scripts de criação da estrutura padrão, nos diferentes SGBD’s suportados:
Nota:
• o nome da tabela, NDDTEST_OUT, é apenas uma sugestão.
|
MSSQL SERVER 2008 / MSSQL SERVER 2012
CREATE TABLE [dbo].[NDDTEST_OUT](
[id] [int] IDENTITY(1,1) NOT NULL,
[insertDate] [datetime] NOT NULL,
[AgentID] [varchar] (100) NOT NULL ,
[ConcentratorId] [varchar] (100) NOT NULL ,
[Protocol] [varchar] (255) NOT NULL,
[NFCe] [varbinary] (max) NOT NULL,
PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
ALTER TABLE [dbo].[NDDTEST_OUT] ADD DEFAULT (getdate()) FOR [InsertDate]
|
ORACLE
CREATE TABLE "NDDTEST_OUT"
( "ID" NUMBER(20,0) NOT NULL ENABLE,
"INSERTDATE" TIMESTAMP (6) WITH TIME ZONE NOT NULL ENABLE,
"AGENTID" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"CONCENTRATORID" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"PROTOCOL" VARCHAR2(255 BYTE) NOT NULL ENABLE,
"NFCE" BLOB NOT NULL ENABLE,
CONSTRAINT "NDDTEST_OUT_PK" PRIMARY KEY ("ID") ENABLE
);
CREATE SEQUENCE "NDDTEST_OUT_SEQ" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER NOCYCLE ;
CREATE OR REPLACE TRIGGER "BI_NDDTEST_OUT" BEFORE INSERT ON NDDTEST_OUT
FOR EACH ROW
WHEN (new."ID" IS NULL) BEGIN
SELECT "NDDTEST_OUT_SEQ".NEXTVAL INTO :new."ID" FROM dual;
END;
/
ALTER TRIGGER "BI_NDDTEST_OUT" ENABLE;
CREATE OR REPLACE TRIGGER "BI_NDDTEST_OUT_INSERTDATE" BEFORE INSERT ON NDDTEST_OUT
FOR EACH ROW
WHEN (new.INSERTDATE IS NULL) BEGIN
SELECT SYSDATE INTO :new.INSERTDATE FROM dual;
END;
/
ALTER TRIGGER "BI_NDDTEST_OUT_INSERTDATE" ENABLE;
|
Voltar
|