簡體   English   中英

(ILOG)IBM ODM 8.5在執行時間記錄規則名稱

[英](ILOG) IBM ODM 8.5 Logging a name of the rule in execution time

我要創建一個日志,例如System.out.println(“ RuleName:” + ruleName); 在IBM ODM規則引擎中。

這些就是我所做的;

1-創建靜態的BOM虛擬方法並獲取實例參數,該參數是ilog.rules.engine.IlrRuleInstance的對象。

instance ilog.rules.engine.IlrRuleInstance

2-通過以下方式創建BOM到XOM的映射

System.out.println("Log icinde");
String ruleName = "";
if (instance != null )
    ruleName = instance.getRuleName();
else
    System.out.println("instance null!");
if (ruleName != null) {
    System.out.println("RuleName: "+ ruleName);
}
return;

3-在規則流中將其稱為初始操作或最終操作。

utility.logla(ruleInstance);

但是當我執行流程時,我的日志不起作用的實例為null ,ruleName也為null

我應該如何使用Bom配置和設置日志記錄功能。 你能給我一個例子嗎?

謝謝。

這是因為您從規則描述中的規則實例的上下文外部調用了getRuleName()。

如果您在規則操作中調用了BOM方法,則可以調用IlrRuleInstance.getRuleName()並返回規則名稱(我之前做過這樣的事情)。

您打算通過此日志記錄實現什么?

因此,您可以使用執行服務器中的Decision Warehouse來跟蹤每個執行。 這可以包括在執行期間觸發了哪些規則,但取決於您應用的過濾器。

這里是有關DW及其設置方法的文檔: http : //pic.dhe.ibm.com/infocenter/dmanager/v8r5/topic/com.ibm.wodm.dserver.rules.res.managing/topics/con_res_dw_overview .html

有一種更好的規則記錄方法。 在您的Virtual方法中,傳遞規則本身而不是ruleInstance的名稱。 您還可以表達您的方法,並在每個規則中使用相同的方法。

例如:From BAL:記錄此規則的名稱;

從IRL發送:Log(ilog.rules.brl.IlrNameUtil.getBusinessIdentifier(?instance.ruleName));

另一種方法是在規則應用程序或模塊的規則流(編排)中使用上面提供的BAL( the name of this rule )。

當然,此解決方案僅應用於調試或故障排除方案。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM