在指令檔內使用 Groovy
您可以使用 Groovy 成員步驟類型將 Groovy 程式碼合併到指令檔中。針對每個含有 Groovy 程式碼的指令檔,將會有藉由鏈結所有 Groovy 成員步驟建立的單一 Groovy 類別。
基於安全考量,可用於以 Groovy 撰寫指令檔的產品與第三方 Java 類別有所限制。您可以透過指令檔入口中的「Java 文件」動作,在 Groovy Javadocs 檢視器中檢視允許的基準類別。若要檢視可允許的第三方類別列表,也可透過指令檔入口中的「第三方 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 版本升級,則建議複查所有可能回報的實作擁有指令檔。