最近のアクセス:
ビジネスコンポーネントの Save メソッド

ユーザーがトランザクションフォーム内で確認ボタンを押したときと同じ処理を実行します。

構文

&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
 

参考情報

ビジネスコンポーネントのエラー処理










サブページ
Created: 15/01/07 22:48 by Admin Last update: 23/05/08 21:26 by Admin
カテゴリ
Powered by GXwiki 3.0