カテゴリー内の他の記事

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

フォローする

Index

requestオブジェクトのプロパティ

requestオブジェクトの取得データは以下のようなJSON形式になります。

プロパティ名 valueの例 説明
id 文字列 
"100"

申請ID

IDがない場合、valueはNULLになります。

status Object
"name": "進行中"
"type": "IN_PROGRESS"

申請のステータス

nameの利用可能なvalueはユーザーの利用言語によって異なります。

typeの利用可能なvalueは次の通りです。

  • UNPROCESSING
  • IN_PROGRESS 
  • SENT_BACK
  • APPROVED
  • REJECTED 
  • WITHDRAWN
  • CANCELLED
  • COMPLETED
createdAt 文字列
2016-09-28T05:27:45Z
  • 「YYYY-MM-DD」と「HH:MM:SS」の間の「T」は固定値です。 
  • 「HH:MM:SS」の後ろの「Z」は固定値で、UTCを表します。

申請の作成日時

形式はISO8601のUTCタイムゾーンです。

processingStepCode 文字列
"$3"
経路ステップのステップコード
name 文字列
"有給休暇(2016/9/28)"

申請フォーム名

形式は"申請フォーム名(表題)" です。
作成画面では、valueに""がセットされます。

number 文字列
"aaa-1"
申請番号
isUrgent 真偽値
true

優先度が指定されているかどうか


trueの場合: 至急
falseの場合: 指定なし

applicant Object
"id": "25",
"code": "sato", "name": "佐藤 昇",
"proxy": { //代理申請者の場合
"id": "30", //代理申請者のGaroonユーザーID "code": "sato2", //代理申請者のログイン名 "name": "佐藤 降"//代理申請者の表示名  }

申請者の情報

  • 代理申請者を使用しない場合"proxy"は表示されません。
  • idは申請者の最新のGaroonユーザーIDです。
    申請データの取得API でのみ取得できます。
  • codeは申請者の最新のログイン名です。
  • nameは申請者の最新の表示名です。
  • ユーザーが削除されている場合は以下のようになります。
    • id: 空文字
    • code: 空文字
    • name: 申請が作成された時点の表示名
  • ユーザーがInactiveまたはワークフローの使用が許可されていない場合は以下のようになります。
    • id: GaroonユーザーID
    • code: 最新のログイン名
    • name: 最新の表示名
form  Object
"id": "310", //申請フォームID
"name": "旅費/交通費精算(近郊)" //申請フォームの表示名

申請フォームの情報。

申請データの取得API でのみ取得できます。

items Object Object

項目データ

詳細はこちらをご参照ください

steps Object Object

ステップデータ

詳細はこちらをご参照ください

availableOperations Object
"list":["SENT_BACK", "APPROVE", "REJECT"],
"sentBackTargets": ["$applicant", "Step1", "$2"] 

次に実行可能な処理

詳細はこちらをご参照ください

申請データの取得API では取得できません。

folders 配列 Object

申請のフォルダ情報

詳細はこちらをご参照ください

申請データの取得API では取得できません。

項目データ

  • ログインユーザーが閲覧権限を持たない項目のvalueはreturnしません。
  • 各項目の取得データは以下の形式になります。(「項目コード」は「<>」で囲んでいますが、利用の際には不要です。)
"<項目コード>": {
  "name": /*項目名*/
  "type": /* type */,
  "value": /* value */
}
  • 項目コードを設定していないまたは項目が削除されているとき、 <項目コード>の部分は 「"$" + 閲覧権限を持たない項目を含めての項目連番数字」となります。
  • または、システム管理画面の設定と同じになります。

例: 以下の設定の場合

    • Item 1: 項目コード "Item1"
    • Item 2: 項目コードが空
    • Item 3: 項目コード "Item3"
    • Item 4: ログインユーザーが閲覧権限を持たない項目
    • Item 5: 削除された項目

項目データは次のように表示されます。

項目 type valueの例 補足説明
文字列(1行) SINGLE_LINE_TEXT 文字列
"テストだよー"
 
文字列(複数行) MULTI_LINE_TEXT 文字列
"Test data line 1 \nTest data line 2"
改行文字は「\n」です。
数値 NUMBER 文字列
"1234.20"
小数点は反映されません。
自動計算 CALC 文字列
"1234.30"
 
チェックボックス CHECK_BOX 真偽値
true
チェックボックスにチェックが入っている場合はtrue。そうでない場合はfalse。
ラジオボタン RADIO_BUTTON 文字列
"Option3"
 
メニュー DROP_DOWN 文字列
"Option3"
 
ファイル添付 FILE 配列
[
  {
    "id": "10",
    "contentType": "text/plain",
    "name": "testFile1.txt",
    "size": "23175"
  },
  {
   "id": "11",
    "contentType": "text/plain",
    "name": "testFile2.txt",
    "size": "23175"
  }
]

ファイル毎の次の情報です。

  • id
  • contentType
  • name
  • size

 

日付 DATE 文字列
"2016-08-11" 
"-08-11"
"--"
YYYY-MM-DD形式です。すべてまたは一部が入力されていない場合はそれぞれ次のとおりになります。
  • すべてが入力されていない場合:「--」 
  • 年が入力されていない場合 : 「-MM-DD」 
  • 月が入力されていない場合 :「YYYY--DD」 
  • 日が入力されていない場合 :「YYYY-MM-」
日時 DATETIME Object
{
    "date":"2016-11-12",
    "time":"14:40"
  }
dateの形式は日付項目と同様で、timeの形式はHH:MMです。
路線ナビ連携 ROUTE_NAVI Object
{ "route": "foo - bar",
 "expense": "100"
}
 

ステップデータ

  • ステップコードを設定していないまたはステップが削除されているとき、<ステップコード>の部分は 「"$" + 表示上のステップ連番数字」となります。
  • または、システム管理画面の設定と同じになります。
  • 各ステップの取得データは以下の形式になります。(「ステップコード」は「<>」で囲んでいますが、利用の際には不要です。)
{
    "<ステップコード>": {
        "id":   /* ステップデータのID */,
        "name": /* ステップ名 */,
        "requirement": /* ステップのタイプ */
        "isApprovalStep": /* 1: 承認ステップである ;  0 : 承認ステップでない */,
        "processors": [
        {
"id": /* 処理者のGaroonユーザーID */, "code": /* 処理者のログイン名 */, "name":  /* 処理者の表示名 */, "result":   /* 処理の結果 */, "operatedAt": /* 処理日時 */, "comment":  /* 処理者のコメント */ "proxy": {  // 代理承認の場合
  "id": /* 代理承認者のGaroonユーザーID */, "code": /* 代理承認者のログイン名 */, "name": /* 代理承認者の表示名 */ } }, {    //他のprocessorsについて同様のデータ }] } }
フィールド valueの例 説明
id 文字列
"15"
ステップのID
name 文字列
"Step1"
ステップ名
requirement 文字列
"承認 (全員)"

ステップのタイプ

利用可能なvalueはユーザーの利用言語によって異なります。

isApprovalStep 数値
1
  • 1 : 承認ステップである
  • 0 : 承認ステップでない
processors 配列  

ステップの処理者に関するリストデータ

各処理者オブジェクト内には次のデータがあります。

  • id: 処理者の最新のGaroonユーザーID
    申請データの取得API でのみ取得できます。
  • code: 処理者の最新のログイン名
  • name: 処理者の最新の表示名
  • result: 処理の結果。未処理の場合は画面に表示されません。利用可能なvalueはユーザーの利用言語によって異なります。
  • operatedAt: 処理日時。未処理の場合は画面に表示されません。
  • comment: 処理者のコメント。コメントがある場合画面に表示されます。
  • proxy: valueにid/code/nameがあります。代理承認でない場合は表示されません。
    ※idは申請データの取得API でのみ取得できます。
    proxyのvalueの例:
"proxy": { //代理承認の場合 (If there is proxy approver)
  "id": "30", //代理申請者のGaroonユーザーID "code": "yamada", //代理申請者のログイン名 "name": "山田 正一" //代理申請者の表示名 }

次に実行可能な処理

フィールド valueの例 説明
list 配列
"list":["SENT_BACK", "APPROVE", "REJECT"]

ユーザーが次に実行可能な処理のリスト

利用可能なvalueは次のとおりです。

  • SENT_BACK: 差し戻し
  • APPROVE: 承認
  • REJECT: 申請の却下
  • WITHDRAW: 申請の取り戻し 
  • CANCEL: 取り消し
  • CONFIRM: 回覧の確認
  • ACKNOWLEDGE: 完了した申請の確認
sentBackTargets 配列
 "sentBackTargets": ["$applicant", "Step1", "$2"]

可能な差し戻し先のリスト

valueは"$applicant"およびステップコードです。

申請者本人は"$applicant"です。

フォルダ情報

フィールド valueの例 説明
id 文字列 4 フォルダID
type 文字列  "SENT"

フォルダのタイプ

利用可能なvalueは次のとおりです。

  • UNPROCESSED: 最新一覧の未処理一覧
  • SENT: 送信一覧フォルダ
  • RECEIVED: 受信一覧フォルダ
  • DRAFT: 下書きフォルダ
  • FINISH: 最新一覧の完了一覧


Top

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

Avatar
ひらの

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の取得について教えていただければ幸いです。

Avatar
cybozu Development team

ひらの 様

お世話になっております。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} をご自身のサブドメインへ置き換えてください。

Avatar
ひらの

ご回答ありがとうございます。

>代替案として、「通知の未読一覧へ遷移する」としてはいかがでしょうか?

ありがとうございます!これで実装しました。

なお、依然として「フォルダ」の概念がわかりませんが、この知識は当件と直接関係がありませんのでここでは控えます。

ありがとうございました。

ログインしてコメントを残してください。