+4 votos
99 visitas

É possível inserir uma MENSAGEM CUSTOMIZADA ao gerar log de inserção pelo BEF?

Uso o BEF 13.1.24.6

Procurei na Wiki e descobri que existe a classe RawAuditWriter com o método RegisterInsert(string entityDefinitionName, Handle handle) em que não é possível passar uma Mensagem Customizada como parâmetro.

Depois acabei achando um texto (Análise:Log e auditoria) que diz que é possivel gravar uma mensagem customizada ao Deletar um registro como esse exemplo abaixo

using (AuditedContext ac = new AuditedContext(AuditOptions.Default, "Processo de exclusão de documentos inválidos"))
{
     Entity.DeleteMany(EntityDefinition.GetByName("DOCUMENTOS"), new Criteria("A.INVALIDOS = 'S'"));     
     Documentos.Recalcula();
}

Eu tentei tal solução para inserção, mas acabei encontrando outro problema ao tentar colocar a Anotação [AuditedEntity] na classe em questão, não achei qual Biblioteca de Importar para poder usar essa Anotação.

Procurei o AuditedEntity no pesquisador do http://desenv.benner.com.br/BEF/ mas não encontrei.

Onde posso encontrar esta ANOTAÇÃO?

 

Obrigado

por (25 pontos) | 99 visitas

2 Respostas

+4 votos
André,
Eu gostaria de gravar na Tabela do banco de dados "Z_LOG"
e não em um arquivo .log.

No Delphi existe este método
AtendimentoFrm.sys.WriteAudit('I',
                                                    AtendimentoFrm.sys.HandleOfTable('CLI_PRONTUARIO'),
                                                    qProntuario.FieldByName('HANDLE').AsInteger,
                                                    'Gravando prontuário');


Enquanto no BEF existe
RawAuditWriter.RegisterInsert(string entityDefinitionName,
                                                 Handle handle)

Que não possui opção para mais parâmetros.
Marcelo,

A página da wiki onde encontrasse o texto sobre "AuditedContext" é uma página de análise, onde a tecnologia criou apenas para fins de registro. Esta provavelmente ainda não foi implementada (confirmar com alguém da tecnologia sobre isso).

Quanto à passar mais parâmetros para tabela de Z_LOG, como uma observação por exemplo.
Atualmente a tabela "Z_LOG" não possui nenhum campo para tal fim (verifique em MetaTabelas via Builder).

Sugiro a você enviar uma solicitação para tecnologia sobre isto, ou solicitar uma solução paliativa.
+1 voto
André,

Encontrei a classe BSistema e escrevi da seguinte maneira

                        BSistema sistema = new BSistema(con);
                        sistema.WriteAudit("I",
                                           (int) Sam_Precoprestador_Dotac.GetEntityDefinition().Handle.Value,
                                           (int) samPrecoPrestadorDotac.Handle.Value,
                                           "Registro Inserido!");

mas ao tentar usar o método está dando a mensagem "Método 'Benner.Tecnologia.Business.TransactionContext.WriteAudit' não encontrado."

estou utilizando o BSistema de forma errada ou não é possível utilizar desta forma?
por (25 pontos)
Lembro que não é possível utilizar desta forma. O quarto parâmetro da WriteAudit é para enviar dos dados anteriores à alteração/exclusão do registro num formato XML. Em inserção deve ser passado string vazia. Não se deve passar uma string arbitrária.
Melhores Apr 2026
  1. MargieOsterh

    5 Pontos

200 pontos
Melhores 2026 Apr 06 - 12
  1. danilo.pereira

    96 Pontos

  2. danilo.pereira

    96 Pontos

  3. danilo.pereira

    96 Pontos

  4. willian.metalsystem

    69 Pontos

  5. henrique.muller

    62 Pontos

  6. luciano.fronza

    61 Pontos

  7. luciano.fronza

    61 Pontos

  8. luciano.fronza

    61 Pontos

  9. diuari.molinari

    52 Pontos

  10. diuari.molinari

    51 Pontos

518 perguntas
567 respostas
389 comentários
770 usuários