建立使用者定義的檢查

您可以建立使用者定義的檢查,它們也稱為外部檢查,是您自己撰寫的自訂檢查。例如,系統設定檔一般需要網域特定的檢查

關於這項作業

就如 IBM® Rational® Rhapsody® 提供的預先定義內部檢查一樣,您可以定義是否從產生程式碼呼叫外部檢查。此外,您還可以定義針對哪些 meta 類別執行外部檢查。

您可以透過 Rational Rhapsody API 實作使用者定義的外部檢查,並可以使用 Rational Rhapsody 中已有的 GUI 來執行這些外部檢查。不管是內部檢查還是外部檢查,都會執行檢查,並且會透過產品中相同的 GUI 顯示結果。

Rational Rhapsody 提供一個 API,用於透過使用 COM API(C++ 及 VB 使用者)和 Java API(Java 使用者)登錄、列舉和移除使用者定義的外部檢查。COM 回呼(連線點)可讓您在執行檢查時,開啟使用者定義的程式碼。此功能適用於使用 COM API 或 Java API 的使用者,以便您可以新增、執行或移除使用者定義的檢查。

您可決定要檢查哪些 meta 類別(或新項目),並且會呼叫您的檢查以檢查您決定的 meta 類別的元素。

程序

例如,為了 COM API 使用者建立使用者定義的檢查:

  1. 在 COM API 中實作從介面 IRPExternalCheck 定義的類別。
  2. 使用 IRPExternalCheckRegister 新增方法登錄此類別。可以透過 IRPApplication 上的方法取得此單態。
  3. 必須在用戶端機器上實作 IRPExternalCheck

結果

下列表格列出介面中的方法,是您必須實作才能進行使用者定義的檢查。

表 1. 必須實作介面中的方法,才能進行使用者定義的檢查
方法 說明
GetName() 將名稱屬性以字串形式傳回。
GetDomain() 將網域屬性以字串形式傳回。
GetSeverity() 傳回其中一個預先定義的嚴重性字串:錯誤、警告或資訊。
IsCompleteness() 如果檢查針對完整性則傳回 TRUE,否則傳回 FALSE(檢查針對正確性)
ShouldCallFromCG() 如果在使用者產生程式碼時必須呼叫檢查,則傳回 TRUE
GetRelevantMetaclasses() 傳回相關 meta 類別及/或項目清單。針對現行配置範圍內傳回其 meta 類別的任何元素,Rational Rhapsody 將啟動檢查。
Execute() Rational Rhapsody 呼叫以執行檢查。如果檢查通過,則此常式傳回 TRUE,或者如果檢查失敗,則傳回 FALSE。它有兩個參數:
  • Rational Rhapsody 提供的第一個參數是必須對其執行檢查的 IRPModelElements(其 meta 類別位於檢查 GetReleventMeltaclass() 清單中)。
  • 當相關時由檢查傳回的第二個參數,是在檢查失敗時,Rational Rhapsody 將強調顯示的 IRPModelElements 集合。

部署使用者定義的檢查

關於這項作業

您在 COM 用戶端中提供程式碼。

  • 如果使用的是 VB,則用戶端是 EXE 檔。
  • 如果使用的是 C++,則用戶端是 EXE 或 DLL 檔。
  • 如果使用的是 Java,則用戶端是 CLASS 或 JAR 檔。

IBM Rational Rhapsody 使用外掛程式機制來載入程式碼,一般同時載入 HEP 檔或 INI 檔。您通常在新增相關專案或檔案之後新增 HEP 檔。例如,要撰寫 Java 外掛程式的使用者將會使用 Rational Rhapsody Java API 來撰寫該外掛程式,並提供類似於下列範例的 HELP 檔。

[Helpers]
numberOfElements=1
name1=ExternalChecks
JavaMainClass1=JavaPlugin.ExternalChecks
JavaClassPath1=$OMROOT\..\DoDAF

Java 及 VB 的範例檢查專案在 Rational Rhapsody 安裝路徑的 ExternalChecksSample 子資料夾中提供(例如,&ltproduct installation folder>\Samples\ExtensibilitySamples\ExternalChecksSample)。

移除使用者定義的檢查

關於這項作業

若要移除使用者定義的檢查,請使用 IRPExternalCheckRegister 移除方法來移除類別。可以使用 IRPApplication 上的方法取得此單態。


意見回饋