第550話:スプレッドシート記入という業務の自動化

2017年8月28日

業務:週次売上報告

各店長には「一週間分の売上」を週次報告してもらっている。

確かに、メールやワークフローを使い、
  1. 一人一人の『店長』が報告し、
  2. 本部の『マネージャ』が確認する
というシンプルな「売上報告プロセス」を回すのも悪くない。しかし各店長は『本部マネージャの顔色』だけを見てシゴトしているような気がする。


たとえば、もっと「他店の動向データに触れる機会」を作っても良いのではなかろうか?

もし『Google Spreadsheets』であれば、全店長が同じドキュメントを編集できる(※50人まで)ワケだし…。 副産物的な話として、『本部マネージャ』の「集計する」という工程が省力化されるハズだ。「入力ミス」についても、他店とデータ比較されることで店長自身が気づくかもしれない。あるいは店長同士で「入力ミス」を指摘し合うかもしれない! (更には店舗間のコミュニケーションも活発になり、生産性向上に…悶々)

課題:新しい SpreadSheet の準備がメンドウ

しかし、そうなると誰かが「報告用の Spreadsheets」を毎週準備する必要がある。

本部の『マネージャ』達には無理だ…。彼らは他人には厳しく、自分にはアマイ。たとえば「経費精算」など、今まで締切日が守られたタメシがない…。う~む「毎週キッチリと、新しいファイルを準備して全店長にアナウンスする」という第一工程がネックだなぁ。

[週次売上報告プロセス]


解決:新しい SpreadSheet の自動生成

先頭を「タイマー開始イベント」に置き換えれば、ワークフローの自動開始が実現できます。

ここに紹介した業務プロセス定義は、毎週日曜日の朝6時30分に自動的にワークフローが開始されます。(「テンプレートSheet」「保存先フォルダ」「ファイル名」といった値も自動セットされます)。そして下流には、『Sheets Copy』という自動処理工程や、『店長通知』というメール送信イベントが続きます。多くの場合、無人で新しいファイルが準備され、無人で全店長へのアナウンスが行われるでしょう。(新ファイルへのアクセスURLが自動的に通知されます)

なお、自動工程『Sheets Copy』では、Google Drive にあるファイル(テンプレートSheet)が参照され、週次売上報告用のフォルダに新しいスプレッドシートが自動的に保存されます。人間は一切関与しません。

※ 途中に『1.メール文編集』というヒューマン工程がありますが、この工程は「3時間放置」で自動的に下流工程に流れていく仕組みです。もし何らかの連絡事項があれば、この工程で「通知メール文」を加筆編集します。

考察:業務の自動化の難易度

この業務プロセスにある『Sheets Copy』という自動工程は、Questetra の拡張機能(サービス工程アドオン)です。

※ あらかじめサービス工程の定義ファイル「Google Drive ファイルコピー」(Addon-XML)をインポートしておきます

業務プロセスを設計する際は、「通信許可設定」と「Team Drive アクセスの有無」をセットします。また「オリジナルファイル」「コピー先フォルダ」「ファイル名」が格納されるデータ項目を指定します。OAuth2 を使ったセキュア通信部分が、やや難解かも知れませんが、その設定にプログラミング知識は必要なく、誰でも自動化環境を構築することができます。

=OAuth2.0 通信許可設定=

1. Google Developers Console 設定
ダッシュボードにアクセスし『Google Drive API』を有効にし、『クライアント ID』と『クライアント シークレット』を取得します。
  • Name: (任意 e.g. "q2drive")
  • アプリケーションの種類: ウェブアプリケーション
  • 承認済みの JavaScript 生成元: (設定する必要はありません)
  • 承認済みのリダイレクト URI: https://s.questetra.net/oauth2callback
2. Questetra ワークフローアプリの通信設定
[OAuth 2.0 Setting]を設定し、リフレッシュトークンを取得します。
  • Name: (任意)
  • Authorization Endpoint URL: https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force (Google標準)
  • Token Endpoint URL: https://accounts.google.com/o/oauth2/token (Google標準)
  • Scope: https://www.googleapis.com/auth/drive
  • Client ID: (Google Developers Console で取得したもの)
  • Consumer Secret: (Google Developers Console で取得したもの)

なお「サービス工程アドオン」は自作することも可能です。(この場合はプログラミング知識が必要です:M416

この例では「Drive API v3」(Filesリソース)へのリクエスト通信(OAuth2通信)によって「ファイルの複製」が自動化されています。この定義ファイルを改編すれば、複数の親フォルダを指定できる自動工程に強化したり、あるいは更に Google Calendar、Salesforce、Dropbox といったサービスをコントロールする自動工程を作ったりすることも可能です。


<OAuth2通信部分のサーバーサイドJavaScript(抜粋)>
// preparing for API Request
var apiRequest = httpClient.begin(); // HttpRequestWrapper

// preparing for API Request (OAuth2 Access Token)
var token = httpClient.getOAuth2Token( oauth2 );
apiRequest = apiRequest.bearer( token );

// preparing for API Request (Path parameters)
var apiUri = "https://www.googleapis.com/drive/v3/files/" + fileId + "/copy";

// preparing for API Request (Query parameters)
if( supportsTeamDrives === "true" ){
  apiRequest = apiRequest.queryParam( "supportsTeamDrives", true );
} // API default 'false'

// preparing for API Request (JSON Body)
var requestObj = {};
  requestObj.parents = [];
  requestObj.parents[0] = parent;
  requestObj.name = name;
apiRequest = apiRequest.body( JSON.stringify( requestObj ), "application/json" );

// POST Request to the API
var response = apiRequest.post( apiUri ); // HttpResponseWrapper
var statusCode = response.getStatusCode() + "";

[週次売上報告プロセス:「1.メール文編集」画面]

<データ項目一覧画面>


[雛形ダウンロード (無料)]
<類似プロセス>
≪関連記事≫

[英文記事 (English Entry) ]

0 件のコメント :

コメントを投稿