ユーザーが
トランザクションフォーム内で確認ボタンを押したときと同じ処理を実行します。
&VarBasedOnBC.
Save()
入力値の説明:
&VarBasedOnBC
GeneXus オブジェクトに定義された変数であり、ビジネスコンポーネントに基づきます。
このメソッドは
ビジネスコンポーネントに基づく変数に適用されるため、トランザクションに定義された式とルールがトリガーされ、参照整合性がチェックされてから、データが物理的に保存されます。
このメソッドは、物理的な挿入または更新に使用できます。
ビジネス コンポーネントに基づく
変数のプロパティに値を割り当て、その変数に対して Save メソッドを実行したときに、データが
Load メソッドを使用してメモリー内で事前にインスタンス化されていない場合、GeneXus では Save メソッドが挿入に使用されるとみなされます。
一方、ビジネスコンポーネント変数に Load メソッドを適用し、メモリー内の特定のデータをインスタンス化した後、ビジネスコンポーネント変数のプロパティに値を割り当てて保存した場合、GeneXus では、最初の手順でロードしたデータが更新されるとみなされます。
Save メソッドは、トランザクションの最初の
レベルのビジネスコンポーネント変数に適用される場合にのみ有効です。この動作は、トランザクションフォーム内で確認ボタンを押したときと同じ動作であるため、容易に理解できます。確認ボタンを押すと、フォーム内に存在する (トランザクションのすべてのレベルに属する)、すべてのデータが保存されます。
次のトランザクションをビジネスコンポーネントとして定義する (
[ Business Component ] プロパティを True に設定する) とします:
Customer
{
CustomerId* ( [ Autonumber ] プロパティ = True)
CustomerName
CustomerAddress
CustomerPhone
CustomerEmail
CustomerAddedDate
CustomerTotalMiles
}
Customer のルールは次のとおりです:
Default(CustomerAddedDate,&today);
したがって、Customer トランザクションのビジネス コンポーネント データ タイプが
ナレッジベースに自動的に作成され、作成された新しいタイプの変数を任意のオブジェクトで定義できます。そのため、Customer タイプに基づいて、任意のオブジェクトで &Customer 変数を定義します。
1) 次のコードは顧客情報を挿入します。このコードは、
プロシージャーの [ Source ] や
Web Panel オブジェクトの [ Events ] エレメントなどで定義されます。
&Customer.CustomerName = 'Mary'
&Customer.CustomerLastName = 'Brown'
&Customer.CustomerAddress = '767 5th Avenue'
&Customer.CustomerEmail = 'mbrown@gmail.com'
&Customer.save()
if &Customer.success()
commit
else
rollback
endif
2) 次のコードは、顧客情報を更新します。このコードは、プロシージャーの [ Source ] や Web パネルの [ Events ] エレメントなどで定義されます。
&Customer.Load(8)
&Customer.CustomerEmail = 'marybrown@gmail.com'
&Customer.save()
if &Customer.success()
commit
else
rollback
endif
ビジネスコンポーネントのエラー処理