Microsoft Lists の取引先データを選択肢として使用する

Microsoft Lists は、Microsoft 社が提供するリスト(表形式のデータ)管理サービスです。取引先や商品の一覧のようなマスタデータを Microsoft 365 側で管理している場合、それをワークフローアプリの選択肢として使いたくなります。この記事では、Microsoft Lists のリストにあるデータを Questetra BPM Suite に取り込んで「選択肢マスタ」を作成/更新する方法を紹介します。

選択肢の一覧を「選択肢マスタ」として保存しておくと、複数の選択型データ項目で、選択肢のマスタデータとして扱えるようになります。たとえば取引先データを選択肢マスタとして保存しておけば、任意の選択型データ項目で取引先を選べるようになります。

  • 法人向け(Microsoft 365 でご利用の)Microsoft Lists のみが対象となります
  • 途中、選択肢マスタの保存先に応じて[システム管理権限]または対象アプリの[アプリ管理権限]が必要です
    • ログイン中のアカウントが持っている権限は、「アカウント設定 > 権限」から確認できます

Microsoft Lists の各自動工程の概要、SharePoint サイトの URL・リストの名前・Lists フィールド名の調べ方は Microsoft Lists の取引先データをワークフローから追加・更新・削除する をご覧ください。Questetra BPM Suite と Microsoft Lists の連携設定(OAuth2 設定)は Microsoft 365 と Questetra の連携設定 をご覧ください。

対象とするリスト

本記事では、SharePoint サイト内のリスト「Customers」から取得したデータをもとに、選択肢マスタを作成/更新するワークフローアプリを作成します。すでにご利用のリストを対象にする場合でも、同じ手順で作成できます。

列名フィールド名列タイプ用途
タイトルTitle1 行テキスト取引先名です。リスト作成時からある既定の列で、画面には「タイトル」と表示されますがフィールド名は Title です
AddressAddress1 行テキスト住所です。選択した取引先の詳細を Microsoft Lists から取得する で使用します
SalesRepSalesRep1 行テキスト担当営業です。同上
StatusStatus1 行テキスト状態です(申請中 / 登録済)。フィルタの例で使用します

列は半角英字の名前で作成してください(既定の「タイトル」列はそのまま使えます)。「Microsoft Lists: リストアイテム検索」に指定するのは、画面に表示される列名ではなく Lists 内部のフィールド名です。フィールド名は列を作成したときの名前から決まり、日本語で作成すると _x4f4f__x6240_(住所)のように、半角スペースを含む名前で作成すると _x0020_ を含む文字列になります。列の設定で変更できるのは画面に表示される[名前]だけで、フィールド名は作成時のまま変わりません。日本語の見出しにしたい場合は、英字の名前で作成してから[名前]を日本語に変更してください。既存の列のフィールド名は、Microsoft Lists: リストアイテム検索 の[Notes]にある方法(スキーマ付き CSV のエクスポート、または列で並び替えたときの URL に含まれる sortField=)で確認できます。

このリストは Microsoft Lists の取引先データをワークフローから追加・更新・削除する のサンプルアプリ「取引先一覧に追加する」と共通です。両方の記事を試す場合、リストは 1 つ作れば足ります。

選択肢マスタの選択肢 ID にはリストアイテム ID を、表示ラベルには Title(取引先名)を使います。リストアイテム ID は Lists 側で行を追加/削除しても変わらないため、選択肢 ID として扱えます。

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

「Microsoft Lists: 取引先マスタ更新」という名前でアプリを新規作成します。

ワークフロー図

工程は「マスタ更新開始」(ヒューマンタスク・最初の工程)>「取引先データ取得」(Microsoft Lists: リストアイテム検索)>「選択肢マスタ更新」(選択肢マスタ更新)>「データ確認」(ヒューマンタスク)の順に並びます。

「Microsoft Lists: リストアイテム検索」と「選択肢マスタ更新」は、いずれも自動処理タスクのグループにあります。「Microsoft Lists: リストアイテム取得」と間違えないよう注意してください。

「取引先データ取得」のプロパティでは、[処理失敗時に、トークンをエラー境界イベントに移動]をオンにしておきます。工程にエラー境界イベントが追加されるので、終了イベントを追加してフローをつないでおきます。こうしておくと、Lists からデータを取得できなかったときに、選択肢マスタを触らないままケースをエラー終了させられます。

「選択肢マスタ更新」にはエラー境界イベントを設定できません。エラー境界イベントを設定できるのは、アドオン自動工程・Google ドライブ系の自動工程・AI エージェントに限られます。

定期的にマスタを取り込みたい場合は、最初の工程をヒューマンタスクではなくタイマー開始イベントにします。この記事では動作を確かめやすいようにヒューマンタスクから始めています。

データ項目の設定

データ項目名データ型「マスタ更新開始」工程「データ確認」工程説明
件名–編集可表示のみケースの件名です。
リストアイテム ID文字 (複数行)表示なし表示のみ検索で該当したリストアイテムの ID が改行区切りで格納されます。選択肢 ID になります。
取引先名文字 (複数行)表示なし表示のみTitle 列の値が改行区切りで格納されます。表示ラベルになります。
取引先マスタ選択 (–)表示なし表示なし上の 2 つの文字型データ項目を参照する選択型データ項目です。このデータ項目から選択肢マスタが作成されます(処理画面では表示しないのでフォームタイプは問われません)。

「取引先マスタ」には詳細な設定が必要です。[編集]から設定画面を開き、[選択肢種別]を既定の[固定の選択肢]から[文字型データ項目]に変更します。[選択肢ID]に「リストアイテム ID」、[表示ラベル]に「取引先名」を指定します。

「リストアイテム検索」は、該当したリストアイテムの ID と列の値を、それぞれ改行区切りで文字型データ項目に保存します。行の並び順が対応しているので、n 行目の ID と n 行目の列の値が 1 つの選択肢になります。

「取引先データ取得」(Microsoft Lists: リストアイテム検索)の設定

項目名必須説明
C1: OAuth2 設定○Microsoft Lists への接続に使用する HTTP 認証設定名を指定します。指定する名前の認証設定であらかじめ OAuth2 トークンを取得しておく必要があります。
C2: SharePoint サイトの URL○「Customers」リストがある SharePoint サイトの URL を指定します。リストの URL のうち /Lists より前の部分です。マイリスト内のリストか SharePoint サイト内のリストかで形式が異なります。書式は Microsoft Lists: リストアイテム検索 の[Notes]をご覧ください。
C3: リストの名前○Customers と入力します。
C4: フィルタ–取り込む範囲を絞る場合に、Microsoft Graph の書式で条件を指定します。空欄にするとリストのすべてのリストアイテムが対象です。たとえば fields/Status eq '登録済' とすると、申請中の取引先を選択肢に含めずに済みます。
C5: リストアイテム ID を保存するデータ項目–データ項目「リストアイテム ID」を選択して指定します。
C-K1: 列 1 の Lists フィールド名 / C-V1: 列 1 の値を保存するデータ項目–Title / データ項目「取引先名」を選択して指定します。

列の値を保存できるのは 2 列までです。取引先名と担当営業のように、同じリストから 2 種類の選択肢マスタを作る場合は、2 列目も使い、「選択肢マスタ更新」工程を 2 つ並行に配置します。

フィルタの書式については $filter クエリ パラメーターを使用してオブジェクトのコレクションをフィルター処理する(Microsoft の公式ドキュメント)をご覧ください。

検索で該当が 0 件のときはエラーになります。フィルタを指定する場合は、該当するリストアイテムがあることを確かめてください。なお、保存先が文字 (単一行) のデータ項目のときは 2 件以上該当した場合もエラーになります。選択肢マスタを作る用途では、この記事のように文字 (複数行) を保存先にします。

リストアイテムの総数が 5000 を超えている場合、フィルタする列のインデックスをあらかじめ追加しておく必要があります。

「選択肢マスタ更新」の設定

項目名必須説明
更新するアドオンの種別–[選択肢マスタ(アプリ共有アドオン)]または[選択肢マスタ(アドオン)]を指定します。他のアプリからも取引先を選べるようにするなら前者を選びます。
選択肢マスタを更新するユーザ(要システム管理権限 / 要アプリ管理権限)○[Me]ボタンで自分のアカウントを指定します。ラベルの括弧内は[更新するアドオンの種別]の選択に応じて切り替わります。[アプリ共有アドオン]には[システム管理権限]、[アドオン]には対象アプリの[アプリ管理権限]が必要です。
選択肢一覧を保存する選択型データ項目○データ項目「取引先マスタ」を選択して指定します。
アドオンとして保存する際の名前○「取引先マスタ」と入力します。この名前で選択肢マスタが登録され、次回以降は同じ名前のものが更新されます。

選択肢 ID と表示ラベルの文字数は、それぞれ最大 1000 文字です。登録できる選択肢は最大 15 万件です。

[選択肢マスタ(アドオン)]はこのアプリからのみ参照でき、アプリをアーカイブすると選択肢マスタもアーカイブに同梱されます。マスタに社外に出せない情報が含まれる場合は、アーカイブの取り扱いに注意してください。

動作確認

アプリを保存・リリースして、実際の動作を確認します。

「マスタ更新開始」タスクを完了したあと、少し待つと「データ確認」タスクが割り当てられます。「リストアイテム ID」「取引先名」に Lists のデータが取得できているかを確認しましょう。行数が一致していれば選択肢として組み合わされています。

保存された選択肢マスタは、次の場所で確認できます。

  • [選択肢マスタ(アドオン)]の場合:[▼アプリ]>[アドオンの管理]>[選択型データ項目で使用する選択肢マスタ]
  • [選択肢マスタ(アプリ共有アドオン)]の場合:[システム設定]>[アプリ共有アドオン]>[選択型データ項目で使用する選択肢マスタ]

正常に動作しなかったら

「データ確認」タスクが割り当てられないときは、トークンがエラー境界イベントに進んでいないかを確認します。ケースの状態は「ワークフロー > 開始したケース」などから見られます。

自動工程で何が起きたかは、ケース詳細で「管理者モード」にチェックを入れると「処理記録」に表示されます。「Microsoft Lists: リストアイテム検索」の自動処理ログを開き、エラーの内容を確認してください。Lists フィールド名の誤りやフィルタの書式の誤りは、ここで分かります。

作成した選択肢マスタを使う

登録した選択肢マスタは、選択型データ項目の[選択肢種別]で[選択肢マスタ(アプリ共有アドオン)](または[選択肢マスタ(アドオン)])を選び、登録した「取引先マスタ」を指定すると読み込めます。これで、そのデータ項目では取引先の一覧から選べるようになります。

Lists 側のリストを直したあとにこのアプリのケースを 1 件流せば、選択肢マスタが更新され、参照している選択型データ項目の選択肢も入れ替わります。

選ばれた取引先の住所や担当営業をケースに自動入力する方法は、選択した取引先の詳細を Microsoft Lists から取得する をご覧ください。別のアプリから選択肢マスタを参照するので、その場合は「選択肢マスタ更新」で[選択肢マスタ(アプリ共有アドオン)]を選んでおく必要があります。

関連記事

Questetra Supportをもっと見る

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

続きを読む