フィールドのパス名を使用したフィールド値の取得

フィールド パス名により、指定された Entity へのパスが指定されます。指定されたレコードに対して GetLocalFieldPathNames を使用し、その後、戻されたフィールド パスを使用して FieldInfo オブジェクトとその内容を取得します。これらのフィールド パスは、ドット付きパス表記 (例えば、owner.fullname) を使用します。

GetFieldValue を呼び出して FieldInfo オブジェクトを取得する場合、通常は次のようにして、オブジェクトの値を取得します。

  Dim Owner 

   Owner = GetFieldValue("owner").GetValue() 

ログイン名でなく、所有者のフルネームを取得する場合は、次のようにコーディングします。

  Dim MySession 

   Set MySession = GetSession() 

   Dim Owner 

   Owner = GetFieldValue("owner").GetValue() 

   Dim UserEntity 

   Set UserEntity = MySession.GetEntity("users", Owner) 

   Dim FullName 

   FullName = UserEntity.GetFieldValue("fullname").GetValue() 

フィールド パス名を使用すると、次のように、同じ結果が得られます。

  Dim FullName 

   FullName = GetFieldValue("owner.fullname").GetValue() 

例えば、Defect という名前のレコード タイプに Customer という名前のレコード タイプへの参照フィールド Cfield があり、そのレコード タイプには、フィールド名が Name の User レコード タイプへの参照フィールド Ufield がある場合、Name のフィールド パスは次のとおりです。

  "Defect\Cfield\Ufield\Name" 

Name のフィールド パス名 (つまり、ドット付き名) は、次のとおりです。

  Defect.Cfield.Ufield.Name 

このパス名を使用して Name の値を取得できます。Perl での例です。

  $defect->GetFieldValue("Cfield.Ufield.Name")->GetValue(); 

Defect を参照する変数 ($defect) が既に存在する場合、初期 Defect は必要ありません。


フィードバック