高度なカスタマイズ > ビジネスロジックのカスタマイズ > 予約サービス > 予約サービスの使用
  
予約サービスの使用
予約オブジェクトの作成
予約サービス API の多くが、目的の予約を説明するパラメータを Reservation オブジェクトに含めます。
Reservation オブジェクトを作成するときは常に、Reservable オブジェクトへの参照を指定する必要があります。ほかのパラメータは省略可能です。
予約タイプ (デフォルト - ReservationType.MODIFY)
オブジェクトを予約するユーザー (デフォルト - 現在のユーザー)
予約の期限が切れるまでの時間 (分) (デフォルト - 120 分)
予約サービスによる予約処理の有効化または無効化 (デフォルト - Disabled)
管理者による予約処理のオーバーライドの有効化または無効化 (デフォルト - Disabled)
ワークフロープロセスによる予約処理のオーバーライドの有効化または無効化 (デフォルト - Disabled)
詳細については、Windchill Javadoc の Reservation クラスに関する説明を参照してください。
一般的な予約サービスの実装手順
1. オブジェクトを予約します。
a. ReservationHelper.getService().requestReservation(…) を呼び出してオブジェクトを予約します。
b. 返された isGranted() オブジェクトに対して Reservation メソッドを呼び出して、予約が正常に行われたかどうかを確認します。
正常に行われなかった場合は、getErrorMessage() メソッドを呼び出して、リクエストが失敗した理由を説明するローカライズ可能なメッセージを取得できます。
たとえば、このステップは、変更管理オブジェクトの「編集」操作が開始されたときに行われます。
2. 予約が付与されると、操作を続行できます。そうでない場合は、適切なステップに従って、待ってから再試行するか、操作を続行できないことをユーザーに通知します。
たとえば、ユーザーが変更管理オブジェクトの「編集」操作を続行して修正を行うことができるようにするか、エラーメッセージを表示します。
3. 操作が正常に完了した場合は、以下を行います。
a. 予約が存在することを確認します (たとえば操作の期限が切れていないかどうかや操作が管理者によって取り消されていないかどうか)。これを行うには、次を呼び出します。
ReservationHelper.getService().checkGranted(…)
予約が存在しない場合は、再びリクエストするか、操作を中止できます。同時修正を防止するため、オブジェクトは、予約が付与されていなければ、修正してはなりません。
b. 予約されているオブジェクトのデータベース更新を行います。
c. 別のユーザーがオブジェクトを修正できるようにします。これを行うには、次を呼び出します。
ReservationHelper.getService().releaseReservation(…)
この呼び出しは、前述のステップ (3b) で使用されているトランザクションに含めることができます。これにより、このトランザクションが完全にコミットされるまで予約は解放されません。このトランザクションのコミットが失敗した場合、予約は個別に解放される必要があります。
たとえば、このステップは、ユーザーが「終了」をクリックすると実行されます。
4. 操作がキャンセルされた場合、または正常に完了しなかった場合は、以下を行います。
a. 別のユーザーがオブジェクトを修正できるようにします。これを行うには、次を呼び出します。
ReservationHelper.getService().releaseReservation(…)
たとえば、このステップは、ユーザーが「キャンセル」をクリックすると実行されます。