社内のファイル共有。。。イマドキであれば「クラウド型ストレージ」を活用しているだろう。(昔は「ファイルサーバ」ってのがありましたが。。。)
ただ「関連会社や代理店とのファイル共有」や「共同プロジェクトにおけるファイル共有」といった場合、相手が『社内』ではないので、色々とメンドウだ。もし「メール添付で共有する」となれば、催促するまで届かなかったり、関係ないファイルも一緒に届いてイラっとしたり、逆に自分自身も「欲しいと言われるまでは共有しなくてもイイか…」と躊躇してしまったりしてしまう。(そもそもメールプロトコルには、セキュリティ面での不安もある)
そんな時には「ユーザ数10億人」の Google アカウントを活用するのが良い。
「Google Drive」にプロジェクト用のフォルダを作って、そのフォルダの共有設定でチーム全員の「Google アカウント」を追加しておけばよいのだ。(「Google アカウントを持ってない人」が居ませんように・・・・)
以下はチーム内のワークフローで承認されたファイルが、自動的に「Google Drive」にアップロードされる仕組みだ。
もし『G Suite』(Google Apps)のユーザが居て「社外共有」が認められているのであれば、Questetra 標準の[サービスタスク(Googleドライブ)](M229)を配置すれば済むのだが、、、このケースでは「Google Drive」が、一般の gmail.com / googlemail.com アカウントで運用されることが想定されている。
[ファイル承認フロー]
この仕組みには Questetra 標準にはない自動工程が利用されている。(アドオン XML で追加されている)
そして、このワークフローを稼働させるには、幾つか事前の設定が必要となる。つまり、この「ファイルアップロード」という自動処理が「認可」されていなければならない。具体的には、オーナー自身が『Google API Manager』にて、必要な情報をプロジェクト登録して『Consumer Key』と『Consumer Secret』を取得し、その情報を Questetra 側の[OAuth2.0設定]に登録しなければならない。
<Google側の設定サンプル>
- Authorized redirect URIs (承認済みのリダイレクト URI): https://s.questetra.net/oauth2callback
- Name: Q2Drive
- Authorization Endpoint URL: https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force
- Token Endpoint URL: https://accounts.google.com/o/oauth2/token
- Scope: https://www.googleapis.com/auth/drive
- Consumer Key: (Google Developers Console で取得)
- Consumer Secret: (Google Developers Console で取得)
ちなみに、この例では「自動工程追加ファイル(アドオン XML)ダウンロード」に掲載されている自動工程をそのまま活用しているので、15分程度で末尾添付の Questetra ワークフローを設計できた。。。
しかし、もし、、、『自分で「オリジナルの自動工程」を実装したい!』となれば、それは簡単な話ではない。つまり、
- 認証や認可に関する知識
- リソースサーバ側の API 仕様
- クライアントとなる Questetra でのプログラミング知識
ちなみに Google Drive は、当初「フォルダの概念」が無かったこともあり、今日に至っても
- 複数のフォルダに所属できる
- ユニークなファイル名である必要がない
ここで活用されている「upload-googledrive-20161019-addonxml」においても、
- 『Upload URI』に対して[Simple upload](5 MB 制限)で POST してから、
- 『Metadata URI』に対してファイル名と親フォルダの PATCH を行う
もし「こんな自動工程が欲しいんだけど」と思ったら、一覧への掲載をリクエストしてみるのも良い。
▼通信部分のコード
var uri = "https://www.googleapis.com/upload/drive/v3/files?uploadType=media"; var response = httpClient.begin() .bearer( token ) .body( files.get(i) ) .post( uri ); accessLog += "---POST request--- " + response.getStatusCode() + "\n"; accessLog += response.getResponseAsString() + "\n"; var jsonObj = JSON.parse( response.getResponseAsString() ); var uri2 = "https://www.googleapis.com/drive/v3/files/"; uri2 += jsonObj.id; var myObj2 = {}; myObj2.name = files.get(i).getName() + ""; var response2 = httpClient.begin() .bearer( token ) .queryParam( "addParents", folderId ) .queryParam( "removeParents", "root" ) .body( JSON.stringify( myObj2 ), "application/json" ) .patch( uri2 ); accessLog += "---PATCH request--- " + response2.getStatusCode() + "\n"; accessLog += response2.getResponseAsString() + "\n";
[ファイル承認フロー:「2.承認」画面]
<データ項目一覧画面>
[雛形ダウンロード (無料)]
- 業務テンプレート:ファイル承認フロー
- アドオンXML: Google Drive アップロード
- 第504話:監査書類を Dropbox に自動保存! (2016-10-11)
- 第501話:予算の消費額がワカラン!?! (2016-09-20)
- 第493話:共有パスワードの利用を管理する(Sheets API v4) (2016-07-25)
- M416 自動工程: 業務プロセス定義で利用可能な自動工程を自作する (使い方)
- M415 自動工程: 業務プロセス定義で利用可能な自動工程を追加する (使い方)
- M229 自動工程: 業務ファイルがGoogleドライブにも自動保存されるように設定する (使い方)
- 業務フローの「自動化」とは何か? (Blog)
[英文記事 (English Entry) ]
0 件のコメント :
コメントを投稿