変更のデータベースへのコミットは 2 つのステップによる処理であり、まず変更または作成したレコードを検証し、次に変更をコミット します。
レコードの作成または編集後は、次のステップに従って変更内容をデータベースに保存します。
Validate メソッドはスキーマの検証スクリプトを実行し、検証エラーを含む文字列を戻します。この文字列が空でない 場合、GetInvalidFieldValues メソッドを使用して、正しくないデータを含んでいるフィールドのリスト を戻すことができます。これらのフィールドの値を修正した後、Validate を再度呼び出す必要があります。Validate メソッドから空の文字列が戻された場合、エラーはなくなりました。
レコードを検証して、検証に成功した後、対応する Entity オブジェクトの Commit メソッドを呼び出して、データベースへの変更をコミットします。
変更 を元に戻す: レコードの検証が失敗した場合、変更をデータベースに コミットすることはできません。安全策として、レコードを元の状態に復元し、エラーを報告することをお勧めします。レコードを復元するには、Entity オブジェクトの Revert メソッドを呼び出します。
変更のセットを元に戻すと、レコードが、EditEntity を呼び出した前の状態に戻ります。 BuildEntity メソッドで作成された Entity オブジェクトに行われた変更を元に戻すと、 レコードは作成されず、データは破棄されます。レコードに関連付けられた ID は リサイクルされません。BuildEntity メソッドによって編集可能にされたレコードを元に戻すと、レコードは破棄されますが表示 ID は破棄されないので、その後のレコードはその ID を使用できません。
# Modify the record and then commit the changes.
$entityObj = $sessionobj->GetEntity("defect","BUGID00000042");
$sessionObj->EditEntity($entityobj,"modify");
# Modify the entity object
# Your code should also check for exceptions
$status = $entityObj->Validate();
if ($status == ""){
$status = $entityObj->Commit();
if ($status == ""){
# successful commit
}
else {
# check error message
}
} else {
$entityObj->Revert();
}
# The entity object is no longer editable.