在指令檔內使用 Groovy

您可以使用 Groovy 成員步驟類型將 Groovy 程式碼合併到指令檔中。針對每個含有 Groovy 程式碼的指令檔,將會有藉由鏈結所有 Groovy 成員步驟建立的單一 Groovy 類別。

基於安全考量,可用於以 Groovy 撰寫指令檔的產品與第三方 Java 類別有所限制。若要在 Groovy Javadocs 檢視器中檢視可允許的基準類別,可透過內容關聯「指令檔提示」區域中的「檢視 Groovy Javadocs」連結來檢視。若要檢視可允許的第三方類別列表,可透過「指令檔提示」區域中的「檢視第三方 Groovy 允許列表」連結來檢視。

備註:此系統支援使用 Groovy 來進行後端處理。不應將其用於使用者介面。Groovy 也不適用於業務處理助理指令檔。

Groovy 指令檔引擎

對於從 Java 內叫用並完全以 Groovy 撰寫的指令檔,應使用的指令檔引擎版本為 Groovy。系統會以類似使用 Java 撰寫程式碼的方式處理此類型的指令檔。這可讓您不必將指令檔轉換成 XML 格式或從 XML 格式轉換,並允許使用直接作用在系統物件上的程式碼,從而提升效能。

以下是支援 Groovy 引擎版本的指令檔類型:

外掛指令檔

外掛指令檔如果只包含 Groovy 導向的步驟類型,便可設定成使用 Groovy 引擎。系統有提供一個定義外掛點 API 的自動產生超級類別。就內部而言,Groovy 程式碼必須遵守系統針對 Java 型演算法類型的慣例,包括包含作為外掛進入點的「叫用」方法,以及使用註解來定義「彈性」參數。

Groovy 程式庫指令檔

Groovy 程式庫指令檔讓您能夠建立以 Groovy 撰寫而可從其他指令檔內呼叫的通用常式群組。此類型的指令檔必須包含 Groovy 程式庫介面單一步驟類型,當中列出程式庫中公開可用的方法。這些方法的支援程式碼是在程式庫指令檔內的一或多個 Groovy 成員步驟類型中定義。程式庫中定義的方法可接受引數並傳回任何類型的值。此類型的指令檔預設會使用 Groovy 引擎,且無法包含指令檔步驟類型。

需要從 Groovy 程式庫叫用方法的指令檔可以使用系統提供的 createLibraryScript 方法來建立程式庫介面。請確定正在建立的類別包含 .class 副檔名。

在指令檔引擎內叫用 Groovy

如果已設定外掛指令檔或服務指令檔使用某個指令檔引擎版本,它便可以包含一般與 Groovy 成員步驟類型的組合。指令檔步驟類型將會定義要執行的處理。Groovy 成員步驟包含可使用 invokeGroovy 指令從指令檔內的編輯資料步驟類型呼叫的程式碼。使用此命令時,僅支援不接收任何引數且會傳回 void 的 Groovy 方法。如需更多明細,請參考有關編輯資料步驟的小節。

針對使用此選項的指令檔,架構提供一個包含方法的超級類別,這些方法支援通用指令檔動作,例如移動命令、字串評估及叫用業務物件、業務服務及服務指令檔的方法。如需所支援方法的明細,請參考 Groovy 特定 Javadocs。

匯入 Groovy 類別

指令檔所使用的所有 Groovy 類別都應該在 Groovy 匯入步驟類型中明確宣告。儲存指令檔時,如果系統發現指令檔中有未明確宣告的參考類別,系統會發出警告並自動新增該類別的匯入陳述式。指令檔撰寫者應該複查匯入並確認它們的類別正確 (以防兩個不同套件中有相同名稱的類別)。

回溯相容性

在舊版中,系統不需要明確匯入,而且在執行階段有邏輯可自動匯入 Groovy 可使用的所有可呼叫類別。對於任何未明確宣告其匯入的現有指令檔,系統會在執行階段繼續倒回匯入所有可呼叫的類別。不過,建議您識別並更新所有這類的指令檔,因為這不是建議的做法。

系統提供批次程式 F1-CAGVY,它會報告所有需要自動匯入步驟才能成功編譯的指令檔。此外,當 Groovy 版本升級成可於編譯現有指令檔之際,主動偵測因 Groovy 變更而可能發生的問題時,此批次程式也會非常有用。建議實作在短期內執行此批次程式,以識別並修正任何遺漏明確匯入的指令檔,同時對於任何 Groovy 版本升級,則建議複查所有可能回報的實作擁有指令檔。