'ワークフローでは、アイテムを更新できませんでした。アイテムの 1 つ以上の列で、異なる種類の情報が必要であった可能性があります。' エラーについて

こんにちは。江口です。今回は、SharePoint Online で、SharePoint Designer ワークフロー (SPD ワークフロー) 利用時のエラーについて案内します。

はじめに

業務フローに合わせてSPD ワークフローを発行し利用している場合、これまで問題なく使用できていたワークフローで、下記のエラーが記録されることがあります。

エラーが発生したワークフローでは、以下の図1. のようにワークフロー状態列に 'エラー発生' が表示されます。

1
図1: ワークフロー状態列に 'エラー発生' が表示

ワークフロー状態列の 'エラー発生' をクリックしてワークフローの状態ページにアクセスすると、以下のようなエラーメッセージが記録されていることを確認できます。

2
図2: ワークフローの状態ページ

エラーメッセージ:
ワークフローでは、アイテムを更新できませんでした。アイテムの 1 つ以上の列で、異なる種類の情報が必要であった可能性があります。

原因

これまで正常に動作していたワークフローに対して上記エラーが発生するようになった場合、下記の要因に該当する可能性があります。
要因) 表示名が同名のユーザーがテナント内に存在する
上記エラーは、テナント内に表示名が同じユーザー (同姓同名のユーザー) が複数存在している状況で、ワークフロー内で使用している"ユーザーとグループ" 列の値として、"返されるフィールドの名前" 項目に [表示名] を設定している場合に発生することを確認しています。
このエラーは、表示名が同姓同名のユーザーが複数存在している場合、ユーザーとグループ列の値に指定するユーザーを一意に特定できないためことに起因します。
なお、具体的には、以下のような構成および手順で現象を再現することができます。
- 事前準備
予め表示名が重複するユーザーをテナント内に作成します

表示名: UserA ログイン名: userA@tenant.onmicrosoft.com
表示名: UserA ログイン名: userB@tenant.onmicrosoft.com

- 現象再現手順
1. SharePoint サイト内で、"ユーザーとグループ" 列を含むリストを作成します。
2. 作成したリストに対して、ワークフローを作成し、"リスト アイテムを作成する" アクションを追加します。
3. "新しいリスト アイテムの作成" ダイアログで、フィールドに "ユーザーとグループ" 列を追加し、"割り当てる値の設定" に以下の値を指定します。

データ ソース: 現在のアイテム
ソースのフィールド: 作成した "ユーザーとグループ"列
返されるフィールドの名前: 表示名

4. ワークフローを発行し、実行すると以下のエラーが発生します。

--- エラー内容: ここから ---
ワークフローでは、アイテムを更新できませんでした。アイテムの 1 つ以上の列で、異なる種類の情報が必要であった可能性があります。
--- エラー内容: ここまで ---

対処方法

テナント内に表示名が同じユーザーが複数存在している状況でこのエラーが発生した場合、上述したように、ユーザーとグループ列の値に指定するユーザーを一意に特定できないためことに起因します。
そのため、対処方法としては、現象が発生するワークフローに対して、"返されるフィールドの名前" 項目に [ログイン名] など、必ず一意のユーザーに特定できる項目に変更のうえ、ワークフローを再発行していただくことで、再発行後開始したワークフローに関してこのエラーは発生しません。

3
図3: 'ユーザーまたはグループの参照' ダイアログ