No formato de entrada via banco de dados, o mesmo conteúdo de arquivo que seria disponibilizado em um diretório no formato anterior, deve ser inserido em uma tabela pré-definida. Esta tabela pode ser criada em qualquer um dos seguintes Sistemas Gerenciadores de Bancos de Dados (SGBD's):
Importante:
• | Ao utilizar a entrada via Banco não é possível disparar impressão através dos Moduloos Concentrador e Agente NFC-e solução da NDD. |
|
Microsoft SQL Server 2008;
Microsoft SQL Server 2012;
Oracle.
A tabela de entrada de dados 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
Status - Status do processamento da NFCe gravada. 0 = não processada, 1 = em processamento, 2 = processada
Kind - Tipo de documento sendo escrito. Pode ser: 0 = Envio NFCe; 1 = Cancelamento/Inutilização, 2 = NFe
Protocol - Texto livre para o cliente usar como ele queira, esta informação será enviada para a tabela de saída caso ele tenha cadastrado uma saída para isto
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_IN, é apenas uma sugestão.
|
MSSQL SERVER 2008 / MSSQL SERVER 2012
CREATE TABLE [dbo].[NDDTEST_IN](
[id] [int] IDENTITY(1,1) NOT NULL,
[insertDate] [datetime] NOT NULL,
[AgentID] [varchar] (100) NOT NULL ,
[Status] [int] NOT NULL,
[Kind] [int] 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_IN] ADD DEFAULT (getdate()) FOR [InsertDate]
|
ORACLE
CREATE TABLE "NDDTEST_IN"
( "ID" NUMBER(20,0) NOT NULL ENABLE,
"INSERTDATE" TIMESTAMP (6) WITH TIME ZONE NOT NULL ENABLE,
"AGENTID" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"STATUS" NUMBER(1,0) NOT NULL ENABLE,
"KIND" NUMBER(2,0) NOT NULL ENABLE,
"PROTOCOL" VARCHAR2(255 BYTE) NOT NULL ENABLE,
"NFCE" BLOB NOT NULL ENABLE,
CONSTRAINT "NDDTEST_IN_PK" PRIMARY KEY ("ID") ENABLE
);
CREATE SEQUENCE "NDDTEST_IN_SEQ" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 21 CACHE 20 NOORDER NOCYCLE ;
CREATE OR REPLACE TRIGGER "BI_NDDTEST_IN" BEFORE INSERT ON NDDTEST_IN
FOR EACH ROW
WHEN (new."ID" IS NULL) BEGIN
SELECT "NDDTEST_IN_SEQ".NEXTVAL INTO :new."ID" FROM dual;
END;
/
ALTER TRIGGER "BI_NDDTEST_IN" ENABLE;
CREATE OR REPLACE TRIGGER "BI_NDDTEST_IN_INSERTDATE" BEFORE INSERT ON NDDTEST_IN
FOR EACH ROW
WHEN (new.INSERTDATE IS NULL) BEGIN
SELECT SYSDATE INTO :new.INSERTDATE FROM dual;
END;
/
ALTER TRIGGER "BI_NDDTEST_IN_INSERTDATE" ENABLE;
|
Voltar
|