intra-martでIM-Workflowの案件状態を判定する方法を紹介します。
IM-Workflowの案件情報を取得する際、案件の状態によってAPIを使い分ける必要がありますが、対象の案件の状態が「未完了」か「完了」かがわからないことがあります。
その場合、案件状態マネージャ (UserMatterStatus) を使用することで、案件状態ごとに処理をわけることができます。
案件状態による処理分岐の実装
以下ソースです。
案件状態マネージャ (UserMatterStatus) で案件状態を取得して、案件状態ごとに分岐し、APIを適切に使い分けています。
// 案件状態を取得する String searchLevel = "1";// "0":未完了案件のみ検索、"1":未完了/完了案件を検索、"2":未完了/完了/過去案件を検索 UserMatterStatus userMatterStatus = new UserMatterStatus(searchLevel); UserMatterStatusModel userMatterStatusModel = userMatterStatus.getMatterStatus(systemMatterId); String matterStatusCode = userMatterStatusModel == null ? null : userMatterStatusModel.getMatterStatusCode(); // 案件状態による分岐 if (MatterStatus.matSts_Active.toString().equals(matterStatusCode)) { // 未完了案件の場合 ActvMatterNode actvMatterNode = new ActvMatterNode(systemMatterId); //…処理 } else if (MatterStatus.matSts_Complete.toString().equals(matterStatusCode)) { // 完了案件の場合 CplMatterNode cplMatterNode = new CplMatterNode(systemMatterId); //…処理 }
ここでは未完了/完了案件を対象としていますが、処理対象の案件を変えたい場合(過去案件も含めたい場合など)は、案件状態マネージャ (UserMatterStatus) のコンストラクタのパラメータ「searchLevel」を変更してください。