Descrição:
Como criar um campo de Histórico que incrementa seu valor automaticamente, de forma que a cada novo registro, ele receba um valor sequencial?
Solução:
Não é possível criar esse tipo de campo nos Históricos do E3. Entretanto, pode-se criar esse campo no próprio Banco de Dados.
ACCESS
Ao utilizar o Access, é possível adicionar um campo na tabela atual, como no exemplo abaixo:
SQL SERVER
Ao utilizar o SQL Server, existem duas possibilidades.
Através do Manager do SQL, crie um campo, acesse suas propriedades e configure-as com o tipo Coluna de Identidade.
ORACLE:
Ao utilizar o Oracle, deve-se criar um trigger para que a coluna desejada seja incrementada a cada novo registro.
Segue abaixo um exemplo, onde primeiramente será inserida uma coluna chamada Coluna_ID na tabela TabelaTeste e posteriormente será criado o trigger:
ALTER TABLE
TABELATESTE
ADD
Coluna_ID number primary key;
create sequence seq_autonumber;
create trigger trg_autonumber
before insert on TABELATESTE
for each row
begin
select seq_autonumber.nextval into :new.Coluna_ID from dual;
end;
Vinculando o histórico a tabela existente:
Após criação da tabela, deve-se vincular o histórico a tabela:
KB-26934: Vinculando um Histórico a uma tabela já existente.
Em seguida excluir do histórico do E3 a coluna utilizada para identificação, pois ao inserir registros o E3 tenta escrever zero na coluna, o que não é permitido pela configuração da coluna.