このメソッドを、トランザクションのビジネス コンポーネント タイプに基づく変数に適用すると、Save、Check、Load、または Delete メソッドを実行した後に、その処理が成功したかどうかを評価できます。
操作が成功した場合は True を返します。それ以外のときは False を返します。
構文
&VbleBasedOnBCType.Success()
入力値の説明:
&VbleBasedOnBCType
GeneXus オブジェクトに定義された一時変数またはローカル変数であり、トランザクションのビジネス コンポーネント タイプに基づきます。
次の Customer トランザクションをビジネスコンポーネントとして定義する ([ Business Component ] プロパティを True に設定する) とします:
Customer
{
CustomerId* (Autonumber property = True)
CustomerName
CustomerAddress
CustomerPhone
CustomerEmail
CustomerBirthDate
CustomerAddedDate
}
Rules:
Default(CustomerAddedDate,&today);
error('顧客は 18 歳以上である必要があります') if CustomerBirthDate.Age()<18;
その結果、Customer トランザクションのビジネス コンポーネント データ タイプがナレッジベースに自動的に作成され、作成された新しいタイプの変数を任意のオブジェクトで定義できます。そのため、Customer タイプに基づいて、任意のオブジェクトで &Customer 変数を定義します。
次のコードは、18 歳未満の顧客情報の挿入を試行します。このコードは、プロシージャーのソースや Web パネルのイベント内などで定義されます:
&Customer.CustomerName='Tina Parker'
&Customer.CustomerAddress='18001 Collins Avenue'
&Customer.CustomerPhone= '877-219-8890'
&Customer.CustomerEmail= 'tinaparker@mail.com'
&Customer.CustomerBirthDate= ymdtod(2010,10,08)
&Customer.save()
If &Customer.success()
commit
else
&Messages = &Customer.GetMessages()
for &oneMessage in &Messages
msg(&oneMessage.Description)
endfor
endif
このオブジェクト内で定義されている変数は次のとおりです:
- &messagges: Messages データタイプ (コレクション)
- &onemessage: Messages.message データタイプ (messages コレクションの 1 つのエレメント)
エラールールがトリガーされており、保存に成功しなかったため、Success メソッドが評価された結果、false が返されます。したがって、else に含まれるコードが実行されます。
参考情報
ビジネスコンポーネントのエラー処理
ビジネスコンポーネントのメソッド
|