2014-02-05 49 views
0

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

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

我该如何做到这一点?什么是最好的方法?

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

回答

3

您需要定义与信息的过程被记录下来,例如logAdd

如果它是一个Web应用程序,你可以从websession提取用户,如果你需要传递一个Windows应用程序在parms。

然后您调用每个事务的BeforeComplete过程。

网站举例:

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

重要的是,该logAdd程序在falseCommit on exit财产。 这种方式只有在交易确认后才会记录信息。

更新 - 你的记录过程中变老值

为了让你可以采取经营业务组件的优势,交易的前值。 设置您的交易为Bussiness Component后你把下面的规则在您的交易:

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

&Clients是基于你的经营业务组件类型的变量。

prc:logClients你可以通过一个普通For Each

+0

通过&Clients.Att.GetOldValue()访问所有的旧值和新值这正是我需要的。谢谢。当我访问BeforeComplete上的属性时,我得到了新的值。我正在使用“以前的状态”日志表。有没有办法在提交之前获取值? – devdev