Retorno via banco

Anterior
Próximo
Feedback
Imprimir

Retorno via banco

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 SGBDs:

 

A tabela de saída de dados deverá possuir, obrigatoriamente, as colunas a seguir:

 

idoutput - Identificador único do registro. Tipo int (auto incremento);

insertdate - Data e hora de inserção do registro na tabela; Tipo datetime (timestamp);

filename - É o Nome do Arquivo. Tipo varchar(255);

DocumentData - É o conteudo do documento. Tipo varbinary(MAX);

documentkey - Chave do documento - Tipo texto com 44 dígitos - Deverá ser lido do documento conforme regra abaixo;

protocol - Protocolo de autorização;

documentkey1 - Chave do documento - Tipo inteiro com os primeiros 18 digitos da chave;

documentkey2 - Chave do documento - Tipo inteiro contendo do digito 19 ao digito 36 da chave do documento;

documentkey3 - Chave do documento - Tipo inteiro com os ultimos 8 dígitos da chave;

codreturn - Código de retorno da SEFAZ;

msgreturn - Mensagem de retorno da SEFAZ;

contingency - Valor 0 para processamento normal e valor 1 para processamento em contingência;

idinput - Valor do input da tabela de entrada a qual este registro faz referência;

status - Valor 0 para não lido e 1 para lido.

 

 

Query de criação da tabela de saída no MYSQL:

 

CREATE TABLE `nfceoutput` (

 `idoutput` int(11) NOT NULL AUTO_INCREMENT,

 `insertdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

 `filename` varchar(100) NOT NULL,

 `documentdata` mediumtext NOT NULL,

 `documentkey` varchar(44) NOT NULL,

 `protocol` varchar(50) NOT NULL,

 `documentkey1` bigint(20) DEFAULT NULL,

 `documentkey2` bigint(20) DEFAULT NULL,

 `documentkey3` bigint(20) DEFAULT NULL,

 `codreturn` int(11) NOT NULL,

 `msgreturn` text NOT NULL,

 `contingency` int(11) NOT NULL COMMENT 'Valor zero para processamento normal e valor 1 para contingencia',

 `idinput` int(11) NOT NULL COMMENT 'valor do idinput da tabela de entrada a qual este registro faz referencia.',

 `status` int(11) NOT NULL COMMENT 'valor zero para não lido e um para lido.',

PRIMARY KEY (`idoutput`)

) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

 

Abaixo encontra o script para realizar alteração da tabela nfceoutput.

 

ALTER TABLE nfceoutput ADD INDEX idx_nfceoutput_idinput (idinput DESC);

 

 

Query de criação da tabela de saída no SQL:

 

CREATE TABLE [DBO].[NFCEOUTPUT] (

 [IDOUTPUT] [BIGINT] IDENTITY(1,1) NOT NULL,

 [INSERTDATE] DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,

 [FILENAME] [VARCHAR](100) NOT NULL,

 [DOCUMENTDATA] [VARCHAR](MAX) NOT NULL,

 [DOCUMENTKEY] [VARCHAR](44) NOT NULL,

 [PROTOCOL] [VARCHAR](50) NOT NULL,

 [DOCUMENTKEY1] [BIGINT] DEFAULT NULL,

 [DOCUMENTKEY2] [BIGINT] DEFAULT NULL,

 [DOCUMENTKEY3] [BIGINT] DEFAULT NULL,

 [CODRETURN] INT NOT NULL,

 [MSGRETURN] [VARCHAR](MAX) NOT NULL,

 [CONTINGENCY] INT NOT NULL,

 [IDINPUT] INT NOT NULL,

 [STATUS] INT NOT NULL,

CONSTRAINT [PK_IDOUTPUT] PRIMARY KEY CLUSTERED

(

   [IDOUTPUT] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

 

 

 

O formato do nome do arquivo a ser retornado, deverá seguir o padrão descrito no manual do e-Forms NFC-e na sessão de Arquivos de Integração.

 

Voltar