2018年2月20日火曜日

Gluegent Flow 活用例:入力フォーム値によって自動処理の内容を切り替えるには?

クラウド型ワークフローであるGluegent FlowはG Suite(旧Google Apps)やOffice 365と連携し、クラウド上で様々なワークフローを実現できるサービスです。 Gluegent Flowには申請・承認といったユーザによる操作時に予め決めた処理内容を自動実行する「自動処理機能」を兼ね揃えています。
G Suite版ではこの自動処理機能を使い、決裁時に申請内容をスプレッドシートに出力したり、入力フォームイメージをGoogleドキュメントとしてGoogle Driveに保存することができ、ワークフローデータの二次利用先としてG Suiteを有効活用できます。
通常、自動処理は処理を定義した順序に従って上から順番に実行するものですが、場合によっては入力フォームの値によって自動処理の処理順序を変えたいケースも出てくるかと思います(例えば、報告書の保存先を所属部署毎のフォルダに振分けたい等) 

今回は、Gluegent Flowの自動処理において、入力フォーム値によって処理内容を切り替える方法と、そのメリットについてご説明します。

Gluegent Flowの自動処理を切り替える方法

入力フォーム値によって自動処理内容を切り替えるためには、その1つである「次を飛ばす」自動処理を利用します。この自動処理を活用されている方はあまりいらっしゃらないでしょう。しかし、この「次を飛ばす」自動処理を活用することで自動処理の流れに「分岐」を導入することが可能となります。
「次を飛ばす」自動処理は、「指定した条件に合致した場合、後続する自動処理タスクを指定した数だけスキップする」ことができます。つまり、指定した条件に合致した場合、後続の自動処理を処理しないという振る舞いができるのですが、この振る舞いを利用することで自動処理の流れに「分岐」を導入することができるようになります。

今回は日報の上長確認完了後、Google Driveの部署フォルダ毎にGoogleドキュメントとして保存する自動処理を行うサンプルを用いて説明していきます。

報告書をGoogle Driveに出力・保存するためには、以下のような自動処理が必要です。
  1. Google ドキュメントとして出力する(ドキュメント作成自動処理)
  2. 上記で出力したファイルを指定したフォルダへ移動する(Google Docsの移動自動処理)
問題となるのは上記2で、この処理を行う際に報告者の所属部署に応じて移動先フォルダを切り替えるようにしなければなりません。 しかし「Google Docsの移動自動処理」には移動先フォルダを切り替えることができるような設定はありません。 そこで、「次を飛ばす」自動処理の登場です。
次を飛ばす自動処理で以下のような設定を行います。

  • スキップする条件:入力フォームの「報告者所属部署」の値が「営業部」と異なる場合
    • 入力フォーム値を表現するため、${報告者所属部署} のようにプレースホルダ形式で記述します
  • スキップ数:1
    • 後続のスキップする自動処理の定義数を指定します
上記の設定を行うと、「報告者所属部署」が営業部の場合は、スキップする条件に合致しないため、後続の自動処理を実行します。一方、営業部でない場合は条件に合致するため、後続の自動処理を「スキップ数」分だけ飛ばします。つまり、「次を飛ばす」自動処理の後続に条件に応じて実行させたい自動処理を定義し、条件に合わない場合は処理しない、ということができるようになります。 これを踏まえ、複数の部署に対する振分け処理を定義したサンプルが以下です。

  1. Google ドキュメントとして出力する(ドキュメント作成自動処理)
  2. フォーム「報告者所属部署」=営業部の場合の処理
  3. 上記1で出力したドキュメントをフォルダ「営業部」へ移動する(Google Docsの移動自動処理)
  4. フォーム「報告者所属部署」=開発部の場合の処理
  5. 上記1で出力したドキュメントをフォルダ「開発部」へ移動する(Google Docsの移動自動処理)
  6. ※部署の数だけ上記の処理を定義する※
上記の設定により、入力フォーム値に応じて条件分岐による自動処理が可能となります。

次を飛ばす自動処理を利用するメリット

Gluegent Flowの「次を飛ばす」自動処理を利用することで以下のメリットを享受できます。
  • 条件分岐の概念が利用できるため、自動処理の実行可否が可能となる
    • 上記の例のように部門毎の振分けに限らず、ある条件下の場合のみ自動処理を実行する、ということが可能となります。
  • 自動処理の出力先に応じて申請モデルを分けて定義する必要がなく、ひとつに纏められる
    • 実行している処理内容は同じなのに、出力先が異なるため、申請モデルまたは実行ボタンの定義を分けている方もいらっしゃるかと思いますが、上記の定義を利用することで同一の申請モデル・実行ボタンにまとめることができます。
上記の通り、Gluegent Flowの自動処理をより強力にすることができますが、あまりに複雑な定義を行うと、かえって複雑性が増してしまい、メンテナンス性が落ちてしまうリスクがあります。ご注意下さい。


以上、Gluegent Flowの「次を飛ばす」自動処理を利用することにより、自動処理に対して条件分岐が利用できる方法をご紹介しました。 既にGluegent Flowで自動処理をご利用いただいている方は是非参考にしてみてください。