連結鉤是進入點(類似觸發程式),可供指定時間執行的 Script 控制使用者在 Rational® ClearQuest 環境中的工作方式。
連結鉤是以超級使用者專用權執行,因此不受一般存取控制或欄位行為限制的約束。您可以使用連結鉤來設定及重設一般唯讀欄位中的值。(您無法重設系統欄位,例如「歷程」欄位)。必要欄位仍為必要的。如需相關資訊,請參閱《IBM Rational ClearQuest API 參考手冊》和動作和存取控制。
支援四種連結鉤類型:
欄位連結鉤可讓您在執行時期檢查欄位值,以及在必要時調整其他欄位。例如,您可以驗證欄位的內容或指派預設值給它。
動作連結鉤可讓您在記錄生命週期的關鍵時刻執行作業。一般而言,動作連結鉤與影響整個記錄的事件相關聯。例如,您可以驗證整個記錄,並在動作完成時傳送通知。
記錄 Script 可讓您在執行時期執行特定的作業。記錄 Script 是記錄類型特有的,通常與表單控制項相關聯。
廣域 Script 可讓您定義綱目中所有記錄類型可共用的常式庫。例如,您可以撰寫子常式(例如電子郵件通知),您可以從任何記錄類型的任何連結鉤呼叫它。
您可以用 VBScript(適用於 Windows)及 Perl(適用於 UNIX 系統和 Windows)來撰寫連結鉤。依預設,在 Windows 上的連結鉤是以 VBScript 執行。如需以適用於 Windows 的 Perl 執行連結鉤的相關資訊,請參閱 Scripting 語言。
您可以對欄位和動作連結鉤新增以 VBScript 或 Perl 撰寫的 Script。如果您要建立廣域 Script 或記錄 Script,必須使用 VBScript 或 Perl。
為了方便儲存和參照,您可以在相同綱目中同時撰寫 VBScript 和 Perl Script。不過,綱目只能以為該綱目指定的語言來執行 Script。如需相關資訊,請參閱 Scripting 語言。
在 Script 編輯器中撰寫或編輯 Script。當您定義新 Script 時,Designer 會將該連結鉤的呼叫語法新增到 Script 編輯器視窗。您無法編輯呼叫語法。Designer 也會新增範例內文文字,您可在必要時編輯此文字。(起始內文文字會註銷,除非您移除註解標記,否則它不會執行)。
Designer 為 VBScript 和 Perl 提供不同的 Script 編輯器,並在視窗的標題列中指出編輯器類型。在撰寫程式碼之前,請驗證您使用正確的編輯器。
撰寫 VBScript 和 Perl 連結鉤的程序已簡化,因為作業環境定義是一致的。在連結鉤呼叫 VBScript 或 Perl Script 之前,Rational ClearQuest 軟體會建立 Session 物件,並登入該使用者。因為所有連結鉤(包括廣域 Script 在內)都是從現行記錄的環境定義中執行,所以會提供您一個對應於該記錄的 Entity 物件。(廣域 Script 共用與呼叫它的連結鉤相關聯的 Entity 物件)。
在 Script 內,您可以呼叫 Entity 方法而不必指定前導 ID。例如,您可以用下列方式呼叫 Entity 的 GetSession 方法:
set curSession = GetSession
當您以此方式呼叫方法時,Rational ClearQuest 軟體會假設您呼叫隱含的 Entity 物件的方法,該物件傳遞至連結鉤。如果您想要明確地參照這個 Entity 物件,可使用記錄類型的名稱作為物件的 ID。使用這個 ID 有助於釐清一次操作多個 Entity 物件的程式碼,如下例所示,它將一個實體標示為另一個實體的重複項:
set curSession = GetSession
idName = GetFieldValue("id").GetValue
set currentObj = curSession.GetEntity("defect", idName)
' Mark the entity with ID="SAMPL00000031" as a duplicate of this entity.
' Use the action named "duplicate".
set dupEntityObj = curSession.GetEntity("defect", "SAMPL00000031")
curSession.MarkEntityAsDuplicate dupEntityObj, currentObj, "duplicate"
因為 Script 會影響欄位的行為,因此請審慎設計及測試連結鉤程式碼。例如,如果連結鉤需要欄位包含某種值,則該欄位會變成必要的欄位,即使其行為未設定為 MANDATORY 也一樣。
若未正確撰寫,連結鉤程式碼可能會在執行時期產生難以察覺的錯誤。當您驗證綱目時將會編譯連結鉤,且會標記所有語法或文法錯誤。在移入綱目之前,請以測試資料庫測試它,在將綱目變更套用至使用者資料庫之前,請先備份使用者資料庫。如需相關資訊,請參閱以測試資料庫測試綱目。
規劃連結鉤時,請考量下列問題:
在抄寫環境中執行的連結鉤的許多相關問題,與單一站台資料庫鎖定問題相同。在單一站台或抄寫環境中,其連結鉤的功能測試也相同。不過,在抄寫環境中執行某些 ClearQuest 連結鉤,可能與在單一站台環境中不同。例如,在一個記錄動作的環境定義中更新其他記錄的連結鉤時,如果其他記錄並非在現行站台上受到主控而無法修改,則可能會發生錯誤。
每一個資料庫記錄只能在目前主控它的站台上更新(這是由該記錄的 ratl_mastership 欄位中的抄本站台名稱指示)。在複式應用程式中,多個記錄可當成複式交易的一部分來更新。在設計及測試抄寫環境的連結鉤時,這些原則應列入考量。
當您安裝套件時,可將欄位連結鉤或記錄 Script 新增到綱目中。這些 Srcipt 是套件的一部分,而不是連結鉤程式碼的一部分。
您無法刪除或修改套件擁有的 Script;它們並不是綱目所擁有的程式碼的一部分。因此,您為連結鉤程式碼所選擇的預設語言設定與實作套件所擁有的連結鉤的語言,兩者之間沒有任何關係。