条件式の使い方
分析の各APIでは、条件式で集計対象を決定します。 ここでは、その条件式の使い方について紹介します。
条件式について
条件式とは、真(true)または偽(false)の結果を返す式であり、演算子とオペランド(条件式の判定対象となる値)から構成されます。
例:分析のAPIにてフィルタ条件に条件式を指定する(演算子「Eq」を使用)
"filterBy": {
"type": "Eq",
"left": {
"type": "field",
"name": "projectId"
},
"right": {
"type": "value",
"value": "4"
}
}
left と right がそれぞれ左オペランド・右オペランドです。
左オペランドでは「type」に「フィールド(field)」を指定します。さらに「name」に演算対象のフィールドの名前を指定します。 右オペランドでは「type」に「値 (value)」を指定します。さらに「value」に演算対象の値を指定します。
演算子
TimeTracker NX Web APIにおいて利用可能な演算子は以下のとおりです。
比較演算子
| 演算子 | 左オペランド | 右オペランド | 説明 |
|---|---|---|---|
| Eq | フィールド | 値 | Equal (true: 左右のオペランドが等しい) |
| Ne | Not Equal (true: 左右のオペランドが等しくない) | ||
| Lt | Less Than (true: 左オペランドが右オペランドより小さい) | ||
| Le | Less Than or Equal (true: 左オペランドが右オペランドより小さいもしくは等しい) | ||
| Gt | Greater Than (true: 左オペランドが右オペランドより大きい) | ||
| Ge | Greater Than or Equal (true: 左オペランドが右オペランドより大きいもしくは等しい) | ||
| Like | Like (true: 左オペランドが右オペランドを含む=部分一致する) | ||
| NotLike | NotLike (true: 左オペランドが右オペランドを含まない) | ||
| In | 値(カンマ区切りで複数指定可能) | In (true: 左オペランドが右オペランドのいずれかに等しい) | |
| NotIn | Not In (true: 左オペランドが右オペランドのいずれにも等しくない) | ||
| Bw | 値(カンマ区切りで複数指定可能) | In (true: 左オペランドが右オペランドの1番目の要素以上かつ2番目の要素以下の場合) | |
| NotBw | Not In (true: 左オペランドが右オペランドの1番目の要素より小さいまたは2番目の要素より大きい場合) | ||
| Sw | 値 | Start With (true: 左オペランドが右オペランドで始まる=前方一致する) | |
| NotSw | Not Start With (true: 左オペランドが右オペランドで始まらない) | ||
| Ew | End With (true: 左オペランドが右オペランドで終わる=後方一致する) | ||
| NotEw | Not End With true: 左オペランドが右オペランドで終わらない) |
Note
左右のオペランドを比較する際、データ型が一致しない場合は同じデータ型になるように変換を行います。一致するデータ型へのデータ変換が不可能な場合はエラーになります。
論理演算子
| 演算子 | オペランド | 説明 |
|---|---|---|
| And | Condition[] | true: すべての Condition が true (Condition の要素数が0の場合は true) |
| Or | Condition[] | true: いずれかの Condition が true (Condition の要素数が0の場合は false) |
条件式で使用可能なフィールド
分析APIの条件式において使用可能なフィールドは以下のとおりです。 「対象」列が「共通」のものは、工数分析・アイテム件数分析のいずれでも使用可能です。
| 対象 | 名前 | 説明 |
|---|---|---|
| 共通 | year | 年単位の日付 (YYYY-01-01) |
| month | 月単位の日付 (YYYY-MM-01) | |
| week | 週単位の日付 (YYYY-MM-DD) | |
| date | 日単位の日付 (YYYY-MM-DD) | |
| projectId | プロジェクトID | |
| projectName | プロジェクト名 | |
| folderId | フォルダのワークアイテムID | |
| folderName | フォルダ名 | |
| treePath | フォルダのツリーパス | |
| projectCategory1~50 | プロジェクトカテゴリ1~50 | |
| itemTypeId | アイテムタイプID | |
| itemTypeName | アイテムタイプ名 | |
| processCategoryId | 工程分類ID | |
| processCategoryName | 工程分類名 | |
| processCategoryGroupId | 工程分類グループID | |
| processCategoryGroupName | 工程分類グループ名 | |
| timeEntryCategoryId | 作業分類ID | |
| timeEntryCategoryName | 作業分類名 | |
| timeEntryCategoryGroupId | 作業分類グループID | |
| timeEntryCategoryGroupName | 作業分類グループ名 | |
| 工数分析 | userId | ユーザーID |
| userName | ユーザー名 | |
| organizationId | ユーザーの所属組織ID | |
| organizationName | ユーザーの所属組織名 | |
| アイテム件数分析 | leaderId | リーダーのユーザーID |
| leaderName | リーダーのユーザー名 | |
| organizationId | プロジェクトの組織ID | |
| organizationName | プロジェクトの組織名 | |
| statusTypeId | ステータスタイプID | |
| statusTypeName | ステータスタイプ名 | |
| statusTypeGroupId | ステータスタイプグループID | |
| statusTypeGroupName | ステータスタイプグループ名 |
Note
folderID, folderName: 指定フォルダとその配下のフォルダを対象に条件を判定します。