ワークフローオブジェクト

目次

ワークフローオブジェクト

ワークフローオブジェクトは、Garoon REST APIとGaroon JavaScript APIを使って取得できる、ワークフローの申請情報です。

JavaScript APIでは、ワークフローオブジェクトの一部のプロパティだけを取得できます。
詳細は次のページを参照してください。
ワークフローのイベント

ワークフローオブジェクトの例を表示する
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
{
  "request": {
    "id": "1",
    "status": {
      "name": "進行中",
      "type": "IN_PROGRESS"
    },
    "createdAt": "2016-09-28T05:27:45Z",
    "processingStepCode": "$3",
    "name": "有給休暇(2016/9/28)",
    "number": "201609-1",
    "isUrgent": true,
    "applicant": {
      "id": "25", // REST APIのみ
      "code": "sato-noboru",
      "name": "Noboru SATO",
      "proxy": {
        "id": "30",
        "code": "takashi-suzuki",
        "name": "Takashi SUZUKI"
      }
    },
    "form": {
      "id": "310",
      "name": "旅費/交通費精算(近郊)" // REST APIのみ
    },
    "items": {
      "Item1": {
        "name": "Item1 name",
        "type": "SINGLE_LINE_TEXT",
        "value": "foo"
      },
      "Item2": {
        "name": "Item2 name",
        "type": "MULTI_LINE_TEXT",
        "value": "foo"
      },
      "Item3": {
        "name": "Item3 name",
        "type": "DROP_DOWN",
        "value": "foo"
      },
      "Item4": {
        "name": "Item4 name",
        "type": "RADIO_BUTTON",
        "value": "foo"
      },
      "Item5": {
        "name": "Item5 name",
        "type": "CHECK_BOX",
        "value": true
      },
      "Item6": {
        "name": "Item6 name",
        "type": "NUMBER",
        "value": "100"
      },
      "Item7": {
        "name": "Item7 name",
        "type": "CALC",
        "value": "100"
      },
      "Item8": {
        "name": "Item8 name",
        "type": "DATE",
        "value": "2016-09-28"
      },
      "Item9": {
        "name": "Item9 name",
        "type": "DATETIME",
        "value": {
          "date": "2016-11-12",
          "time": "14:40"
        }
      },
      "Item10": {
        "name": "Item10 name",
        "type": "FILE",
        "value": [
          {
            "id": "10",
            "contentType": "text/plain",
            "name": "foo.txt",
            "size": "100"
          },
          {
            "id": "11",
            "contentType": "text/plain",
            "name": "bar.txt",
            "size": "100"
          }
        ]
      },
      "Item11": {
        "name": "Item11 name",
        "type": "ROUTE_NAVI",
        "value": {
          "route": "foo - bar",
          "expense": "100"
        }
      }
    },
    "steps": {
      "Step1": {
        "id": 15,
        "name": "課長承認",
        "requirement": "承認(全員)",
        "isApprovalStep": 1,
        "processors": [
          {
            "code": "matsuda-kanna",
            "name": "Kanna MATSUDA",
            "result": "Approved",
            "operatedAt": "2016-09-28T06:13:15Z",
            "comment": "確認しました。"
          },
          {
            "code": "takahashi-kenichi",
            "name": "Kenichi TAKAHASHI",
            "result": "Approved",
            "operatedAt": "2016-09-28T06:13:15Z",
            "comment": "代理で確認しました。",
            "proxy": {
              "code": "yamada-masakazu",
              "name": "Masakazu YAMADA"
            }
          }
        ]
      },
      "Step2": {
        "id": "16",
        "name": "部長承認",
        "requirement": "承認(全員)",
        "isApprovalStep": 1,
        "processors": [
          {
            "code": "suzuki-takamitsu",
            "name": "Takamitsu SUZUKI"
          },
          {
            "code": "ito-misaki",
            "name": "Misaki ITO"
          }
        ]
      },
      "availableOperations": {
        // JavaScript APIのみ
        "list": ["SENT_BACK", "APPROVE", "REJECT"],
        "sentBackTargets": ["$applicant", "Step1", "$2"]
      },
      "folders": [
        {
          "id": "3",
          "type": "RECEIVED"
        },
        {
          "id": "4",
          "type": "SENT"
        }
      ]
    }
  }
}

基本プロパティ

プロパティ名 説明
id 文字列
"id": "1"
申請ID
status オブジェクト
"status": {
"name": "進行中",
"type": "IN_PROGRESS"
}
申請のステータス
status.nameの値は、ユーザーの利用言語によって異なります。
status.typeの値は、次のとおりです。
  • UNPROCESSING:申請後、処理前
  • IN_PROGRESS:承認後、最終承認前
  • REJECTED:却下
  • WITHDRAWN:取り戻し後、申請前
  • SENT_BACK:差し戻し後、申請前
  • CANCELLED:差し戻し後、取り消し
  • APPROVED:最終承認後、未回覧者あり
  • COMPLETED:最終承認後、未回覧者なし
経路種別が「承認(全員)」に設定された申請の場合のステータスは 注意事項 を参照してください。
createdAt 文字列
"createdAt": "2016-09-28T05:27:45Z"
申請の作成日時
形式はISO8601のUTCタイムゾーンです。
「YYYY-MM-DD」と「HH:MM:SS」の間の「T」は固定値です。
「HH:MM:SS」の後ろの「Z」は固定値で、UTCを表します。
processingStepCode 文字列
"processingStepCode": "$3"
経路ステップのステップコード
name 文字列
"name": "有給休暇(2016/9/28)"
申請フォーム名
形式は「申請フォーム名(標題)」です。
作成画面では、空文字がセットされます。
number 文字列
"number": "201609-1"
申請番号、または 決裁番号を設定( クラウド版 (External link) パッケージ版 (External link) ) している申請では、申請のステータスに応じて次の値が返されます。
  • 「APPROVED」または「COMPLETED」のとき:決裁番号
  • それ以外のステータスのとき:申請番号
isUrgent 真偽値
"isUrgent": true
優先度が指定されているかどうか
  • true:至急
  • false:指定なし
applicant オブジェクト
"applicant": {
"id": "25",
"code": "sato-noboru",
"name": "Noboru SATO",
"proxy": { //代理申請者の場合
"id": "30", //代理申請者のGaroonユーザーID
"code": "takashi-suzuki", //代理申請者のログイン名
"name": "Takashi SUZUKI" //代理申請者の表示名
}
}
申請者の情報
代理申請者を使用しない場合、proxyは返りません。
  • applicant.idは、取得した時点での申請者のGaroonユーザーIDです。
    申請データを取得するAPI でのみ取得できます。
  • applicant.codeは、取得した時点での申請者のログイン名です。
    パッケージ版Garoonの場合、ログイン名を公開する設定が必要です。
    詳細は ユーザー情報の項目を変更する (External link) を参照してください。
  • applicant.nameは、取得した時点での申請者の表示名です。
  • ユーザーが削除されている場合は、次の値が返ります。
    • applicant.id:空文字
    • applicant.code:空文字
    • applicant.name:申請が作成された時点の表示名
  • ユーザーがInactiveまたはワークフローの使用が許可されていない場合には、次の値が返ります。
    • applicant.id:GaroonユーザーID
    • applicant.code:取得した時点でのログイン名
    • applicant.name:取得した時点での表示名
form オブジェクト
"form": {
"id": "310", // 申請フォームID
"name": "旅費/交通費精算(近郊)" / /申請フォームの表示名
}
申請フォームの情報
次のAPIで取得できます。ワークフローの各イベントでは、form.nameを取得できません。
items オブジェクト
"items": {
"Item1": { // 項目コード
"name": "Item 1",
"type": "SINGLE_LINE_TEXT",
"value": ""
}
}
項目データ
詳細は 項目データに関するプロパティ を参照してください。
steps オブジェクト
"steps": {
"Step1": { // ステップコード
"id": 15,
"name": "課長承認",
"requirement": "承認(全員)",
"isApprovalStep": 1,
"processors": [
{
"code": "matsuda-kanna",
"name": "Kanna MATSUDA",
"result": "Approved",
"operatedAt": "2016-09-28T06:13:15Z",
"comment": "確認しました。"
},
{
"code": "takahashi-kenichi",
"name": "Kenichi TAKAHASHI",
"result": "Approved",
"operatedAt": "2016-09-28T06:13:15Z",
"comment": "代理で確認しました。",
"proxy": {
"code": "yamada-masakazu",
"name": "Masakazu YAMADA"
}
}
]
}
}
ステップデータ
詳細は ステップデータに関するプロパティ を参照してください。
availableOperations オブジェクト
"availableOperations": {
"list": [
"SENT_BACK",
"APPROVE",
"REJECT"
],
"sentBackTargets": [
"$applicant",
"Step1",
"$2"
]
}
次に実行可能な処理
詳細は 次に実行可能な処理に関するプロパティ を参照してください。
申請データを取得するAPI では取得できません。
folders 配列
"folders": [
{
"id": "3",
"type": "RECEIVED"
},
{
"id": "4",
"type": "SENT"
}
]
申請のフォルダー情報
詳細は 申請のフォルダ情報に関するプロパティ を参照してください。
申請データを取得するAPI では取得できません。

項目データに関するプロパティ

  • APIを実行したユーザーに閲覧権限のない項目では、その項目のプロパティは返りません。
  • 項目コードを設定していない、または項目が削除されている場合には、項目コードは次のいずれかの値になります。
    • 「$」と、閲覧権限のない項目を含めて項目に連番で振られる数字を結合した値
    • システム管理画面の設定と同じ。
プロパティ名 説明
items オブジェクト
"items": {
"Item1": { // 項目コード
"name": "Item 1",
"type": "SINGLE_LINE_TEXT",
"value": ""
}
}
項目データ
items.項目コード.name 文字列 項目名
items.項目コード.type 文字列 項目のタイプ
items.項目コード.value フィールドの種類による 項目の値
項目のタイプごとの値の詳細は、別表を参照してください。

フィールドの種類ごとのitems.項目コード.valueの値は、次のとおりです。

項目 フィールドの種類 補足
文字列(1行) SINGLE_LINE_TEXT 文字列
"value": "テストです"
文字列(複数行) MULTI_LINE_TEXT 文字列
"value": "Test data line 1 \nTest data line 2"
改行文字は「\n」です。
数値 NUMBER 文字列
"value": "1234.20"
小数点は反映されません。
自動計算 CALC 文字列
"value": "1234.30"
チェックボックス CHECK_BOX 真偽値
"value": true
  • true:チェックボックスが選択されている
  • false:チェックボックスが選択されていない
ラジオボタン RADIO_BUTTON 文字列
"value": "Option3"
メニュー DROP_DOWN 文字列
"value": "Option3"
ファイル添付 FILE 配列
"value": [
{
"id": "10",
"contentType": "text/plain",
"name": "testFile1.txt",
"size": "23175"
},
{
"id": "11",
"contentType": "text/plain",
"name": "testFile2.txt",
"size": "23175"
}
]
  • id:添付ファイルID
  • contentType:コンテントタイプ
  • name:ファイル名
  • size:ファイルサイズ
日付 DATE 文字列
"value": "2023-06-20"
"value": "--"
"value": "-06-20"
"value": "2023--20"
"value": "2023-06-"
"value": "2023--"
"value": "-06-"
"value": "--20"
YYYY-MM-DD形式です。
すべてまたは一部が入力されていない場合は、次の値が返ります。
  • すべてが入力されていない場合:「--」
  • 年が入力されていない場合 : 「-MM-DD」
  • 月が入力されていない場合 :「YYYY--DD」
  • 日が入力されていない場合 :「YYYY-MM-」
  • 年のみが入力された場合 : 「YYYY--」
  • 月のみが入力された場合 : 「-MM-」
  • 日のみが入力された場合 : 「--DD」
日時 DATETIME オブジェクト
"value": {
"date": "2016-11-12",
"time": "14:40"
}
dateの形式は、YYYY-MM-DD形式で、timeの形式はHH:MMです。
路線ナビ連携 ROUTE_NAVI オブジェクト
"value": {
"route": "foo - bar",
"expense": "100"
}

ステップデータに関するプロパティ

  • ステップコードを設定していない、または項目が削除されている場合には、ステップコードは次のいずれかの値になります。
    • 「$」と、表示されるステップに連番で振られる数字を結合した値
    • システム管理画面の設定と同じ。
フィールド 説明
steps オブジェクト
"steps": {
"Step1": { // ステップコード
"id": 15,
"name": "課長承認",
"requirement": "承認(全員)",
"isApprovalStep": 1,
"processors": [
{
"code": "matsuda-kanna",
"name": "Kanna MATSUDA",
"result": "Approved",
"operatedAt": "2016-09-28T06:13:15Z",
"comment": "確認しました。"
},
{
"code": "takahashi-kenichi",
"name": "Kenichi TAKAHASHI",
"result": "Approved",
"operatedAt": "2016-09-28T06:13:15Z",
"comment": "代理で確認しました。",
"proxy": {
"code": "yamada-masakazu",
"name": "Masakazu YAMADA"
}
}
]
}
}
ステップデータ
steps.ステップコード.id 文字列 ステップID
steps.ステップコード.name 文字列 ステップ名
steps.ステップコード.requirement 文字列 ステップのタイプ
利用可能な値はユーザーの利用言語によって異なります。
steps.ステップコード.isApprovalStep 数値
  • 1: 承認ステップである
  • 0: 承認ステップでない
steps.ステップコード.processors 配列 そのステップにおける処理者の一覽
  • processors[].id:取得した時点での処理者のGaroonユーザーID
    申請データを取得するAPI でのみ取得できます。
  • processors[].code:取得した時点での処理者のログイン名
    パッケージ版Garoonの場合、ログイン名を公開する設定が必要です。
    詳細は ユーザー情報の項目を変更する (External link) を参照してください。
  • processors[].name:取得した時点での処理者の表示名
  • processors[].result:処理の結果
    未処理の場合は、このプロパティは返りません。利用可能な値は、ユーザーの利用言語によって異なります。
  • processors[].operatedAt: 処理日時
    未処理の場合は、このプロパティは返りません。
  • processors[].comment:処理者のコメント
    コメントがない場合、このプロパティは返りません。
    コメントに含まれる承認日時や差し戻し日時の形式は、APIを実行するユーザーが設定した、日時の表示形式の設定の「日付の長い形式」と同じです。
    コメントに含まれる改行コードはエスケープされません。
steps.ステップコード.processors[].proxy オブジェクト
"proxy": {
"id": "30",
"code": "yamada-masakazu",
"name": "Masakazu YAMADA"
}
代理の申請者の情報
代理申請でない場合は、このプロパティは返りません。
  • processors[].proxy.id:代理申請者のGaroonユーザーID
    申請データを取得するAPI でのみ取得できます。
  • processors[].proxy.code:代理申請者のログイン名
    パッケージ版Garoonの場合、ログイン名を公開する設定が必要です。
    詳細は ユーザー情報の項目を変更する (External link) を参照してください。
  • processors[].proxy.name:代理申請者の表示名

次に実行可能な処理に関するプロパティ

フィールド 説明
availableOperations オブジェクト
"availableOperations": {
"list": [
"SENT_BACK",
"APPROVE",
"REJECT"
],
"sentBackTargets": [
"$applicant",
"Step1",
"$2"
]
}
次に実行可能な処理に関するプロパティ
availableOperations.list 配列(文字列) ユーザーが次に実行可能な処理のリスト
利用可能な値は次のとおりです。
  • SENT_BACK:差し戻し
  • APPROVE:承認
  • REJECT:申請の却下
  • WITHDRAW:申請の取り戻し
  • CANCEL:取り消し
  • CONFIRM:回覧の確認
  • ACKNOWLEDGE:完了した申請の確認
availableOperations.sentBackTargets 配列(文字列) 可能な差し戻し先の一覧
  • $applicant:申請者本人
  • ステップコード

フォルダー情報に関するプロパティ

フィールド 説明
folders 配列
"folders": [
{
"id": "3",
"type": "RECEIVED"
},
{
"id": "4",
"type": "SENT"
}
]
フォルダー情報
folders[].id 文字列 フォルダーID
folders[].type 文字列 フォルダーのタイプ
  • UNPROCESSED:最新一覧の未処理一覧
  • SENT:送信一覧フォルダー
  • RECEIVED:受信一覧フォルダー
  • DRAFT:下書きフォルダー
  • FINISH:最新一覧の完了一覧

注意事項

経路種別が「承認(全員)」に設定された申請のステータスと最終承認日時

最終承認者の全員が申請を承認した時点で、申請のステータスが「APPROVED」または「COMPLETED」に変わり、最終承認日時が記録されます。

最終承認者のいずれか1人が申請を却下した時点で、申請のステータスが「REJECTED」に変わり、最終承認日時が記録されます。