[英](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.