Entity オブジェクトに行なわれた変更でデータベースを更新します。
このメソッドは、Entity オブジェクトが編集可能な場合にのみ呼び出すことができます。既存の Entity オブジェクトを編集可能にするには、Session オブジェクトの EditEntity メソッドを呼び出します。Entity オブジェクトの IsEditable メソッドを使用すると、例外処理の一部としてコミット操作を元に戻す必要があるかどうかを判別できます。検証失敗のすべてについて元に戻す必要がない場合があります。また Revert メソッドの呼び出しは、コミットの成功後は機能しません (Entity が既にデータベースにコミット済みであるために通知後警告が戻された場合でも同様です)。
失敗の場合、失敗の原因により、メソッドからエラー メッセージを含む文字列か、または例外が戻されることがあります。例えば、メソッドから、フィールドに対しての無効な値セットなどの、失敗のエラー メッセージを含む文字列が戻されます。しかし、編集可能状態でないエンティティを変更しようとしたなどの他の障害には、メソッドから例外がスローされます。コードでは、両タイプの潜在的な失敗を処理する必要があります。詳しくは、エラー チェックと検証 を参照してください。 アクション コミット フック例 に、Commit メソッドを呼び出すときの、エラーおよび例外の処理の例を示します。
VBScript
' Modify the record and then commit the changes. set sessionObj = GetSession set 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 = "" then status = entityObj.Commit if status = "" then ' successful commit else 'check error message end if else entityObj.Revert end if ' The Entity object is no longer editable
Perl
# Modify the record and then commit the changes. $sessionObj = $entity->GetSession(); $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.