# この例では、エレメントのロックについて説明しますが、 # 他の CCVOBObjects のロックも同様の方法で機能します。 # またこの例では、Perl からのバリアント配列についても説明します。 use Win32::OLE; use Win32::OLE::Variant; # 最上位の ClearCase アプリケーション オブジェクトに接続します。 $cc = Win32::OLE->new('ClearCase.Application') or die "Could not create Application object¥n"; # 最上位のアプリケーション オブジェクトから CCElement オブジェクトを取得します。 my $elem = $cc->Element("m:¥¥carol_main¥¥caroltest¥¥testelem.c"); # ロックを免除するユーザーの配列 ("jo" および "caroly") を作成します。 my $exemptusers = Variant(VT_ARRAY|VT_BSTR, 2); $exemptusers->Put(["jo", "caroly"]); # エレメント上にロックを作成します。ただし、エレメントを不要にはしません。 $elem->CreateLock("locking from example script", false, $exemptusers); # ロックに関するいくつかの情報を出力します。 # 注: 例ではエラー チェックを実行していませんが、実際にはエラー チェックを実行してください。 my $elemlock = $elem->Lock; my $record = $elemlock->CreationRecord; # Get the list of exempt users my $users = $elemlock->ExemptUsersStringArray; my $strusers = ""; $first = 1; for (@$users) { if ($first == 0) { $strusers = $strusers . ", " . $_; } else { $strusers = $_; $first = 0; } } # その他のロック情報を出力します。 print("Lock created by ", $record->UserLoginName, " at ", $record->Date, " and has ", $elemlock->NumberOfExemptUsers, " exempt users: ", $strusers); # ここで、宣言した配列を使用して、免除ユーザーのリストを変更します。 my @names = ("bill", "eric", "caroly"); my $arr = Variant(VT_ARRAY|VT_BSTR, 3); $arr->Put([$names]); $elemlock->SetExemptUsersStringArray($arr); # アンロックします。 $elemlock->Remove;