※本投稿は過去に弊社のHatena blog MKIが解説するServiceNow開発blog に掲載した内容を再編集したものです。
弊社では社内の情報共有ポータルとしてSharePointを利用していますが、システムに関する問い合わせにはServiceNowのインシデント機能を利用しています。
インシデント発生を抑制するための手段としてServiceNowによくある質問をナレッジとして登録しているのですが、この情報をSharePointにも連携したい、という要望があり、連携方法を検証してみたので、ご紹介したいと思います。
#IntegrationHub Microsoft SharePoint Spoke
連携の検証にあたっては、IntegrationHubのspokeを利用しました。
このスポークには、SharePointのREST APIを操作するための様々なアクションが用意されているのですが、その中の「Create List Item」アクションを利用して、ServiceNowのナレッジ記事が作成されたときに、SharePointのリストに記事を行として追加する処理を作成していきたいと思います。
#連携の設定方法
###SharePointに連携用のアプリケーションを作成
まずはSharePointにServiceNowと連携するためのアプリケーションを作成し、権限の設定を行います。詳しい手順はServiceNowのドキュメントに記載があるのでここでは割愛します。
###ServiceNowにプラグインをインストール
Microsoft SharePoint Spoke(sn_sp_spoke)というプラグインをインストールします。
###IntegrationHubの接続設定を行います
設定するのは以下のデータです。
######①アプリケーションレジストリ (メニュー 「システムOAuth > アプリケーションレジストリ」)
####②テナント (メニュー 「Microsoft SharePoint Online > テナント」)
#####③資格情報(メニュー 「IntegrationHub > 資格情報」)
#####④トークンを取得する
接続情報が登録できたら、資格情報の画面で「OAuth トークンの取得」関連リンクをクリックしてトークンを取得します。
#####⑤Flow Designerでアクションをカスタマイズ
spokeで提供される「Create List Item」アクションでは、リストアイテムに連携できる項目が限られているので、アクションをコピーしてカスタムアクションを作成します。
ここではナレッジのNumberとDescriptionをアクションのインプットとして追加設定しました。
また、Preprocessing画面でinputの値をREST APIのリクエストに反映させる処理を追記します。(下図の赤枠部分。スクリプトの16、17行目のペイロード部分ではSharePointのリストのカラムのEntityPropertyNameを指定する必要があります)
#####⑥ビジネスルール
最後に、ナレッジが作成されたらIntegrationHubのActionを実行するようにビジネスルールを作成しておきます。
#結果
上記のとおり実装した結果、以下のようにServiceNowで登録したナレッジが、SharePointのリストに自動連携されるようになりました。
今回の検証ではリストアイテムの新規作成だけを検証したため、実際の運用を考えると更新や削除のパターンも実装する必要がありますが、連携の雰囲気はつかんでいただけたのではないかと思います。