O sistema permite utilizar banco de dados para fazer a entrada de documentos. Estão disponíveis os seguintes Sistemas Gerenciadores de Banco de Dados:
•Microsoft Server 2008;
•Microsoft Server 2012;
•Oracle 10g ou superior.
É importante ressaltar que não é realizada a busca nas tabelas que já existem no banco de dados do cliente. Esta tabela deverá seguir o padrão especificado abaixo, para o correto funcionamento desta integração. Por padrão a instalação completa do aplicativo cria a tabela tbInputDocuments. O ERP do cliente irá gravar na tabela do banco de dados as seguintes informações: |
•jobKey: Identificador de qual ponto emissor deverá processar o documento;
•InsertDate: Data de inserção do documento;
•docStatus: coluna indicativa da situação atual do documento;
0 = Indica que o documento ainda não foi processado;
1 = Indica que o documento já foi processado.
Ao inserir um documento, o mesmo deve ser inserido com o docStatus igual a 0 (zero).
•docKind: Indica o tipo de documento inserido na tabela de entrada de documentos onde:
1 = Envio;
2 = Cancelamento;
3 = Impressão Controlada;
4 = Pedido de Integração;
5 = Pedido de B2b;
6 = Envio de Upload;
7 = Cancelamento de Upload.
•docData: Documento a ser processado.
•Guid: Código no formato GUID, utilizado para envio via Web Service.
Poderão ser utilizadas tabelas distintas para cada ponto emissor, ou utilizar a mesma tabela para todos os pontos emissores. Para que ocorra a diferenciação dos arquivos, é necessário utilizar a coluna jobKey, que deverá conter um número que identificará o ponto emissor. Este número será utilizado no cadastro desta entrada no módulo NFS-e Settings. Este número deverá ser único para cada ponto emissor.
Abaixo segue os scripts para criação das tabelas: |
Script SQL :
/****** Object: Table [dbo].[tbInputDocuments] Script Date: 20/03/2017 14:01:43 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tbInputDocuments]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[tbInputDocuments]( [id] [bigint] IDENTITY(1,1) NOT NULL, [jobKey] [int] NOT NULL, [insertDate] [datetime] NOT NULL, [docStatus] [tinyint] NOT NULL, [docKind] [tinyint] NOT NULL, [docData] [varbinary](max) NOT NULL, [guid] [uniqueidentifier] NULL, CONSTRAINT [PK_tbInputDocuments] 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] TEXTIMAGE_ON [PRIMARY] END GO SET ANSI_PADDING OFF GO |
Script Oracle :
CREATE SEQUENCE "TBINPUTDOCUMENTS_SEQ" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 71 CACHE 20 NOORDER NOCYCLE ; / CREATE TABLE "TBINPUTDOCUMENTS" ( "ID" NUMBER(19,0), "JOBKEY" NUMBER(19,0), "INSERTDATE" TIMESTAMP (6), "DOCSTATUS" NUMBER(1,0), "DOCKIND" NUMBER(1,0), "DOCDATA" BLOB, "GUID" RAW(16) ) ; / ALTER TABLE "TBINPUTDOCUMENTS" MODIFY ("ID" NOT NULL ENABLE); / ALTER TABLE "TBINPUTDOCUMENTS" MODIFY ("JOBKEY" NOT NULL ENABLE); / ALTER TABLE "TBINPUTDOCUMENTS" MODIFY ("INSERTDATE" NOT NULL ENABLE); / ALTER TABLE "TBINPUTDOCUMENTS" MODIFY ("DOCSTATUS" NOT NULL ENABLE); / ALTER TABLE "TBINPUTDOCUMENTS" MODIFY ("DOCKIND" NOT NULL ENABLE); / ALTER TABLE "TBINPUTDOCUMENTS" MODIFY ("DOCDATA" NOT NULL ENABLE); /
CREATE OR REPLACE TRIGGER "TBINPUTDOCUMENTS_TRG" BEFORE INSERT ON TBINPUTDOCUMENTS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN SELECT TBINPUTDOCUMENTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL; END IF; END COLUMN_SEQUENCES; END; / ALTER TRIGGER "TBINPUTDOCUMENTS_TRG" ENABLE; |