Microsoft Lists の取引先データをワークフローから追加・更新・削除する

Microsoft Lists は、Microsoft 社が提供するリスト(表形式のデータ)管理サービスです。SharePoint のリストがベースになっており、Microsoft 365 のアカウントがあればブラウザから利用できます。また、API(Microsoft Graph)を使って各種操作を行うこともでき、この記事で紹介する自動工程もそれを用いています。

ワークフローで扱うデータはケースごとに保持されますが、処理した内容の一覧を俯瞰したい、ワークフローを使わないメンバーにも Microsoft 365 側で参照してほしい、といった場合には、リストに書き出しておくと便利です。この記事では、ワークフローの進行に合わせてリストアイテムを追加・更新・削除し、ワークフローで処理した内容を Microsoft Lists のリストに反映する方法を紹介します。

Microsoft Lists 連携の自動工程は 5 種類あり、用途ごとに 3 本の記事に分けて紹介しています。

3 本とも同じリストと同じ HTTP 認証設定を使い回せます。この記事の「連携設定」「リストと列の指定方法」は 3 本に共通の内容です。

  • 法人向け(Microsoft 365 でご利用の)Microsoft Lists のみが対象となります
    • 対象となるリストは、マイリスト内のリストと SharePoint サイト内のリストです

Microsoft Lists について、詳しくは Microsoft 365 のリストとは何ですか?(Microsoft の公式ヘルプページ)をご覧ください。

各自動工程について

Microsoft Lists に関する自動工程には、ビルトイン自動工程として用意されている「Microsoft Lists: リストアイテム追加」「Microsoft Lists: リストアイテム更新」「Microsoft Lists: リストアイテム取得」「Microsoft Lists: リストアイテム検索」「Microsoft Lists: リストアイテム削除」があります。

この記事ではそのうち、リストへ書き込む「リストアイテム追加」「リストアイテム更新」「リストアイテム削除」の 3 種を取り上げます。リストのデータをワークフローに取り込む「リストアイテム検索」は Microsoft Lists の取引先データを選択肢として使用する、「リストアイテム取得」は 選択した取引先の詳細を Microsoft Lists から取得する をご覧ください。

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

Microsoft Lists: リストアイテム追加

指定したリストに、新しいリストアイテムを 1 件追加します。列の値は 7 列まで指定でき、データ項目の値を EL 式で埋め込めます。追加されたリストアイテムの ID をデータ項目に保存でき、この ID を使って後続の工程で同じリストアイテムを更新・取得・削除できます。

Microsoft Lists: リストアイテム更新

ID で指定したリストアイテム(1 件)の内容を更新します。更新する列は 7 列まで指定でき、少なくとも 1 列は指定する必要があります。指定しなかった列の値はそのまま残りますが、列名を指定して値を空にすると、その列は空で上書きされます。

Microsoft Lists: リストアイテム削除

[C4: 削除するリストアイテムの ID が保存されているデータ項目]で指定したリストアイテムを削除します。文字型データ項目に改行区切りで複数の ID が入っていれば、一度に複数のリストアイテムを削除できます(選択型データ項目も指定できます)。「リストアイテム検索」で得た ID をそのまま渡せます。

Microsoft Lists と Questetra BPM Suite の連携設定

Questetra BPM Suite と Microsoft Lists の連携設定(OAuth2 設定)を行います。設定の追加からトークンの取得までの手順は Microsoft 365 の他のサービスと共通です。Microsoft 365 と Questetra の連携設定 をご覧ください。テナントの設定によって管理者の同意が必要になる場合や、意図しないアカウントでトークンを取得してしまう場合の注意も、同じページにまとめています。

Microsoft Lists の 5 つの自動工程は、いずれも同じ HTTP 認証設定「Microsoft Lists」(認証タイプ「OAuth2」)を使用します。1 つ用意すれば 5 工程すべてで共有できます。設定項目[C1: OAuth2 設定]の[設定はこちらから]から追加してください。

自動工程が読み書きできるのは、トークンを取得したアカウントがアクセスできるリストです。SharePoint サイト内のリストを扱う場合は、そのサイトにアクセスできるアカウントでトークンを取得してください。

リストと列の指定方法

いずれの自動工程でも、対象のリストは[C2: SharePoint サイトの URL]と[C3: リストの名前]で指定し、列は「Lists フィールド名」で指定します。設定を始める前に、この 3 つを調べておきます。

SharePoint サイトの URL

リストの URL のうち /Lists より前の部分です。リストの置き場所によって形式が異なります。

リストの置き場所SharePoint サイトの URL の形式
マイリスト内のリストhttps://{サブドメイン}-my.sharepoint.com/personal/{ユーザ識別子}_{サブドメイン}_onmicrosoft_com
SharePoint サイト内のリストhttps://{サブドメイン}.sharepoint.com/sites/{サイト識別子}

Lists フィールド名

列の指定には、画面に表示されている列名ではなく「フィールド名」を使います。調べる方法は 2 つあります。

  • リストのスキーマ付き CSV をエクスポートし、各列のスキーマ内の Name プロパティの値を見る
  • WebUI でリストを表示して列の値で並び替えを行い、URL に含まれる sortField={フィールド名} を見る

列名に日本語などの ASCII 以外の文字を使うと、フィールド名は変換された文字列になります。表示されている列名から推測せず、上記の方法で確認してください。

対応する列タイプ

自動工程が扱える Microsoft Lists の列タイプは、工程によって異なります。

自動工程対応する列タイプ
リストアイテム追加、リストアイテム更新1 行テキスト、複数行テキスト、数、通貨、選択肢(複数選択を許可していない場合)、日付と時刻
リストアイテム検索1 行テキスト、数、Yes/No、日付と時刻、選択肢(複数選択を許可していない場合)、通貨
リストアイテム取得保存先のデータ項目のデータ型によって異なります(Microsoft Lists: リストアイテム取得 の Notes をご覧ください)

日付と時刻の列に値をセットする場合は 2024-03-26 02:15 の書式で渡します。

Microsoft Lists で表示される日付と時刻は、SharePoint サイトのタイムゾーン設定(Microsoft 365 アカウントのタイムゾーン設定とは異なります)に応じたものです。Questetra BPM Suite のタイムゾーン設定と異なる場合、表示される日付や日時にずれが生じます。

サンプルアプリ

これらの自動工程を使って作成したサンプルアプリ「取引先一覧に追加する」を紹介します。工程は「取引先登録申請」(ヒューマンタスク・最初の工程)>「一覧へ追加」(リストアイテム追加)>「承認」(ヒューマンタスク)>「一覧を更新」(リストアイテム更新)の順に並びます。

申請された取引先を Microsoft Lists の取引先一覧に 1 件追加し、承認が済んだ時点で同じリストアイテムを更新する、という流れです。こうすることで、ワークフローを使わないメンバーも Microsoft 365 側のリストで取引先と登録の進み具合を確認できます。

Microsoft Lists 側の準備

取引先一覧となるリストを 1 つ作成します。このサンプルでは、SharePoint サイト内に「Customers」という名前のリストを作成し、次の列を用意します。

列名フィールド名列タイプ用途
タイトルTitle1 行テキスト取引先名です。リスト作成時からある既定の列で、画面には「タイトル」と表示されますがフィールド名は Title です
AddressAddress1 行テキスト住所です
SalesRepSalesRep1 行テキスト担当営業です
StatusStatus1 行テキスト状態です(申請中 / 登録済)
NoteNote複数行テキスト備考です。承認時のコメントで上書きされます

列は半角英字の名前で作成してください(既定の「タイトル」列はそのまま使えます)。フィールド名がそのまま列名になり、設定時に調べる手間がかかりません。列の設定で変更できるのは画面に表示される[名前]だけで、フィールド名は作成時のまま変わりません。日本語の見出しにしたい場合は、英字の名前で作成してから[名前]を日本語に変更してください。

このリストは Microsoft Lists の取引先データを選択肢として使用する および 選択した取引先の詳細を Microsoft Lists から取得する と共通です。3 本の記事を試す場合でも、リストは 1 つ作れば足ります。

ワークフローアプリの設定

「取引先登録申請」工程で申請者が取引先名や住所を入力すると、次の「一覧へ追加」工程が取引先一覧に 1 件のリストアイテムを追加します。このとき「Status」列には「申請中」と入れておき、追加されたリストアイテムの ID をデータ項目に保存します。「承認」工程で承認者がコメントを入力して処理を完了すると、「一覧を更新」工程が保存された ID のリストアイテムを更新し、「Status」列を「登録済」に変え、コメントを書き込みます。

データ項目の設定
データ項目名データ型必須「承認」工程説明
件名––表示のみケースの件名です。
取引先名文字 (単一行)○表示のみ登録する取引先の名前です。取引先一覧の「Title」列に入ります。
住所文字 (単一行)–表示のみ取引先の住所です。
担当営業文字 (単一行)–表示のみ社内の担当営業です。
備考文字 (複数行)–表示のみ申請時の補足です。
リストアイテム ID文字 (単一行)–表示のみ取引先一覧に追加されたリストアイテムの ID です。「一覧を更新」で対象を指定するために使います。
承認コメント文字 (複数行)–編集可承認者が入力するコメントです。取引先一覧の「Note」列に入ります。

「一覧へ追加」で保存された「リストアイテム ID」が、後続の「一覧を更新」で利用されます。

「一覧へ追加」(Microsoft Lists: リストアイテム追加)の設定
項目名必須説明
C1: OAuth2 設定○Microsoft Lists への接続に使用する HTTP 認証設定名を指定します。指定する名前の認証設定であらかじめ OAuth2 トークンを取得しておく必要があります(「Microsoft Lists と Questetra BPM Suite の連携設定」を参照)。
C2: SharePoint サイトの URL○取引先一覧のリストがある SharePoint サイトの URL を指定します。
C3: リストの名前○このサンプルでは Customers と入力します。
C4: リストアイテム ID を保存するデータ項目–データ項目「リストアイテム ID」を選択して指定します。
C-K1: 列 1 の Lists フィールド名 / C-V1: 列 1 の値–Title / データ項目「取引先名」を挿入した EL 式を指定します。
C-K2: 列 2 の Lists フィールド名 / C-V2: 列 2 の値–Address / データ項目「住所」を挿入した EL 式を指定します。
C-K3: 列 3 の Lists フィールド名 / C-V3: 列 3 の値–SalesRep / データ項目「担当営業」を挿入した EL 式を指定します。
C-K4: 列 4 の Lists フィールド名 / C-V4: 列 4 の値–Note / データ項目「備考」を挿入した EL 式を指定します。
C-K5: 列 5 の Lists フィールド名 / C-V5: 列 5 の値–Status / 申請中 と入力します。EL 式ではなく固定の文字列を指定できます。

列は 7 列まで指定できますが、このサンプルでは 5 列だけ使います。列の値の欄では EL 式が使えます。データ項目の値を埋め込む場合は、欄の右下の[参照を挿入する…]からデータ項目を選んで挿入してください。#{processInstanceTitle} のようにケースの情報を埋め込むこともできます。

「一覧を更新」(Microsoft Lists: リストアイテム更新)の設定
項目名必須説明
C1: OAuth2 設定○「一覧へ追加」で指定したものと同じ設定名を選択して指定します。
C2: SharePoint サイトの URL○「一覧へ追加」と同じ URL を指定します。
C3: リストの名前○「一覧へ追加」と同じ Customers を入力します。
C4: リストアイテム ID○データ項目「リストアイテム ID」を選択して指定します。「一覧へ追加」で保存された ID のリストアイテムが対象となります。
C-K1: 列 1 の Lists フィールド名 / C-V1: 列 1 の新しい値–Status / 登録済 と入力します。
C-K2: 列 2 の Lists フィールド名 / C-V2: 列 2 の新しい値–Note / データ項目「承認コメント」を挿入した EL 式を指定します。

指定しなかった列(Title や Address など)の値は、そのまま残ります。一方 Note 列は、申請時の備考が承認コメントで上書きされます。取引先一覧では、Status 列が「申請中」のままのリストアイテムを見れば、まだ承認が済んでいない申請が分かります。

応用

このサンプルアプリでは扱いませんが、次のような使い方もできます。

  • リストアイテム ID が分からない場合は「リストアイテム検索」でフィルタ条件から ID を求め、それを「リストアイテム更新」「リストアイテム削除」に渡します
    • 「リストアイテム更新」「リストアイテム取得」の ID は文字 (単一行) か選択型(単一選択)のデータ項目で指定するため、検索結果が 1 件に絞れる場合に限ります。「リストアイテム削除」は文字 (複数行) でも指定でき、複数件をまとめて渡せます
  • 差し戻しや取り消しで取引先一覧の行が不要になった場合は、「リストアイテム削除」で削除します

関連記事

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む