2014-02-05 55 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