今回は Google スプレッドシートに関する自動工程について説明します。

Google スプレッドシートとは、Google 社が提供するオンラインの表計算ソフトです。Google のアカウントを持っていれば誰でも無料で利用できます。また、Google Workspace にて API を有効にしていれば、外部からアクセスして各種操作ができます。今回紹介する自動工程も API を用いています。

各自動工程について

Google スプレッドシートに関する自動工程で最初から使用可能なものには「ファイル作成」「シート追加」「シートコピー」「行追加」「行追加 (テーブル型データ)」「選択肢データの一括取得」「行取得」「行更新」があります。今回はそのうち、「行追加 (テーブル型データ)」「行取得」の2種を取り上げます。

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

Google スプレッドシート: 行追加 (テーブル型データ)

行追加 (テーブル型データ)設定画面

指定された Google スプレッドシートのシート末尾にテーブル型データ項目の値を追記します。対象とするスプレッドシートの列にテーブル型項目のサブ項目に指定されているフィールド名を指定します。

Google スプレッドシート: 行取得

行取得設定画面

Google スプレッドシートから指定された行のデータを取得します。行の指定には文字型データ項目(単一行)を用意し対象となる行番号を入力します。スプレッドシートの各列の入力値はそれぞれに文字型データ項目(単一行)を用意し個別に保存します。


サンプルアプリ

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

このアプリは「売上日報(テーブル型データ項目)」に入力された内容をスプレッドシートに追記して、追記後の「累計」の値を取得します。テスト用のデータを入力して動作を確認できます。「立替経費申請」や「出張申請」などテーブル型データ項目を利用しているアプリにこれらの自動工程を追加すると、個別のプロセスからテーブルのデータをスプレッドシートに集約できるので、予算の消費を社員別や部署毎など色々な集計を自動で行うことができます。

スプレッドシートを準備する

使用するスプレッドシートを事前に準備しておきましょう。

Google ページの右上のメニューリスト()からスプレッドシートを選択します。(Google アカウントにログインしてなければログイン画面が表示されます。)[新しいスプレッドシートを作成]にテンプレートが表示されますが、ここでは「空白」を選びます。スプレッドシートのタイトルを入力すれば、Google ドライブの[マイドライブ]にスプレッドシートのファイルが作成されます。(Google ドライブの任意のフォルダで左上「+ 新規」からでも作成できます)

作成されたファイルを開きファイルの ID をメモします。ID は URL の以下の部分です。

https://docs.google.com/spreadsheets/d/(シート ID)/edit#gid=0

1行目のA~E列にそれぞれ以下を見出しとして入力しておきましょう。

A:日付、B:品目、C:数量、D:単価、E:小計

続けてスプレッドシートにシートを追加します。画面左下の「+」(シートを追加)をクリックすると「シート1」の右に「シート2」が作成されます。このシート2をクリックして開き、1行目A列に「累計」と入力します。さらにその下、A列2行目に以下の関数を入力します。

=SUM('シート1'!E2:E)

これは「シート1のE列の2行目以下の入力数値の合計を表示する」ことを意味します。カタカナ以外は半角文字で入力されているか確認してください。

これでスプレッドシートの準備は完了です。

  • ユーザ毎でシートを別けたり集計の対象を工夫するなど、スプレッドシートの設定によって色々な集計値を得ることができます

Google と Questetra の連携設定

Questetra と Google との連携設定を行います。

  • HTTP 認証設定を追加するにはシステム管理者権限が必要です
  • 追加登録された HTTP認証設定は、同一ワークフロー基盤の他のアプリでも共有されます
  • 2つの自動工程のリクエストのスコープが異なるので、それぞれの工程で同様の操作で設定を追加します

Questetra のワークフローアプリの編集画面にて上記の自動工程アイコンを設置します。「行追加 (テーブル型データ)」工程の設定画面で「C1: OAuth2 設定」の[設定はこちらから]をクリックすると「HTTP 認証設定 Google Sheets API」という設定画面が開きます。

[追加]をクリックし、[名前]を指定します。(任意の文字列:後で見て分かり易いものが良いでしょう。)

追加した設定の[トークンの取得]をクリックすると Google の認証画面へと移ります。

Google スプレッドシートを利用しているアカウントで連携を許可します。

これで Google スプレッドシートとの OAuth2 認証のトークンが取得されました。([トークンの取得]ボタンの上部に「○(リフレッシュトークン)」と表示されます。)

「行追加 (テーブル型データ)」の設定にもどり、「C1: OAuth2 設定」で追加した設定の名前を選択して指定します。

同様の手順を「行取得」工程設定画面でも行い、設定します。

データ項目の設定

データ項目は以下のように設定します。

データ項目名フィールド名データ型必須「台帳記入」工程「確認」工程説明
件名編集可表示のみプロセスの件名です
累計q_Sum文字列型(単一行)非表示表示のみシートから取得された累計の値が保存されます
q_Row文字列型(単一行)非表示非表示取得対象の行の指定に利用されます。初期値に行番号の数を設定します。
売上日報q_Tableテーブル型編集可表示のみシートに追記する内容となります。
データ項目の設定

テーブル型データ項目の設定は以下のようにします。

テーブル項目名テーブル項目型フィールド名説明
日付日付date
品目文字item
数量数値quantity
単価数値unit
小計数値subtotal[項目の演算結果を表示する]数量 * 単価
テーブル項目の設定

「テーブルデータ追加」(Google スプレッドシート: 行追加 (テーブル型データ))の設定

「テーブルデータ追加」工程の設定は以下のとおりです。

項目名必須説明
C1: OAuth2 設定Google への接続に使用する HTTP 認証設定名を選択指定します。指定する名前の認証設定であらかじめOAuth2 トークンを取得しておく必要があります(「Google と Questetra の連携設定」を参照)。
C2: 入力先のスプレッドシートの IDスプレッドシートを準備する」でメモした ID を入力します。
C3: 入力先のシートのタイトル対象シートのシート名を入力します。
(シート1)
C4: テーブル型データ項目テーブル型データ項目の項目名を選択します。
(売上日報)
C-A: A 列に追加するサブデータ項目のフィールド名テーブル型データ項目のテーブル項目に設定したフィールド名を入力します。
(date)
C-B: B 列に追加するサブデータ項目のフィールド名テーブル型データ項目のテーブル項目に設定したフィールド名を入力します。
(item)
C-C: C 列に追加するサブデータ項目のフィールド名テーブル型データ項目のテーブル項目に設定したフィールド名を入力します。
(quantity)
C-D: D 列に追加するサブデータ項目のフィールド名テーブル型データ項目のテーブル項目に設定したフィールド名を入力します。
(unit)
C-E: E 列に追加するサブデータ項目のフィールド名テーブル型データ項目のテーブル項目に設定したフィールド名を入力します。
(subtotal)
(以下の設定項目は空白にします)

「台帳記入」工程でテーブル型データ項目に入力された各テーブル項目の値がそれぞれ指定されたスプレッドシートの列に追記されます。テーブル型データ項目に値が入力されてなければエラーとなりますので注意して下さい。

「累計取得」(Google スプレッドシート: 行取得)の設定

「累計取得」工程の設定は以下のとおりです。

項目名必須説明
C1: OAuth2 設定Google への接続に使用する HTTP 認証設定名を選択指定します。指定する名前の認証設定であらかじめOAuth2 トークンを取得しておく必要があります(「Google と Questetra の連携設定」を参照)。
C2: スプレッドシート IDスプレッドシートを準備する」でメモした ID を入力します。
C3: シートタイトル対象シートのシート名を入力します。
(シート2)
C4: 取得する行データ項目を選択指定します。
(行)
C5: 取得する列範囲取得対象の列を範囲で指定します。
(A:A)
C6_1: 列範囲のうち 1 列目の値を保存するデータ項目データ項目を選択指定します。
(累計)
(以下の設定項目は空白にします)

スプレッドシート上で計算された「累計」セルの値を取得します。「確認」工程で取得された値を確認できます。

アプリの設定ができたら、[リリース]後、プロセスを新規開始してください。正しく設定できていれば、ワークフローで入力したテーブルがスプレッドシートに追記され、累計された値が「累計」データ項目に自動的にセットされるのが確認できます。
複数のプロセスを実行すると、プロセス横断で累計された値がセットされます。

今回は以上です。

%d人のブロガーが「いいね」をつけました。