Retorno via banco de dados Concentrador

Anterior
Próximo
Feedback
Imprimir

Retorno via banco de dados Concentrador

É possível  armazenar a integração dos retornos da SEFAZ, utilizando um banco de dados no concentrador. Esta integração pode ser utilizada com  os seguintes SGBD’s:

MySQL;

A tabela de integração no concentrador deverá possuir, obrigatoriamente, as colunas a seguir:

iditegration - Id tabela - auto incremento;

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

documentkey1 - Chave do documento - Tipo inteiro com os primeiros 18 dígitos da chave;

documentkey2 - Chave do documento - Tipo inteiro a partir do dígito 19 até o dígito 36 da chave do documento;

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

filename - Nome do arquivo - Será retornado no crosstalk de integração;

kind - Tipo de documento - Será capturado do nome do arquivo;

Regra do kind:

Arquivos terminados em _env o valor do king será 1

Arquivos terminados em _inut o valor do king será 2

Arquivos terminados em _erro o valor do king será 3

Arquivos terminados em _canc o valor do king será 4

Arquivos terminados em _evt o valor do king será 5

Arquivos que não possuem alguma das terminações acima o valor do kind será 0

 

OBS: Caso a integração não possua algum dos identificadores da regra do kind não será aberto o documento para a captura da chave do documento, ficando desta maneira os campos documentkey, documentkey1, documentkey2  e documentkey3 sem valor algum.

 

documentdata - Documento retornado - Será retornado no crosstalk de integração;

status - Status de leitura dos arquivos (zero como default) - Este campo deverá ser populado sempre com o valor 0 (zero);

agentkey - Tdentificador do agente emissor - Será retornado no crosstalk de integração;

 

A seguir são listados os scripts de criação da estrutura padrão, nos SGBD's suportados:

 

MySQL

 

CREATE TABLE IF NOT EXISTS `integration` (

 `iditegration` int(11) NOT NULL AUTO_INCREMENT,

 `documentkey` varchar(44) NULL,

 `documentkey1` bigint(20) NULL ,

 `documentkey2` bigint(20) NULL ,

 `documentkey3` bigint(20) NULL ,  

 `filename` varchar(255) NOT NULL,

 `documentdata` mediumtext NOT NULL,

 `kind` int(11) NOT NULL,

 `status` int(11) NOT NULL DEFAULT '0',

 `agentkey` varchar(50) NOT NULL,

 PRIMARY KEY (`iditegration`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=;

 

SQL

 

CREATE TABLE [dbo].[integration](

 [iditegration] [bigint] IDENTITY(1,1) NOT NULL,

 [documentkey] [varchar](44) NOT NULL,

 [documentkey1] [varchar](20) NOT NULL,

 [documentkey2] [varchar](20) NOT NULL,

 [documentkey3] [varchar](20) NOT NULL,

 [filename] [varchar](255) NOT NULL,

 [documentdata] [text] NOT NULL,

 [kind] [int] NOT NULL,

 [status] [int] NOT NULL,

 [agentkey] [varchar](50) NOT NULL,

 CONSTRAINT [PK_integration] PRIMARY KEY CLUSTERED (

 [iditegration] ASC

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

) ON [PRIMARY]

 

ORACLE

 

CREATE USER "INTEGRATION" PROFILE "DEFAULT" IDENTIFIED BY "12345" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK;

/

GRANT CREATE INDEXTYPE TO "INTEGRATION";

/

GRANT CREATE PROCEDURE TO "INTEGRATION";

/

GRANT CREATE SEQUENCE TO "INTEGRATION";

/

GRANT CREATE TABLE TO "INTEGRATION";

/

GRANT CREATE TRIGGER TO "INTEGRATION";

/

GRANT CREATE VIEW TO "INTEGRATION";

/

GRANT UNLIMITED TABLESPACE TO "INTEGRATION";

/

GRANT EXECUTE ON "SYS"."DBMS_LOB" TO "INTEGRATION";

/

GRANT "CONNECT" TO "INTEGRATION";

/

GRANT "RESOURCE" TO "INTEGRATION";

/

CREATE TABLE "INTEGRATION"."TBINTEGRATION"(

   idintegration NUMBER(38,0) NOT NULL ENABLE,

   documentkey VARCHAR2(44) NOT NULL ENABLE,

   documentkey1 VARCHAR2(20) NOT NULL ENABLE,

   documentkey2 VARCHAR2(20) NOT NULL ENABLE,

   documentkey3 VARCHAR2(20) NOT NULL ENABLE,

   filename VARCHAR2(255) NOT NULL ENABLE,

   DOCUMENTDATA CLOB NOT NULL,

   KIND NUMBER(5,0) NOT NULL ENABLE,

   STATUS NUMBER(5,0) NOT NULL ENABLE,

   agentkey VARCHAR2(50) NOT NULL ENABLE,

   CONSTRAINT "PK_integration" PRIMARY KEY (idintegration)

);

/

CREATE SEQUENCE "INTEGRATION"."integration_SEQ" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE ;

/

CREATE OR REPLACE TRIGGER "INTEGRATION"."integration_BI" BEFORE INSERT ON "INTEGRATION"."TBINTEGRATION"

FOR EACH ROW

WHEN (new.idintegration IS NULL) BEGIN

SELECT "INTEGRATION".integration_SEQ.NEXTVAL INTO :new.idintegration FROM dual;

END;

/

ALTER TRIGGER "INTEGRATION"."integration_BI" ENABLE;

/

 

 

Voltar