メインコンテンツにスキップ

SharePointのリストで更新差分のアイテムを取得する方法

Misaki Tominaga avatar
対応者:Misaki Tominaga
一週間前以上前にアップデートされました

概要

YoomではMicrosoft SharePointと連携し様々なアクションを実施することができます。

今回は、Google スプレッドシートの関数を使用して、SharePointのリストに追加または更新されたアイテムの差分を検知し、取得する方法を紹介します。

大まかな流れ

SharePointのリストでアイテムの更新差分を取得するには、”デルタリンク”というURLを取得する必要があります。

デルタリンクは取得した時点でのリストの更新状況を記録するURLであり、本リンクを以下のように処理することで、アイテムの更新差分だけを取得することができます。

  • 対象リストの初回デルタリンクを発行し、一度スプレッドシートのセルに転記(初回のみ実施)

  • SharePointのリスト更新を検知するトリガーを動かし、対象スプレッドシートにあるデルタリンクのパラーメータを取得

  • リストアイテムの更新差分を取得するアクションで、取得したパラーメータを使い、アイテムの更新差分と更新されたらデルタリンクを取得

  • 最後に、スプレッドシートの既存のデルタリンクがあるセルに新しいデルタリンクを更新

設定方法1:初回デルタリンクを取得・記録する

⚠️ この処理は初回のみ実行し、
以降は同じリストでは実施しないようにしてください。

  1. はじめに、指定のリストに対して初回のデルタリンクを発行します。 以下のようにフローボットを新規作成し、手動トリガー下の+マークからSharePoint→「指定リストの初回デルタリンクを取得する」アクションを選択します。


  2. マイアプリ登録が未実施の場合は、マイアプリ登録を行い次に進みます。次のページではサイトIDとリストIDが求められるので欄をクリックし、今回更新差分を取得したいリストを候補から設定しテストします。

  3. デルタリンクという値が取得できたら、値にカーソルをあわせ表示されたペンマークを押し、以下のような項目画面からデルタリンクをすべてコピーします。

  4. その後、新しいスプレッドシートを用意し、添付のようにA2セルにペーストしてください。

  5. 次に、同じスプレッドシートのB2セルに以下の関数を入力してください。 =REGEXREPLACE(A2, ".*\?", "")
    この関数を入力することで、URLの?よりあとのデータ(パラメータ)のみを予め抽出できるようにしておきます。

設定方法2:更新差分を取得するフローボットを作成する

  1. 新たにフローボットを新規作成し、トリガーからSharePoint→「リストにアイテムが追加・更新されたら」アクションを選択します。

  2. サイトIDと指定のリストIDを候補から選択し、WebhookURL登録を行い問題なければ次に進み、この段階ではテストせずそのまま完了を押します。

  3. 次に、+マークを押しスプレッドシート→「値を取得」アクションを選択します。

  4. マイアプリ登録が未実施の場合、マイアプリ登録を行い次のページに進み、以下のように設定し、テストを実施してB2セルにあるパラメータを取得します。正しく取得できたら完了を押します。

  • スプレッドシートID:候補から設定1でデルタリンクを処理しているスプレッドシートを選択します。

  • シート名:候補から設定1でデルタリンクを処理しているシートを選択します。

  • 範囲:B2とします。

  • 方向:列方向とします。

5. 次に、+マークを押しSharePoint→「リストアイテムの更新差分を取得する」アクションを選択します。

6. 設定ページで、サイトIDとリストIDに今回使用するリストデータを候補から選択し、デルタリンクのパラメータには、4で取得した値を引用し、テスト実施および完了を押します。

7. 次に、+マークを押しスプレッドシート→「セルに値を入力」アクションを選択します。

8. 以下のように設定し、テストおよび完了を押します。

  • スプレッドシートID:候補から設定1でデルタリンクを処理しているスプレッドシートを選択します。

  • シート名:候補から設定1でデルタリンクを処理しているシートを選択します。

  • 対象のセル:A2とします。

  • 値:6で取得した「更新用デルタリンク」という値を引用します。


最終設定:実際にテストを行って完成させる

  1. 最終設定ではまず、SharePointの指定のリストにアクセスし、アイテムの追加または更新を一度行います。

  2. Yoomのフローボットに戻り、トリガーページにアクセスしてテストおよび完了を押します。※アイテム追加/更新直後ではWebhookが検知できない場合があるので、少し待ってテストを行ってください。

  3. 次に、値を取得するアクションも同様にテストを実施し、完了を押します。

  4. 次にリストアイテムの更新差分を取得するでテストを行います。

  5. このとき、リストに追加したテストデータの各フィールド情報が以下のように表示されるので、取得したい箇所をJSONPathを使い任意で取得値に追加します。 ※以下ヘルプページをご参照ください。 「取得する値」を追加する方法

    取得した値に追加されると、以下のように表示されます。問題なければ完了を押します。

  6. 次に、セルに値を入力アクションをテストし、完了を押します。

  7. 最後にフローボットのトリガーをONにして設定完了です。

最終設定まで完了したら、設定2のフローボットに後続オペレーションを追加して、任意のデータベースへの追加や更新、チャットへの通知などに繋げることもできます。

注意点

  • 複数人同時、または近いタイミングでリストにアイテム追加や更新が行われると、Webhookが同時に起動し、デルタリンクを正しく更新できず意図しない挙動になる場合があります。

こちらの回答で解決しましたか?