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

Save メソッドでは、ユーザーがトランザクションフォーム内で確認ボタンを押したときと同じ処理が実行されます。
このメソッドはトランザクションのビジネス コンポーネント タイプに基づく変数に適用されるため、このメソッドが実行されると、トランザクションで定義された式およびルールがトリガーされ、参照整合性がチェックされてから、データが物理的に保存されます。
このメソッドは、物理的な挿入または更新のために使用できます。ビジネス コンポーネント タイプに基づく変数のプロパティに値を割り当て、Save メソッドをその変数に対して実行したときに、データが Load メソッドを使用してメモリ内で事前にインスタンス化されていない場合、GeneXus では Save メソッドは挿入に使用されるとみなされます。一方で、メモリ内の特定のデータをインスタンス化するために、まず Load メソッドをビジネスコンポーネント変数に適用し、その後、ビジネスコンポーネント変数のプロパティに値を割り当てて保存した場合、GeneXus では、最初の手順でロードされたデータが更新されるとみなされます。
Save メソッドは、トランザクションの最初のレベルのビジネスコンポーネント変数に適用される場合にのみ有効です。この動作は、トランザクションフォーム内で確認ボタンを押したときと同じ動作であるため、容易に理解できます。確認ボタンを押すと、フォーム内に存在する (トランザクションのすべてのレベルに属する)、すべてのデータが保存されます。

構文

&VbleBasedOnBCType.Save()

入力値の説明:
&VbleBasedOnBCType
      GeneXus オブジェクトに定義された一時変数またはローカル変数であり、トランザクションのビジネス コンポーネント タイプに基づきます。

次のトランザクションをビジネスコンポーネントとして定義する ([ Business Component ] プロパティを True に設定する) とします:
Customer
{
  CustomerId*     (Autonumber property = True)
  CustomerName
  CustomerAddress
  CustomerPhone
  CustomerEmail
  CustomerAddedDate
  CustomerTotalMiles
}
Customer のルールは次のとおりです:
Default(CustomerAddedDate,&today);
したがって、Customer トランザクションのビジネス コンポーネント データ タイプがナレッジベースに自動的に作成され、作成された新しいタイプの変数を任意のオブジェクトで定義できます。そのため、Customer タイプに基づいて、任意のオブジェクトで &Customer 変数を定義します。
1) 次のコードは、顧客情報を挿入します。このコードは、プロシージャーのソースや Web パネルのイベント内などで定義されます:
  &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) 次のコードは、顧客情報を更新します。このコードは、プロシージャーのソースや Web パネルのイベント内などで定義されます:
  &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: 22/04/05 18:17 by Admin
カテゴリ
Powered by GXwiki 3.0