0

这是我第一次使用 Genexus,我想知道如何创建日志功能。

我创建了一个事务对象“日志”,但我不需要任何用户界面交互。另外,我想直接在“After Trn”之类的事件中将记录插入“Logs”表。

我怎样才能做到这一点?最好的方法是什么?

我会很感激任何帮助。谢谢!

4

1 回答 1

3

您需要定义一个包含要记录的信息的过程,例如logAdd

如果它是一个 web 应用程序,您可以从 websession 中提取用户,如果它是一个 win 应用程序,您需要在 parms 上传递它。

然后在每个事务的 BeforeComplete 上调用该过程。

网页示例:

logAdd.Call(&Pgmname, "Clients", CliId.ToString(), &Mode) on BeforeComplete;

logAdd过程具有Commit on exitin 的属性很重要false。这样,只有在确认交易后才会记录信息。

更新 - 在您的日志记录过程中获取旧值

要获取交易的先前值,您可以利用业务组件。将您的交易设置为 a 后,您对交易设置Bussiness Component以下规则:

[WEB] {
    &Clients.load(CliId) if update on BeforeValidate;
    logClients.Call(CliId, &Clients, &Mode) on BeforeComplete;
}

&Clients是一个基于您的业务组件类型的变量。

您可以通过prc:logClients访问所有旧值&Clients.Att.GetOldValue(),并通过常规访问新值For Each

于 2014-02-05T16:43:41.977 回答