FireNamedHook

説明

このレコードの EntityDef オブジェクトの名前付きフック (レコード スクリプト) を実行します。

このメソッドを使用すると、実行時にレコード スクリプトを実行できます。レコード スクリプトは、ユーザーが定義するルーチンで、特定のレコード タイプに固有です。レコード スクリプトはフォーム コントロールと共に使用するか、または他のフックから呼び出します。レコード フックは、Rational ClearQuest Designer を使用して定義します。 レコード スクリプトの構文は、次のとおりです。

Function EntityDefName_RecordScriptName(param)
   ' param as Variant 
   ' EntityDefName_RecordScriptName as Variant 

   ' Hook program body 
End Function 

このメソッドを使用して、レコードのフィールドまたはアクション フックを実行することはできません。また、レコード スクリプトから間接的である場合を除いて、グローバル フックも実行できません。

Entity オブジェクトが編集可能であるかどうかに関係なく、このメソッドは Entity オブジェクトで呼び出しできます。しかし、スクリプトで Entity オブジェクトを変更する場合、コードまたはフックで、最初に EditEntity メソッドを呼び出して、Entity オブジェクトを編集可能にする必要があります。

スクリプトでパラメータを受け入れる場合は、すべてのパラメータを単一 Variant にして (Visual Basic の場合)、その Variant を param に指定します。スクリプトは、渡されるパラメータを解釈できる必要があります。返送時には、スクリプトは単に、該当する戻り値の Variant を戻します。

Perl の場合、区切り文字として非印刷文字 (改行など) を使用して、単一文字列値を連結し、複数のパラメータを組み込むことができます。その後この文字列を、組み込み分割演算子でデコードできます。

構文

VBScript

entity.FireNamedHook scriptName, param 

Perl

$entity->FireNamedHook(scriptName, param); 
識別子
説明
entity
Entity オブジェクトは、ユーザー データ レコードを表します。構文のこの部分を省略すると、フック内では、現在のデータ レコードに対応する Entity オブジェクトが想定されます (VBScript のみ)。
scriptName
実行するフックの名前を含む String。
param
Visual Basic の場合、フックに渡すパラメータが含まれている Variant。Perl の場合、フックに渡すパラメータが含まれている String。
戻り値
フックを呼び出すステータスを示す String。フックが正常に実行されると、このメソッドから空の文字列 ("") が戻されます。そうでない場合、戻された文字列には、エラーの説明が含まれています。

VBScript

' Execute the hook "MyHook" with the specified parameters

Dim params(1) 

params(0) = "option 1" 

params(1) = "option 2" 

returnValue = entity.FireNamedHook("MyHook", params) 

Perl

# Execute the hook "MyHook" with the specified parameters

$params = "option 1¥noption 2";

$returnValue = $entity->FireNamedHook("MyHook",$params);



# In the hook, split them like this:

my $param = shift;

my @params = split '¥n', $param; 

フィードバック