O objeto Histórico armazena valores de Tags ou expressões em uma tabela de banco de dados, por tempo ou por evento, para análises futuras. Este artigo mostra como criar um Histórico no Studio, configurar seus campos e a tabela, e gravar registros por script.
1. Passo a passo
- Insira um Banco de Dados. O Histórico precisa de um objeto Banco de Dados (DBServer). No Organizer, clique com o botão direito em Objetos de Servidor › Banco de Dados, selecione Inserir Banco de Dados Em e escolha o projeto. Escolha o tipo de servidor (Access, Oracle, SQL Server, PostgreSQL ou MySQL) na aba Configuração e configure o acesso a uma base válida.
- Insira o Histórico. Clique novamente com o botão direito em Banco de Dados, selecione Inserir Histórico Em e escolha o projeto. O objeto
Hist1é criado e o Editor do Histórico é aberto, já com o campoE3TimeStamp, que registra a data e a hora da gravação, e o índiceIndexE3Timestamp. - Crie os campos. Clique em Adicionar na barra de ferramentas do editor (ou clique com o botão direito em Fields e selecione Inserir – Campo de Histórico). Ao adicionar o campo, o AppBrowser é aberto automaticamente para escolher o Tag ou a propriedade que será a fonte do campo. Para cada campo, confira ou preencha:
- Nome: nome da coluna na tabela;
- Fonte: Tag ou propriedade associada, escolhida no AppBrowser (para trocá-la depois, use o botão
...); - Tipo:
fdText(texto),fdInteger(inteiro),fdDouble(fracionário) oufdDateTime(data e hora); - Tamanho: número de caracteres, para campos do tipo texto;
- Chave Primária (coluna com o ícone de chave): marque se o campo fizer parte da chave primária.

- Configure a tabela. Clique com o botão direito no Histórico, selecione Propriedades e a aba Histórico:
- Servidor de Banco de Dados e Nome da tabela;
- Intervalo entre registros (ms): período da gravação automática (padrão 1000 ms). Com o valor 0, a gravação automática é desabilitada e os registros são gravados apenas por evento;
- Descartar dados da tabela principal: habilita o descarte. Defina em Descartar dados mais antigos que o tempo de retenção (minutos, horas, dias ou meses) e em Realizar o descarte a cada a frequência da verificação;
- Mover para a tabela de backup os dados descartados: mantém os dados descartados em uma tabela de backup, com retenção própria em Descartar do backup dados mais antigos que (deve ser maior que a da tabela principal).
- Gere a tabela. Clique em Gerar tabela, no quadro Geração da estrutura no BD da aba Histórico (ou, no Organizer, clique com o botão direito no Histórico e selecione Gerar Estrutura no BD). A mensagem “A estrutura de tabelas foi criada com sucesso.” confirma a criação. Se este passo for omitido, a tabela é criada ao iniciar o Domínio, mas as Consultas montadas no Studio só enxergam a tabela depois de gerada.

- Grave por evento (opcional). Para gravar um registro fora do intervalo, ou com a gravação automática desabilitada, chame o método
WriteRecordno evento desejado:
Sub Tag1_OnValueChange()
' Grava um novo registro no Histórico quando o Tag muda de valor
Application.GetObject("Hist1").WriteRecord()
End Sub
2. Observações
- Ao gerar a tabela, o E3 cria também a tabela auxiliar
_Fields, com a descrição de cada campo do Histórico. - Para gravar em uma tabela já existente no banco, use a opção Vincular Histórico a uma Tabela Já Existente do Editor do Histórico. Os campos, índices e chave primária do Histórico são substituídos pelos da tabela selecionada.
- Para gravar apenas quando o valor varia além de uma banda morta, habilite a propriedade
CompressedTable(padrãoFalse) e configureDeadBand.
Referências:

como recebo a resposta do servidor dizendo se salvou ou não o histórico ?
Olá Jean, se você quer ter certeza que a tabela do histórico foi salva/gerada, no Studio basta clicar na opção “Gerar Estrutura no BD”, uma mensagem de confirmação será exibida:
“A estrutura de tabelas foi criada com sucesso.”
Se você não gerar a estrutura, a tabela será criada automaticamente ao iniciar o domínio.
Já a gravação dos registros, pode ser realizada de forma automática/scan ou por evento.