変更のデータベースへのコミットは 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.