変更された値フックを使用して、フィールドの値の変更後に、フィールドを同期するか、あるいは、他のタスクを実行することができます。
次の例では、現在のフィールドに格納されているオペレーティング システムをフックで確認します。オペレーティング システムに従い、フックによってバージョン番号が OS_version フィールドに割り当てられます。現在のフィールドがまだ設定されていなくて、オペレーティング システムの名前が格納されていない場合、このフックは対応するバージョン番号を設定しません。
Sub OS_type_ValueChanged(fieldname)
' fieldname As String
value = GetFieldValue(fieldname).GetValue()
If value = "solaris" Then
SetFieldValue "OS_version", "7.x"
ElseIf value = "windows" Then
SetFieldValue "OS_version", "95"
ElseIf value = "hpux" Then
SetFieldValue "OS_version", "10.x"
End If
End Sub
sub OS_type_ValueChanged {
my($fieldname) = @_;
my($value);
$value = $entity->GetFieldValue($fieldname)->GetValue();
if ($value eq "solaris") {
$entity->SetFieldValue("OS_version", "7.x");
} elsif ($value eq "windows") {
$entity->SetFieldValue("OS_version", "95");
} elsif ($value eq "hpux") {
$entity->SetFieldValue("OS_version", "10.x");
}
}