今回は Google ドライブに関する自動工程について説明します。

Google ドライブは、Google 社が提供するクラウドストレージサービスです。個人での利用のほか、G Suite を使用していれば複数人で共用するドライブ (チームドライブ) を作成・使用することもできます。また、API を使って各種操作を行うこともでき、今回紹介する自動工程もそれを用いています。

Google ドライブについて、詳しくは Google の公式ヘルプページをご覧ください。


各自動工程について

Google ドライブに関する自動工程には、最初から使用可能な「ファイルアップロード」「フォルダ作成」「ファイル削除」や、アドオンを追加することで使用可能な「フォルダ共有」「ファイル取得」などがあります。今回はそのうち、「ファイルアップロード」「フォルダ作成」「ファイル削除」「フォルダ共有」の4種を取り上げます。

まず、各工程について簡単に説明します。

Google ドライブ: ファイルアップロード

ファイルアップロード工程の設定画面

Google ドライブにファイルをアップロードします。アップロードするファイルはファイル型項目で指定します。ファイル型項目に複数のファイルをセットすることで、同時に複数のファイルをアップロードすることができます。アップロード先のフォルダはフォルダIDまたはパスで指定し、指定しない場合はアップロードするユーザのマイドライブのルートにアップロードします。また、アップロードしたファイルの ID・URL はデータ項目に保存できます。

Google ドライブ: フォルダ作成

フォルダ作成工程の設定画面

Google ドライブ上のフォルダを指定し、その中に新しいフォルダを作成します。作成したフォルダの IDとURL はデータ項目に保存できます。

Google ドライブ: ファイル削除

ファイル削除工程の設定画面

Google ドライブ上のファイルやフォルダを指定し、削除します。複数行文字型データ項目を指定すれば、複数のファイル・フォルダを一度に削除することも可能です。その場合は1行につき1つの ID を書くようにします。

Google ドライブ: 共有設定

ファイル共有アドオンの設定画面

Google ドライブ上のファイル/フォルダを指定し、そのファイル/フォルダに共有設定を行います。複数行文字型データ項目を指定すれば、複数のファイル・フォルダに対して一度に共有設定を行うことも可能です。「不特定多数が検索できるようにするか」「他者が編集できるようにするか」をそれぞれ選択できます。

上記3つとは違い、使用するにはアプリにアドオンファイルを追加する必要があります。アドオンファイルはこちらからダウンロードできます。アドオンファイルの追加についてはこちらをご覧ください。

 

いずれの自動工程も、チームドライブにも対応しています。ただし、「共有設定」はチームドライブではファイルのみの対応です。

なお、これらの自動工程を使用するには、対象となるファイル/フォルダがある Google アカウントを Questetra BPM Suite のアカウントと連携する必要があります。以下に示す手順で設定してください。


Google アカウント連携の設定

システムの設定

この設定は、システム管理権限を持つユーザで行ってください。
システム設定のページを開き、「Google 連携」を開きます。開いたページで、お使いの G Suiteドメインを入力します。

G Suiteドメインの入力画面

「保存」を押せば完了です。

これで、お使いの環境で、シングルサインオンなど Google との連携機能が使用可能になります。

アカウント設定画面に「Google 連携」の項目が現れ、アカウントの連携設定が可能になります。

アカウントの設定

まず、アカウント設定画面を開き、「Google 連携」をクリックします。

そして開いたページで、「Google ドライブ」の部分にあるボタンを確認します。そのボタンが「解除」であれば、そのアカウントは既に Google アカウントとの連携が完了しています。その場合、以降の手順は必要ありません。

ボタンが「連携設定」の場合、連携は未設定です。その場合、ボタンをクリックしてください。開いたページで、連携したい Google アカウントにログインし、続く画面で「許可」をクリックします。

Googleでの連携許可画面

これで、連携設定は完了です。Google 連携についてはこちらのページもご覧ください。


サンプルアプリ

これらの自動工程を使って作成したサンプルアプリがこちらです。

このアプリは「ファイルを社外の人へ送る」ためのものです。ファイルを Google ドライブに作成した専用のフォルダにアップロードしてそのフォルダを共有する、という方式になっています。フォルダの URL をメール等で社外の人に伝える前提になっています。また、フォルダ (と中に入っているファイル) は作成から1日後に削除されます。「メールで送るにはファイルサイズが大きい」「ファイルが複数ある」といった場合に使います。

データ項目は以下のようになっています。

データ項目 タイプ 必須 「ファイル添付」工程 「URL確認」工程 説明
件名 編集可 表示のみ プロセスの件名です。
作成したフォルダの ID 文字列型 (単一行) 非表示 非表示 「フォルダ作成」工程で作成したフォルダの ID を保存します。
作成したフォルダの URL 文字列型 (単一行) 非表示 表示のみ 「フォルダ作成」工程で作成したフォルダの URL を保存します。
アップロードするファイル ファイル型 編集可 表示のみ アップロードして共有するファイルを保存します。

まず、「ファイル添付」工程で共有するファイルを指定します。次の「フォルダを作成」工程 (「Google ドライブ: フォルダ作成」) で、共有用のフォルダを Google ドライブ上に作成します。

「Google ドライブ: フォルダ作成」の設定項目は以下のとおりです。

項目名 必須 説明
C1: Google ドライブ に接続するユーザ Google ドライブにどのユーザで接続するか指定します。指定するユーザは Google ドライブとの連携が設定されている必要があります。
I1: 生成するフォルダの親フォルダの ID どのフォルダの中に新しいフォルダを作成するか、ID を使って指定します。ID はフォルダの表示 URL の末尾に示されています (“https://drive.google.com/drive/u/0/folders/[id]”の[id]の部分です) 。空にした場合はマイドライブのルートに作成されます。今回は空にしておきます。
I2: 生成するフォルダの名称 作成されるフォルダの名前を指定します。今回は「共有#{processInstanceId}」としましょう。「#{processInstanceId}」の部分にはプロセスIDが入るため、このアプリで作った他のフォルダと重複することがなくなります。
O1: 生成したフォルダの ID を保存するデータ項目 生成したフォルダの ID の保存先となるデータ項目を指定します。今回は「作成したフォルダの ID」を指定します。
O2: 生成したフォルダの表示 URL を保存するデータ項目 生成したフォルダの URL の保存先となるデータ項目を指定します。今回は「作成したフォルダの URL」を指定します。

ID と URL の保存先に関しては必須項目ではありませんが、今回は必要なので設定します。今回は関係ありませんが、チームドライブ上のフォルダは共有できないので、注意してください。

次に、「ファイルをアップロード」工程 (「Google ドライブ: ファイルアップロード」 ) で指定したファイルを作成したフォルダにアップロードします。

「Google ドライブ: ファイルアップロード」の設定項目は以下のとおりです。

項目名 必須 説明
Google Drive へのファイルのアップロードを実行するユーザ Google ドライブにどのユーザでファイルをアップロードするか指定します。指定するユーザは Google ドライブとの連携が設定されている必要があります。
ファイルをアップロードするフォルダ どのフォルダにファイルをアップロードするか指定します。指定はフォルダの ID 、またはパスで可能ですが、チームドライブの場合は ID での指定のみとなります。空にした場合はマイドライブのルートにアップロードされます。今回は ID に設定し、EL 式を使ってデータ項目「作成したフォルダの ID」に保存されている ID を読み出します。
Google Drive にファイルをアップロードするファイル型データ項目 アップロードするファイルの入ったデータ項目を指定します。今回は「アップロードするファイル」を指定します。
ファイル ID を保存する文字型データ項目 アップロードしたファイルの ID の保存先となるデータ項目を指定します。今回は使用しません。
表示用 URL を保存する文字型データ項目 アップロードしたファイルの表示用 URL の保存先となるデータ項目を指定します。今回は使用しません。
ダウンロード用 URL を保存する文字型データ項目 アップロードしたファイルのダウンロード用 URL の保存先となるデータ項目を指定します。今回は使用しません。
エラー発生時にエラー内容を保存する文字型データ項目 エラーが発生したとき、そのエラーの内容の保存先となるデータ項目を指定します。今回は使用しません。

そして、「フォルダを共有」工程 (「Google ドライブ: 共有設定」) で作成したフォルダを共有します。

「Google ドライブ: 共有設定」の設定項目は以下のとおりです。

項目名 必須 説明
C1: Google ドライブ に接続するユーザ Google ドライブにどのユーザで接続するか指定します。指定するユーザは Google ドライブとの連携が設定されている必要があります。
I1: 共有するファイル・フォルダの ID 共有設定をするファイル・フォルダの ID が入ったデータ項目を指定します。今回は「作成したフォルダの ID」を指定します。
C2: 検索可能にするかどうか 共有されたファイル・フォルダを不特定多数の人間が検索できるようにするか設定します。できるようにする場合は「true」、できないようにする場合は「false」と入力します (それ以外を入力するとエラーとなります) 。今回は「false」とします。
C3: 編集可能にするかどうか 共有されたファイル・フォルダを他者が編集できるようにするか設定します。できるようにする場合は「true」、できないようにする場合は「false」と入力します (それ以外を入力するとエラーとなります) 。今回は「false」とします。

共有設定が完了したら、「URL 確認」工程に進みます。ここで、「作成したフォルダの URL」に入っている URL を確認して、先方に伝えましょう。伝える部分はアプリには入っていないので、メールなどで手動で行ってください。

確認したらタイマー中間イベントに進みます。タイマー中間イベントの設定項目は以下のとおりです。

項目名 説明
データで指定された日時 次に進む日時をデータ項目で指定します。今回は使いません。
式で指定された日時  次に進む日時を式で指定します。今回はこちらを選び、式は「processInstanceStartDatetime.addDays(1)」とします。

これで、プロセスを開始してから1日後まで待機させられます。先方には、この間にファイルを受け取ってもらいましょう。

1日経ったら、「フォルダを削除」工程 (「Google ドライブ: ファイル削除」) でフォルダを削除します。

「Google ドライブ: ファイル削除」の設定項目は以下のとおりです。

項目名 必須 説明
C1: Google Drive に接続するユーザ Google ドライブにどのユーザで接続するか指定します。指定するユーザは Google ドライブとの連携が設定されている必要があります。
I1: 削除するファイル・フォルダ ID が保存されている文字型データ項目 削除するファイル・フォルダの ID が入っているデータ項目を指定します。今回は「作成したフォルダの ID」を指定します。

フォルダの削除が完了すれば、全工程終了です。


今回は以上です。

“ワークフローから Google ドライブを活用する ~社外の人へファイルを送信する~” への2件のコメント

  1. ピンバック: サービスタスク(Google ドライブ: ファイルアップロード) – Questetra Support

  2. ピンバック: Questetra Developers Meeting レポート – Questetra Support

コメントは受け付けていません。