0
這是我第一次與Genexus合作,我想知道如何創建日誌功能。用Genexus創建日誌功能
我創建了一個事務對象「日誌」,但我不需要任何用戶界面交互。另外,我想直接在「After Trn」之類的事件中將記錄插入「Logs」表中。
我該如何做到這一點?什麼是最好的方法?
我會很感激任何幫助。謝謝!
這是我第一次與Genexus合作,我想知道如何創建日誌功能。用Genexus創建日誌功能
我創建了一個事務對象「日誌」,但我不需要任何用戶界面交互。另外,我想直接在「After Trn」之類的事件中將記錄插入「Logs」表中。
我該如何做到這一點?什麼是最好的方法?
我會很感激任何幫助。謝謝!
您需要定義與信息的過程被記錄下來,例如logAdd
如果它是一個Web應用程序,你可以從websession提取用戶,如果你需要傳遞一個Windows應用程序在parms。
然後您調用每個事務的BeforeComplete過程。
網站舉例:
logAdd.Call(&Pgmname, "Clients", CliId.ToString(), &Mode) on BeforeComplete;
重要的是,該logAdd
程序在false
的Commit on exit
財產。 這種方式只有在交易確認後纔會記錄信息。
更新 - 你的記錄過程中變老值
爲了讓你可以採取經營業務組件的優勢,交易的前值。 設置您的交易爲Bussiness Component
後你把下面的規則在您的交易:
[WEB] {
&Clients.load(CliId) if update on BeforeValidate;
logClients.Call(CliId, &Clients, &Mode) on BeforeComplete;
}
&Clients
是基於你的經營業務組件類型的變量。
在prc:logClients
你可以通過一個普通For Each
通過
&Clients.Att.GetOldValue()
訪問所有的舊值和新值這正是我需要的。謝謝。當我訪問BeforeComplete上的屬性時,我得到了新的值。我正在使用「以前的狀態」日誌表。有沒有辦法在提交之前獲取值? – devdev