Salvar um registro de manutenção para um banco de dados com colunas personalizadas

Olá, estou criando um aplicação via XObject e XControl para criar uma tela de registros de manutenção realizadas. Esse registro contém:

  • um display para escrever o tipo de manutenção feito;
  • um display para inserir o período(ciclos/horas) programado para a manutenção (que deve ser acessado apenas pelo usuário administrador)
  • um display para o manutentor inserir o período feito de realização da manutenção.
  • um botão para registrar a manutenção
  • um botão para desativar o alerta de aviso de manutenção a ser feito.

Para gerar o log estou usando a combinação das funções ESign() e TrackEvent() porém desse modo não tenho controle dos tipos de colunas a serem geradas no banco de dados no momento do registro do log.
Quando um registro é feito, são geradas automaticamente as seguintes colunas: E3TimeStamp, EventTime, EventMessage, EventComment.

Minha necessidade é gerar um registro que contenha as colunas que eu desejar, como: Nome/Usuario, ManutençãoRealizada, PeríodoProgramado, PeríodoRealizado e Data.

No momento estou usando o seguinte código para gerar o registro da manutenção:

Sub CommandButton1_Click()

Dim Tag, User, Comment, SetPoint, Atual

Tag = CadastroManutencao.TipoManutencao
SetPoint = CadastroManutencao.Programado
Atual = CadastroManutencao.Realizado

If Application.ESign("", , “Alteração do Valor”, _
“”, Tag, User, Comment) Then
Application.TrackEvent _
"Manutenção Realizada: " & Tag &_
" | usuário: " & User &_
" | Programado: " & SetPoint &_
" | Realizado: " & Atual, Comment
End If

End Sub

Olá @jorgemarquesfj boa noite, realmente os metódos informado não irá dar suporte a sua necessidade de forma assertiva devido o objetivo dos mesmos sendo respectivamente para assinatura eletrônica e gravação de uma ação não serem adequados a sua demanda.

Baseado nos requisitos de sistema informados é uma demanda que acredito que não caberia em um único post, mas posso indicar alguns passos:

  1. Deve ser criado a tabela no banco de dados com as colunas desejadas e com os tipos corretos
  • Pode ser criada direto no SGBD com os campos desejados e vinculado a um objeto histórico (DB.Hist) do Elipse
  • Pode ser criado o objeto histórico (DB.Hist) no Elipse configurado os campos desejado e clicar na opção “Gerar Tabela”
  • Poder ser criado um objeto consulta (Standard.E3Query) e realizado um INSERT INTO executando o código SQL existente no objeto consulta.
  1. Deve ser configurado a forma de inserir os dados na tabela
  • Caso esteja utilizando objeto histótico será necessário criar propriedades no seu XO que associem as colunas do objeto histórico, visto que a sua gravação não será algo cíclico e sim por evento, quando desejar registrar uma linha execute o metódo WriteRecord().
  • Caso esteja utilizando objeto de consulta no mesmo habilite a “Edição direta do SQL” e insira o código de ‘INSERT INTO’ para a tabela desejada com as colunas que irá receber os valores do código utilizando variáveis de consulta, na ordem altere os valores dessas varíaveis pelo metódo SetVariableValue e em seguida o método Execute no seu código para gravar uma nova linha na sua tabela.

Repita o ciclo para os botões indicado que deseja armanezar cada dado.

Espero ter ajudado, caso tenha alguma dúvida ou mais detalhamento estou a disposição.
afonso_calado@hotmail.com