匯入及存取外部模組及物件

此範例指出您如何讓表示式可以存取外部程式碼 (例如,Java™ 類別) 及外部物件。外部物件為應用程式建立用來與表示式通訊的物件。

在您從表示式存取外部程式碼之前,您必須讓表示式可以存取該程式碼。

匯入是讓表示式可以存取外部程式碼的程式設計語言專用方式。<import> 元素包含特殊類型的表示式, 此表示式可以指定要匯入以在規則內的其他表示式中使用的外部模組 (例如,Java 類別)。您可以在規則集或規則區塊層次定義匯入。

下列 <import> 元素包含以 Java 程式設計語言撰寫的表示式,此表示式會匯入可從其他表示式參照的 StaticHelper 類別及 Queue 類別:
<import expressionLanguage="java">
	import com.ibm.act.sample.StaticHelper;
	import com.ibm.act.test.Queue;
</import>

雖然在 import 陳述式中不需要使用完整的類別名稱,您仍然應該指定完整名稱以防止編譯時間過長。例如,應該將 Java 類別指定為 com.ibm.act.sample.StaticHelper,而不是 com.ibm.act.sample.*com.ibm.act.*

存取靜態方法

下列範例指出規則回應動作內的表示式如何在匯入 StaticHelper 類別之後參照它:
<onDetection>
	<action expressionLanguage="java">
		StaticHelper.pageAdministrator("Too many login attempts for " + act_event.getAttribute("userID"));
	</action>
</onDetection>

存取物件的實例方法

下列範例指出規則回應動作內的表示式如何在匯入 Queue 類別之後參照它。在此範例中,會取得名稱為 OutputQueueOne 及類型為 Queue 的外部物件,可用來將事件放置在特定佇列中。
<onDetection>
	<action expressionLanguage="java">
		Queue myQueue = (Queue)act_lib.getExternalContext("OutputQueueOne");
		myQueue.enqueue(act_event);
	</action>
</onDetection>