
今回は Google カレンダーに関する自動工程について説明します。
Google カレンダーは、Google 社が提供するオンラインカレンダーです。個人での利用のほか、Google Workspace を使用していれば複数人で共用することもできます。また、API を使って各種操作を行うこともでき、今回紹介する自動工程も API を用いています。
Google カレンダーについて、詳しくは Google の公式ヘルプページをご覧ください。
Google カレンダーと連携する自動処理工程について
Google カレンダーに関する自動工程には、Advanced 以上のエディションに標準で組み込まれている「開始: Google カレンダー: 予定開始時」「Google カレンダー: 予定追加」「Google カレンダー: 予定のカレンダー移動」「Google カレンダー: 予定削除」や、Professional 以上でアドオンとして追加可能な「Google Calendar イベントリスト(予定)取得」などがあります。今回はそのうち、「開始: Google カレンダー: 予定開始時」と「Google カレンダー: 予定のカレンダー移動」を取り上げます。
開始: Google カレンダー: 予定開始時
Google カレンダーに登録されている、予定の開始時刻を経過すると、プロセスが開始されます。予定のタイトルや開始/終了時刻、説明等の情報をプロセスのデータ項目に保存することもできます。

Google カレンダー: 予定のカレンダー移動
Google カレンダーの予定を別のカレンダーに移動します。移動後の予定URL を取得しデータ項目に保存することもできます。

これらの自動工程を使用するには、Google カレンダーにアクセスする Google アカウントを Questetra BPM Suite のアカウント(ユーザ)と連携する必要があります。以下に示す手順で設定してください。
Google アカウント連携の設定
ワークフロー基盤の設定
この設定は、システム管理権限を持つユーザで行ってください。
システム設定のページを開き、「Google 連携」を開きます。開いたページで、お使いの Google Workspace ドメインを入力します。(既に「ドメイン」の設定が行われている場合は、スキップしてください。)

「保存」を押せば完了です。
これで、お使いの環境で、シングルサインオンなど Google との連携機能が使用可能になります。
アカウント設定画面に「Google 連携」の項目が現れ、アカウントの連携設定が可能になります。
アカウントの設定
まず、アカウント設定画面を開き、「Google 連携」をクリックします。
そして開いたページで、「Google カレンダー」の部分にあるボタンを確認します。そのボタンが「解除」であれば、そのアカウントは既に Google アカウントとの連携が完了しています。その場合、以降の手順は必要ありません。
ボタンが「連携設定」の場合、連携は未設定です。その場合、ボタンをクリックしてください。開いたページで、連携したい Google アカウントにログインし、続く画面で「許可」をクリックします。

これで、連携設定は完了です。Google 連携についてはこちらのページもご覧ください。
対象となる Google カレンダー
「開始: Google カレンダー: 予定開始時」は指定された(無指定の場合はプライマリー)カレンダーに登録されている予定を読み込み、プロセスを開始します。そのため、特定のアプリを開始させたい場合はそれぞれアプリに配置されたイベントごとに専用のカレンダーが必要になります。
Google カレンダーは1つのアカウントに対してデフォルトで1つのカレンダーが用意されています。これをプライマリーカレンダーといいます。このカレンダー上に他のカレンダー、例えば社内で共有されるカレンダーなどを重ねて表示することができます。さらに新たにカレンダーを作成して追加することもできます。この機能を利用して、アプリ起動専用のカレンダーなどを作成します。
新規カレンダーを追加するには、カレンダー画面左メニューの[他のカレンダー]から「新しカレンダーを作成」を選択します。設定画面に遷移しますのでカレンダー名を入力して[作成]します。左メニューの[マイカレンダー]に今作成したカレンダー名が追加されますので、クリックして選択してください。表示される画面の「カレンダーの統合」セクションに「カレンダーID」の文字列があります。この文字列を工程の設定項目の「カレンダー ID」に指定します。
今回のサンプルアプリでは「開始用カレンダー」と「開始済みカレンダー」の2つのカレンダーを追加して使用します。
サンプルアプリ
開始: Google カレンダー: 予定開始時 の動作を確認するアプリです。

このアプリを作成、[リリース]してからカレンダーに予定を登録します。予定の開始時間を過ぎれば新しいプロセスが開始されていることを確認します。確認後に「開始用カレンダー」に登録されている予定イベントは「開始済みカレンダー」へと移動されます。
データ項目はプロセス開始時に取得されるデータを保存する物を用意します。
データ項目名 | データ型 | 必須 | [確認]工程 | データ項目 |
件名 | ー | ー | 表示のみ | プロセスの件名です。 |
予定 ID | 文字型 (単一行) | ー | 表示のみ | カレンダーに登録された個々の予定の ID です。 |
開始時刻 | 日時型 | ー | 表示のみ | 予定の開始時刻です。 |
終了時刻 | 日時型 | ー | 表示のみ | 予定の終了時刻です。 |
予定のタイトル | 文字型 (単一行) | ー | 表示のみ | 予定のの件名です。 |
予定の説明 | 文字型 (複数行) | ー | 表示のみ | 予定の説明欄の内容です。 |
予定のURL | 文字型 (単一行) | ー | 表示のみ | 予定を表示するためのURLです。 カレンダーにアクセスのないブラウザでも予定の内容を閲覧できます。 |
「開始: Google カレンダー: 予定開始時」の設定項目は以下のとおりです。
設定項目名 | 必須 | 説明 |
C1: Google カレンダー に接続するユーザ * | ○ | Google カレンダーにどのユーザで接続するか指定します。指定するユーザは Google カレンダーとの連携が設定されている必要があります。 |
C2: Calendar ID | ー | 監視する対象のカレンダーを、IDで 指定します。ID はカレンダー設定の対象のカレンダーの設定を参照してください 。未指定の場合はプライマリのカレンダーとなります。 |
C3: 予定 ID を保存するデータ項目 * | ○ | 予定の ID を保存するデータ項目を指定します。今回は「予定 ID 」を選択します。 |
C4: 予定開始時刻を保存するデータ項目 | ー | 予定の開始時刻を保存するデータ項目を選択します。 |
C5: 予定終了時刻を保存するデータ項目 | ー | 予定の終了時刻を保存するデータ項目を選択します。 |
C6: 予定タイトルを保存するデータ項目 | ー | 予定のタイトルを保存するデータ項目を選択します。 |
C7: 説明を保存するデータ項目 | ー | 予定の説明の内容を保存するデータ項目を選択します。 |
C8: 予定 URL を保存するデータ項目 | ー | 予定の表示 URL を保存するデータ項目を選択します。 |
リリースしてからしばらくすると、指定された Google カレンダーの監視(ポーリング)を始めます。初回のアクセスでは予定の取得だけが行われ、プロセスの開始は行われません。2回目以後のアクセスでは、ポーリング時に開始時間を過ぎている予定があればそれぞれについてプロセスが開始されます。
「Google カレンダー: 予定のカレンダー移動」の設定項目は以下のとおりです。
設定項目名 | 必須 | 説明 |
C1:Google カレンダー に接続するユーザ * | ○ | Google カレンダーにどのユーザで接続するか指定します。指定するユーザは Google カレンダーとの連携が設定されている必要があります。 |
C2:予定の移動元カレンダー ID | ー | 移動される予定が登録されているカレンダーの ID を指定します。未指定の場合はプライマリのカレンダーとなります。 |
C3:予定の移動先カレンダー ID | ー | 予定の移動先のカレンダーの ID を指定します。未指定の場合はプライマリのカレンダーとなります。 |
C4:予定 ID * | ○ | 予定の ID が格納されているデータ項目を指定します。 |
C5:予定 URL を保存するデータ項目 | ー | 移動後の予定の URL を保存するデータ項目を指定します。 |
「確認」工程の処理が完了されると、この自動工程により「開始用カレンダー」に登録されていた予定が「開始済みカレンダー」へと移動されます。データ項目に保存されている予定 URL は移動後の URL で上書きされます。
工程の処理記録
プロパティ設定画面の右上の虫眼鏡アイコンをクリックすると[イベント詳細]画面が開き、当該工程の動作に関する[自動処理ログ](プロセスログ)を一覧することができます。ポーリングやプロセス開始の処理ログの詳細を確認することができます。
自動処理ログに「ポーリング失敗」と表示されている場合は設定を見直してください。

以下の画面キャプチャは、予定からプロセスを開始した例です。17:00開始の予定により17:01にプロセスが開始されています。予定のタイトルや説明に入力された文も、データ項目にコピーされています。タスク処理の完了後に「開始用カレンダー」(茶色)から「開始済みカレンダー」(青色)に移動されています。
今回は以上です。

