SetFieldValue

説明

指定されたフィールドに指定された値を設定します。

フィールドが変更可能な場合、新規の値が有効であるかどうかに関係なく、このメソッドによって新規の値が設定され、空の文字列が戻されます。フィールドに有効な値が入っているかどうかを判別するには、そのフィールドの FieldInfo オブジェクトを取り出し、FieldInfo オブジェクトの ValidityChangedThisSetValue メソッドを呼び出して、フィールドを検証します。

フィールドを変更できない場合、戻された文字列に、フィールドを変更できない理由が示されています。通常の値は、「no such field」、「record is not being edited」、「field is read-only」です。

フィールドが 1 つでなく複数の値を持つことができる場合は、AddFieldValue メソッドを使用してそれぞれの新規の値を追加します。SetFieldValue を使用することも正しい方法です。しかし、既に値のリストが含まれているフィールドに SetFieldValue を使用すると、リスト全体が新規の単一値で置換されます。

このメソッドは、Entity オブジェクトが編集可能な場合にのみ呼び出すことができます。既存の Entity オブジェクトを編集可能にするには、Session オブジェクトの EditEntity メソッドを呼び出します。

注: フックによってフィールドのプロパティまたは値が変更されると、変更されたフィールドまたは他のフィールドに対応するすべてのローカル変数をリフレッシュする必要がある場合があります。フィールド値を設定するとフックが起動されることがあり、これによってレコード内のフィールドの値または必要性が変更されることがあります。フックまたはスクリプトによってローカル変数をリフレッシュして、レコードの値で最新にしておく必要がある場合があります。現在の値が必要な場合は、ローカル変数をリフレッシュします。

構文

VBScript

entity.SetFieldValue field_name, new_value 

Perl

$entity->SetFieldValue(field_name, new_value); 
識別子
説明
entity
Entity オブジェクトは、ユーザー データ レコードを表します。構文のこの部分を省略すると、フック内では、現在のデータ レコードに対応する Entity オブジェクトが想定されます (VBScript のみ)。
field_name
この Entity オブジェクトの有効なフィールド名を含む String。
new_value
VBScript の場合、フィールドの新規の値を含む Variant。Perl の場合は、新規の値を含む String。
戻り値
フィールドへの変更が許可されている場合、このメソッドは空の文字列を戻します。それ以外の場合、このメソッドは、エラーの説明を含む文字列を戻します。

VBScript

' Set two field values, but only check errors for 
' the second field. 
entity.SetFieldValue "field1", "new value" 
returnVal = SetFieldValue("field2", "100") 

Perl

# Set two field values for the entity

# Perform error checking on the second field

$entity->SetFieldValue("field1","new value");

$returnval = $entity->SetFieldValue("field2","100"); 

フィードバック