プロパティ
ワークフローオブジェクトでは、以下の内容を取得できます。各プロパティの詳細は後述をご参照ください。
基本プロパティ
プロパティ名 | 型 | 例 | 説明 |
---|---|---|---|
id | 文字列 |
"id": "1" |
申請ID IDがない場合、valueはNULLになります。 |
status | Object |
"status": { "name": "進行中", "type": "IN_PROGRESS" } |
申請のステータス nameの利用可能なvalueはユーザーの利用言語によって異なります。 typeの利用可能なvalueは次の通りです。
詳細は注意事項をご参照ください。 |
createdAt | 文字列 |
"createdAt": "2016-09-28T05:27:45Z"
|
申請の作成日時 形式はISO8601のUTCタイムゾーンです。 |
processingStepCode | 文字列 |
"processingStepCode": "$3" |
経路ステップのステップコード |
name | 文字列 |
"name": "有給休暇(2016/9/28)" |
申請フォーム名 形式は"申請フォーム名(表題)" です。 |
number | 文字列 |
"number": "aaa-1" |
申請番号、または決裁番号 決裁番号を設定している申請では、申請のステータスに応じて次の値が返されます。
|
isUrgent | 真偽値 |
"isUrgent": true |
優先度が指定されているかどうか
|
applicant | Object |
"applicant": { "id": "25", "code": "sato", "name": "佐藤 昇", "proxy": { //代理申請者の場合 "id": "30", //代理申請者のGaroonユーザーID "code": "sato2", //代理申請者のログイン名 "name": "佐藤 降" //代理申請者の表示名 } } |
申請者の情報
|
form | Object |
"form": { "id": "310", // 申請フォームID "name": "旅費/交通費精算(近郊)" //申請フォームの表示名 } |
申請フォームの情報
name プロパティは、 申請データの取得 API でのみ取得できます。 |
items | Object | Object |
項目データ 詳細はこちらをご参照ください |
steps | Object | Object |
ステップデータ 詳細はこちらをご参照ください |
availableOperations | Object |
"availableOperations": { "list": [ "SENT_BACK", "APPROVE", "REJECT" ], "sentBackTargets": [ "$applicant", "Step1", "$2" ] } |
次に実行可能な処理 詳細はこちらをご参照ください ※申請データの取得API では取得できません。 |
folders | 配列 | Object |
申請のフォルダ情報 詳細はこちらをご参照ください ※申請データの取得API では取得できません。 |
項目データ
- ログインユーザーが閲覧権限を持たない項目のvalueはreturnしません。
- 各項目の取得データは以下の形式になります。
"items": { "Item1": { // 項目コード "name": "Item 1", "type": "SINGLE_LINE_TEXT", "value": "" } }
- 項目コードを設定していないまたは項目が削除されているとき、 項目コードの部分は 「"$" + 閲覧権限を持たない項目を含めての項目連番数字」となります。
- または、システム管理画面の設定と同じになります。
- 取得データのプロパティは次のような形式になります。
プロパティ名 | 型 | 例 | 説明 |
---|---|---|---|
name | 文字列 |
"name": "Item 1" |
項目名 |
type | 文字列 |
"type": "SINGLE_LINE_TEXT" |
項目のタイプ |
value | フィールドによって異なります |
"value": "" |
項目の値 項目のタイプごとの値の詳細については、下記のテーブルを参照ください。 |
- フィールドタイプごとのvalueは、次のように表示されます。
項目 | type | 型 | 例 | 補足説明 |
---|---|---|---|---|
文字列(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" } ] |
ファイル毎の次の情報です。
|
日付 | DATE | 文字列 |
"value": "2016-08-11" |
YYYY-MM-DD形式です。すべてまたは一部が入力されていない場合はそれぞれ次のとおりになります。
|
日時 | DATETIME | Object |
"value": { "date": "2016-11-12", "time": "14:40" } |
dateの形式は日付項目と同様で、timeの形式はHH:MMです。 |
路線ナビ連携 | ROUTE_NAVI | Object |
"value": { "route": "foo - bar", "expense": "100" } |
ステップデータ
- 各項目の取得データは以下の形式になります。
"steps": { "Step1": { // ステップコード "id": 15, "name": "課長承認", "requirement": "承認(全員)", "isApprovalStep": 1, "processors": [ { "code": "matsuda", "name": "松田 かんな", "result": "Approved", "operatedAt": "2016-09-28T06:13:15Z", "comment": "確認しました。" }, { "code": "takahashi", "name": "高橋 健一", "result": "Approved", "operatedAt": "2016-09-28T06:13:15Z", "comment": "代理で確認しました。", "proxy": { "code": "yamada", "name": "山田 正一" } } ] } }
- ステップコードを設定していないまたはステップが削除されているとき、ステップコードの部分は 「"$" + 表示上のステップ連番数字」となります。
- または、システム管理画面の設定と同じになります。
- 取得データのプロパティは次のような形式になります。
フィールド | 型 | 例 | 説明 |
---|---|---|---|
id | 文字列 |
"id": "15" |
ステップのID |
name | 文字列 |
"name": "課長承認" |
ステップ名 |
requirement | 文字列 |
"requirement": "承認(全員)" |
ステップのタイプ 利用可能なvalueはユーザーの利用言語によって異なります。 |
isApprovalStep | 数値 |
"isApprovalStep": 1 |
|
processors | 配列 |
"processors": [ { "code": "takahashi", "name": "高橋 健一", "result": "Approved", "operatedAt": "2016-09-28T06:13:15Z", "comment": "代理で確認しました。", "proxy": { "code": "yamada", "name": "山田 正一" } } ] |
ステップの処理者に関するリストデータ 各処理者オブジェクト内には次のデータがあります。
"proxy": { //代理承認の場合 "id": "30", //代理申請者のGaroonユーザーID "code": "yamada", //代理申請者のログイン名 "name": "山田 正一" //代理申請者の表示名 } |
次に実行可能な処理
- 各項目の取得データは以下の形式になります。
"availableOperations": { "list": [ "SENT_BACK", "APPROVE", "REJECT" ], "sentBackTargets": [ "$applicant", "Step1", "$2" ] }
- 取得データのプロパティは次のような形式になります。
フィールド | 型 | 例 | 説明 |
---|---|---|---|
list | 配列 |
"list": [ "SENT_BACK", "APPROVE", "REJECT" ] |
ユーザーが次に実行可能な処理のリスト 利用可能なvalueは次のとおりです。
|
sentBackTargets | 配列 |
"sentBackTargets": [ "$applicant", "Step1", "$2" ] |
可能な差し戻し先のリスト valueは"$applicant"およびステップコードです。 申請者本人は"$applicant"です。 |
フォルダ情報
- 各項目の取得データは以下の形式になります。
"folders": [ { "id": "3", "type": "RECEIVED" }, { "id": "4", "type": "SENT" } ]
- 取得データのプロパティは次のような形式になります。
フィールド | 型 | 例 | 説明 |
---|---|---|---|
id | 文字列 |
"id": "3" |
フォルダID |
type | 文字列 |
"type": "RECEIVED" |
フォルダのタイプ 利用可能なvalueは次のとおりです。
|
注意事項
経路種別が「承認(全員)」に設定された申請のステータスと最終承認日時
最終承認者の全員が申請を承認した時点で、申請のステータスが「APPROVED」または「COMPLETED」に変わり、最終承認日時が記録されます。
最終承認者のいずれか1人が申請を却下した時点で、申請のステータスが「REJECTED」に変わり、最終承認日時が記録されます。
Garoon REST API の GET で requestオブジェクト(ワークフローデータ)を取得し、アクションが必要な人にSlackで通知を出しているのですが、ここで取得できる情報から、Garoonのワークフロー決裁画面のURLを構築することは可能でしょうか。
ドキュメントを見る限りワークフローの画面URLのパラメータ「fid」の値が取れないと思います。
例:https://[ドメイン]/g/workflow/view.csp?fid=8888&pid=9999
この fid 8888 の値が取れれば、URLが構築できるのでSlackにリンク付き通知を出せるのですが、、、
そもそも、このfidが何なのかもイマイチわかっていなのですが、fidの取得について教えていただければ幸いです。
ひらの 様
お世話になっております。cybozu developer network 事務局です。
ワークフローの申請画面でURLに表示される「fid」は、「受信一覧フォルダ」「送信一覧フォルダ」などのフォルダの ID です。
このフォルダID はユーザーごとに割り振られるものです。
※例えばユーザーAとユーザーBの「受信一覧フォルダ」は ID が異なります。
フォルダIDの取得は、JavaScript API の「garoon.workflow.request.get()」で取得可能ですが、REST APIで取得する方法はございません。
このため、恐れ入りますが今回のご要望のような状況でワークフローの申請画面のURLを自動生成することは難しいと存じます。
代替案として、「通知の未読一覧へ遷移する」としてはいかがでしょうか?
URLは以下の通りです。
https://{subdomain}.cybozu.com/g/notification/index.csp?read=&is_to_me=&module_id=grn.workflow&sp=0&sort=&reverse=
※{subdomain} をご自身のサブドメインへ置き換えてください。
ご回答ありがとうございます。
>代替案として、「通知の未読一覧へ遷移する」としてはいかがでしょうか?
ありがとうございます!これで実装しました。
なお、依然として「フォルダ」の概念がわかりませんが、この知識は当件と直接関係がありませんのでここでは控えます。
ありがとうございました。
processingStepCodeで取得できるステップコードについてですが、
2019/11/9までは処理者が承認した経路のステップコードが取得できていたと思うのですが、
2019/11/10以降、処理者が承認した後の経路のステップコードに仕様が変わりましたでしょうか?
またその場合、他に現在処理している経路のステップコードを取得する方法はありますでしょうか?
吉岡 徹雄 様
お世話になっております。cybozu developer network 運営事務局です。
吉岡様が取得しているステップコード(processingStepCode)ですが、
どのイベントにて取得しているステップコードになりますでしょうか。
processingStepCode を取得したイベントなど、 API を教えていただけると助かります。
お手数ですがご確認よろしくお願いいたします。
ワークフロー申請が承認された時のイベント(workflow.request.approve.submit.success)
になります。よろしくお願い致します。
吉岡 徹雄 様
お世話になっております。cybozu developer network 運営事務局です。
詳細について確認いただきありがとうございます。
ワークフロー申請が承認された時のイベント(workflow.request.approve.submit.success)で
取得できる event オブジェクト内の request オブジェクトで取得できるワークフローオブジェクトに関しては、
申請承認後のデータを保持しているため、processingStepCode も処理者が承認したあとの経路のステップコードが入っております。
画面遷移する前、すなわち現在処理している経路のステップコードを取得する場合は、
Garoon JavaScript API の 申請データの値を取得する garoon.workflow.request.get() を
使うと取得できます。
ご確認よろしくお願いいたします。
ご回答ありがとうございました。
お教えいただいた、garoon.workflow.request.get()にて取得できました。
宜しくお願い致します。
Nobuhisa Onozaki 様
お世話になっております。cybozu developer network 運営事務局です。
本コメント欄は記事に対するフィードバックをする場となっております。
記事の内容の発展や、直接的に関連がない「記事を参考にした技術的な質問」は、
お手数ですが cybozu developer コミュニティ のご利用をお願いします。
失礼しました。記事を削除します。