+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 Aug 2025
    200 pontos
    Melhores 2025 Jul 28 - Aug 03
    1. Larson

      156 Pontos

    2. danilo.pereira

      96 Pontos

    3. danilo.pereira

      96 Pontos

    4. danilo.pereira

      96 Pontos

    5. luciano.fronza

      61 Pontos

    6. luciano.fronza

      61 Pontos

    7. luciano.fronza

      61 Pontos

    8. diuari.molinari

      52 Pontos

    9. diuari.molinari

      51 Pontos

    10. diuari.molinari

      51 Pontos

    517 perguntas
    566 respostas
    389 comentários
    704 usuários