IM-Workflowの案件状態を判定する方法

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」を変更してください。