Especificação da Tabela de Entrada de Dados (Entrada via BD)

 

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;