SharePointアダプター:SOAPスキーマからRESTスキーマへ移行したい

本記事では、SharePointアダプターのスキーマをSOAPからRESTへ移行するための手順を説明します。
RESTスキーマへの移行には、新規コネクションの作成とOAuth認証の設定が必要です。既存のコネクション・フローには変更が生じる場合がありますので、以下の手順に沿って作業を行ってください。

注意:RESTスキーマはSOAPスキーマとデータモデルが異なります。利用できるテーブル・ビュー・ストアドプロシージャやパラメータに差異があるため、既存フローの修正が必要になる場合があります。事前に「手順4:データモデルの差異を確認し、既存フローを修正する」をご確認ください。
 

移行の流れ

  1. Microsoft Entra IDでカスタムOAuthアプリケーションを作成する
  2. ASTERIA WarpでRESTスキーマ用のSharePointコネクションを新規作成する
  3. SharePointコネクションの接続テストを実施する
  4. データモデルの差異を確認し、既存フローを修正する
  5. 動作を確認する

手順1:Microsoft Entra IDでカスタムOAuthアプリケーションを作成する

RESTスキーマではOAuth認証が必須です。Microsoft Entra IDにアプリケーションを登録し、以下の情報を取得してください。

  • クライアントID
  • クライアントシークレット
設定手順の参照先

下記FAQの「■事前準備(Microsoft Azureでの設定手順)」をご参照ください。

FAQ:「Microsoft AzureでのOAuthによる認証の実施手順」

また、CData社の以下のドキュメントも参考になります。
JDBC Driver for Microsoft SharePoint:カスタムEntra ID(Azure AD)アプリケーションの作成

APIのアクセス許可を設定する

Entra IDのアプリ登録において、SharePoint APIの「委任されたアクセス許可」を選択して AllSites.manage を追加してください。

リダイレクトURIを設定する

リダイレクトURIは、コネクション作成時に「コールバックURL」として指定する値と一致させる必要があります。特に指定がない場合は http://localhost:33333 を設定してください。

接続テストをフローデザイナーとFSMCのどちらで実施するかによって、リダイレクトURIが異なる場合があります。詳細は下記ADN記事をご確認ください。
ADN:「マルチセレクトオプションにおける注意事項」

 

手順2:RESTスキーマ用のSharePointコネクションを新規作成する

既存コネクションは編集しないでください。必ず新規コネクションを作成し、動作確認を行ってください。

ASTERIA Warpのコネクション設定画面で、以下のとおり設定してください。

基本タブ

項目 設定値
認証スキーム OAuth
URL 接続先のSharePointサイトのURL
例:https://test.sharepoint.com/sites/testsite/
SharePointエディション SharePoint Online
イニシエートOAuth サーバー側認証:GETANDREFRESH
または
クライアント側認証:REFRESH(ASTERIA Warp 2412以降)
スキーマ REST

詳細タブ

オプション名 設定値
OAuthクライアントID Microsoft Entra IDから取得したクライアントID
OAuthクライアントシークレット Microsoft Entra IDから取得したクライアントシークレット
コールバックURL Microsoft Entra IDで設定したリダイレクトURI
例:http://localhost:33333
コネクションで指定できるオプションの詳細については、下記コンポーネントリファレンスをご参照ください。
コンポーネントリファレンス:「SharePointSQLCall - SQLの実行」
 

Linux環境をご利用の場合(ASTERIA Warp 2406以前)

Linux環境では、ASTERIA Warp 2406以前のバージョンでは初回のOAuth認証を直接実行できません。別のWindows環境で接続テストを実施して生成されたOAuthトークンファイルを、Linux環境へ配置してご使用ください。

詳細は下記ADN記事の「Linux環境の場合」をご参照ください。

ADN:「マルチセレクトオプションにおける注意事項」

配置後、詳細タブの「OAuth設定場所」にトークンファイルのパスを指定してください。

 

手順3:SharePointコネクションの接続テストを実施する

コネクションの設定が完了したら、接続テストを行います。

  1. 接続テストを実行すると、ブラウザが起動してMicrosoftのログイン画面が表示されます。
  2. ログインに成功すると、アクセス許可のリクエスト画面が表示されますので、「承諾」をクリックしてください。
  3. ASTERIA Warpの接続テスト画面に戻り、テスト結果を確認してください。
 
ASTERIA Warp 2406以前のバージョンをご利用の場合:
接続テストを実施する際は、ASTERIA WarpサーバーをWindowsサービスとしてではなく、スタートメニューから起動していただく必要があります。
詳細は下記ADN記事の「■共通‐OAuth認証」をご確認ください。
ADN:「マルチセレクトオプションにおける注意事項」
 

手順4:データモデルの差異を確認し、既存フローを修正する

RESTスキーマとSOAPスキーマでは、提供されるデータモデルが異なります。既存フローで使用しているテーブル・ビュー・ストアドプロシージャ・パラメータについて、以下のドキュメントを参照し差異を確認してください。ASTERIA Warpのバージョンが2512の場合は、下記表のリンクです。

※ASTERIA Warpのバージョンによってドキュメントへのリンクが異なりますので、「Microsoft SharePointアダプターにおける注意事項」の最下部の表から対象バージョンの「ヘルプページ」をご確認ください。

スキーマ データモデルリファレンス
RESTスキーマ JDBC Driver for Microsoft SharePoint:REST データモデル
SOAPスキーマ JDBC Driver for Microsoft SharePoint:SOAP データモデル
利用できるストアドプロシージャやパラメータに変更がある場合は、フローの修正が必要です。両スキーマのドキュメントを比較し、影響範囲を事前に把握してください。

テーブル名のプレフィックスについて:
既存フローでSharePointGetコンポーネントなどを多数使用している場合は、テーブル名のプレフィックス SOAP. を REST. に一括置換することで修正の負担を軽減できます。ただし、テーブル・カラム・ストアドプロシージャの差異は別途確認・修正が必要です。

日本語など非ASCII文字を含むパスの取り扱い:
RESTスキーマで以下のストアドプロシージャを使用する際、パスやファイル名に日本語などの非ASCII文字が含まれていると、エンコードが行われずにエラーになる場合があります。
  • CopyDocument(ファイルコピー)
  • MoveAttachmentOrDocument(ファイル移動)
  • RenameAttachmentOrDocument(リネーム)

対処として、マッパー関数 URLEncode でパスをエンコードしてからプロシージャに渡してください。ただし、パス区切りの / はエンコードせず、日本語などの非ASCII文字のみ %XX 形式にエンコードする必要があります。

5,000件を超えるリストでのSELECT操作:
リストの総アイテム数がSharePointのリストビューしきい値(既定5,000件)を超える場合、SELECT結果に空白項目が多発したり、WHERE条件で結果が0件になったりすることがあります。
対処として、詳細オプションのプロパティに以下の値を追加してください。

■2306以降の場合

「Disable Filter Limit」プロパティの値に「true」を設定してください。

■2212までの場合

「Other」プロパティに以下を追加してください。

Disable Filter Limit = true

なお、5,000件はFROM句で指定したドキュメントライブラリ単位のアイテム数が基準となります。

DeleteDocument ストアドプロシージャのパラメーター:
ASTERIA Warp 2312 に同梱されるモジュールでは、CData社のマニュアルに記載されている REST データモデルのパラメーターでは動作しません。ASTERIA Warp 2306 に同梱されているモジュールのドキュメントに記載があるRelativeURL および DocumentNameを指定してください。

下位フォルダを条件指定する方法:
SOAPスキーマの SubFolder 相当の指定はできません。RESTスキーマでは "パス" 列に相対パスを指定してください。

WHERE "パス" = '/sites/サイト名/DocLib/test'

SQLビルダーでスキーマ(カラム)が表示されない:
詳細オプションに Show Hidden Columns = true を追加してください。

 

手順5:動作を確認する

フローが問題なく実行できるか動作を確認します。

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています

このセクションの記事

他のキーワードで検索する