Option Explicit Private Sub Print_TriggerTypes(VOB As CCVOB) ' VOB からトリガ タイプ コレクションを取得します。 Dim TriggerTypes As CCTriggerTypes Set TriggerTypes = VOB.TriggerTypes Dim str As String str = "Found " & TriggerTypes.Count & " trigger type(s)" & vbCrLf ' コレクションを反復し、各トリガ タイプに関する情報を集めます。 Dim TriggerType As CCTriggerType For Each TriggerType In TriggerTypes str = str & "Name: " & TriggerType & " Type: " ' トリガの種類を取得します。 Select Case TriggerType.KindOfTrigger Case ccKind_Type str = str & "Type" Case ccKind_Element str = str & "Element" Case ccKind_AllElement str = str & "All Element" Case Else str = str & "Unknown" End Select ' トリガ タイプの所有者およびグループを取得します。 str = str & vbCrLf & vbTab & "Owner: " & TriggerType.Owner & _ ", Group: " & TriggerType.Group & vbCrLf ' 起動条件を取得します。 str = str & vbTab & "Firing On: " Select Case TriggerType.Firing Case ccFiring_PreOp str = str & "Pre-operation(s)" Case ccFiring_PostOp str = str & "Post-operation(s)" Case Else str = str & "'Bad Value'" End Select str = str & vbCrLf ' アクション配列を取得します。 Dim Num as Long Num = TriggerType.NumberOfActions If Num = 0 Then str = str & vbTab & "No actions" Else Dim Actions As Variant Dim vtype As Variant Actions = TriggerType.ActionsArray str = str & vbTab & "Actions array: " For I = 0 to Num - 1 If I <> 0 Then str = str & ", " Select Case Actions(I, 0) Case ccAction_Exec str = str & "Exec '" & Actions(I, 1) & "'" Case ccAction_ExecUnix str = str & "ExecUNIX '" & Actions(i, 1) & "'" Case ccAction_ExecWin str = str & "ExecWin '" & Actions(i, 1) & "'" Case ccAction_Mklabel Set vtype = Actions(I, 1) str = str & "Mklabel-" & vtype Case ccAction_Mkattr Set vtype = Actions(I, 1) str = str & "Mkattr-" & vtype & "=" & Actions(I, 2) Case ccAction_MkhlinkTo Set vtype = Actions(I, 1) str = str & "Mkhlink-" & vtype & ",to=" & Actions(I, 2) Case ccAction_MkhlinkFrom Set vtype = Actions(I, 1) str = str & "Mkhlink-" & vtype & ",from=" & Actions(I, 2) Case Else str = str & "'Unknown Action'" End Select Next str = str & vbCrLf End If ' 望むなら、操作の種類、包含オブジェクト (タイプ トリガの場合)、 ' 制限 (エレメント トリガの場合)、および免除ユーザー リストも ' 表示するために集めることができます。 Next ' 結果を表示します。 MsgBox str End Sub ' 最上位の ClearCase オブジェクトに接続します。 Dim CC As New ClearCase.Application ' トリガ タイプ ビルダーを作成します。 Dim VOB As CCVOB Set VOB = CC.VOB("¥caroltest") Dim Builder As CCTriggerTypeBuilder Set Builder = VOB.CreateTriggerTypeBuilder ' トリガ タイプ パラメータをセットアップします。 Builder.DebugPrinting = True Builder.Name = "TempTriggerType" Builder.KindOfTrigger = ccKind_Type Builder.Firing = ccFiring_PreOp Builder.FireOn ccOp_unlock Builder.FireOn ccOp_rntype Builder.IncludeOn VOB.BranchType("main") Builder.IncludeOn ccAll_HyperlinkTypes Builder.AddExecAction "%SystemRoot%¥system32¥echo.exe hello" Builder.DebugPrinting = False ' ビルダーからトリガ タイプを作成します。 Dim TriggerType As CCTriggerType Set TriggerType = Builder.Create _ ("Test creating trigger type from CAL example") ' すべてのトリガ タイプに関する情報を出力します。 Print_TriggerTypes VOB ' タイプを削除します。 TriggerType.RemoveType ' 再度情報を出力します。 Print_TriggerTypes VOB