本記事では、SharePointアダプターのスキーマをSOAPからRESTへ移行するための手順を説明します。
RESTスキーマへの移行には、新規コネクションの作成とOAuth認証の設定が必要です。既存のコネクション・フローには変更が生じる場合がありますので、以下の手順に沿って作業を行ってください。
移行の流れ
- Microsoft Entra IDでカスタムOAuthアプリケーションを作成する
- ASTERIA WarpでRESTスキーマ用のSharePointコネクションを新規作成する
- SharePointコネクションの接続テストを実施する
- データモデルの差異を確認し、既存フローを修正する
- 動作を確認する
手順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環境の場合」をご参照ください。
配置後、詳細タブの「OAuth設定場所」にトークンファイルのパスを指定してください。
手順3:SharePointコネクションの接続テストを実施する
コネクションの設定が完了したら、接続テストを行います。
- 接続テストを実行すると、ブラウザが起動してMicrosoftのログイン画面が表示されます。
- ログインに成功すると、アクセス許可のリクエスト画面が表示されますので、「承諾」をクリックしてください。
- ASTERIA Warpの接続テスト画面に戻り、テスト結果を確認してください。
接続テストを実施する際は、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. に一括置換することで修正の負担を軽減できます。ただし、テーブル・カラム・ストアドプロシージャの差異は別途確認・修正が必要です。
RESTスキーマで以下のストアドプロシージャを使用する際、パスやファイル名に日本語などの非ASCII文字が含まれていると、エンコードが行われずにエラーになる場合があります。
-
CopyDocument(ファイルコピー) -
MoveAttachmentOrDocument(ファイル移動) -
RenameAttachmentOrDocument(リネーム)
対処として、マッパー関数 URLEncode でパスをエンコードしてからプロシージャに渡してください。ただし、パス区切りの / はエンコードせず、日本語などの非ASCII文字のみ %XX 形式にエンコードする必要があります。
対処として、詳細オプションのプロパティに以下の値を追加してください。
■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:動作を確認する
フローが問題なく実行できるか動作を確認します。