各製品の資料を入手。
詳細はこちら →CData
こんにちは!ドライバー周りのヘルプドキュメントを担当している古川です。
本記事で紹介している手法は、2023年現在ご利用いただけなくなっております。SharePoint リストへの外部データの連携については、以下の記事の方法をご確認ください。
CData Arc を使ってSQL Server のデータをSharePoint Online のリストにノーコードで連携CData API Server およびADO.NET Provider for Paylocity (または他の250+ ADO.NET Providers) を組み合わせて利用することで、SharePoint でPaylocity にアクセス および更新することができます。 この記事では、常に最新状態のPaylocity を外部リクエストとして作成する方法を説明します。外部コンテンツタイプをテンプレートとして使用し、外部リストを作成します。外部コンテンツタイプは、モバイルおよびその他のオンラインアプリケーション用のリアルタイムデータストリーミングプロトコルであるOData を介した接続を可能にします。API Server は、Paylocity フィードのOData プロデューサーです。
API Server を設定した後、Paylocity に接続できる外部リストの作成方法は、以下の基本的な3つのステップによって構成されます。
この記事は、以下のタスクを実行する方法についても説明します。
以下のステップに従って、安全なPaylocity OData サービスの作成を開始します。
API Server は独自のサーバーで実行されます。Windows では、スタンドアロンサーバーまたはIIS を使用して展開できます。Java サーブレットコンテナで、API Server WAR ファイルをドロップします。詳細とハウツーについては、ヘルプドキュメントを参照してください。
API Server は、Microsoft Azure、Amazon EC2、Heroku にも簡単にデプロイできます。
API Server とADO.NET Provider for Paylocity を展開した後、[Settings]->[Connections]をクリックし、API Server 管理コンソールで新しい接続を追加してPaylocity に接続するために必要な認証値とその他の接続プロパティを指定します。
Paylocity への接続を確立するには以下を設定します。
このプロパティは、Insert およびUpdate ステートメントを実行するために必須です。この機能が無効になっている場合は必須ではありません。
Paylocity は、RSA 復号化を使用してAES 鍵を復号化します。
これはオプションのプロパティで、IV の値が指定されていない場合、ドライバーは内部でキーを生成します。
OAuth を使用してPaylocity で認証する必要があります。OAuth では認証するユーザーにブラウザでPaylocity との通信を要求します。詳しくは、ヘルプドキュメントのOAuth セクションを参照してください。
Pay Entry API はPaylocity API の他の部分と完全に分離されています。個別のクライアントID とシークレットを使用し、アカウントへのアクセスを許可するにはPaylocity から明示的にリクエストする必要があります。 Pay Entry API を使用すると、個々の従業員の給与情報を自動的に送信できます。 Pay Entry API によって提供されるものの性質が非常に限られているため、CData では個別のスキーマを提供しないことを選択しましたが、UsePayEntryAPI 接続プロパティを介して有効にできます。
UsePayEntryAPI をtrue に設定する場合は、CreatePayEntryImportBatch、MergePayEntryImportBatch、Input_TimeEntry、およびOAuth ストアドプロシージャのみ利用できることに注意してください。 製品のその他の機能を使用しようとするとエラーが発生します。また、OAuthAccessToken を個別に保存する必要があります。これは、この接続プロパティを使用するときに異なるOAuthSettingsLocation を設定することを意味します。
SharePoint はOData 3.0 データソースを消費します。[Settings]->[Server]をクリックし、[Default OData Version]メニューで[OData 3.0]を選択すると、SharePoint との互換性を得るためにAPI Server を構成できます。
次に、[Settings]->[Resources]をクリックしてAPI Server にアクセスを許可するPaylocity エンティティを選択できます。
作成するOData サービスを決定したら、[Settings]->[Users]をクリックしてユーザーを承認します。API Server は、認証トークンベースの認証を使用して主要な認証スキームをサポートします。IP アドレスに基づいてアクセスを制限することもできます。デフォルトでは、ローカルマシンへの接続のみが制限されています。SSL を使用して、接続を認証及び暗号化することができます。
外部コンテンツタイプとは、SharePoint アプリからPaylocity へのコア接続を提供するスキーマです。任意のOData クエリのスキーマを作成できます。$sharepoint クエリ文字列パラメータを使用して、必要なオプションを渡すことができます。以下は、.ect ファイルでスキーマを返すリクエストの例です。
https://my-server:8032/api.rsc/Employee?$sharepoint=AuthMode:Passthrough&@authtoken=my-authtoken
簡単にするために、authtoken はクエリ文字列で渡され、.ect のリクエストを認証することに注意してください。これはデフォルトでは有効になっていないため、この方法を使用してAPI Server への認証を行う場合は、settings.cfg ファイルに次のようなエントリを追加する必要があります。
[Application]
AllowAuthtokenInUrl = true
settings.cfg ファイルはデータディレクトリにあります。.NET エディションでは、データディレクトリはアプリケーションルートのapp_data サブフォルダにあります。Java エディションでは、データディレクトリの場所はオペレーティングシステムによって異なります。
.ect を作成したら、以下のステップに従って、SharePoint Online またはオンプレミスのSharePoint インストールにインポートできます。
SharePoint サーバーの全体管理ポータルに移動し、リンクをクリックしてサービスアプリケーションを管理します。 表示されるページで[Business Data Connectivity Service]をクリックします。メニューで[External Content Types]を選択し、[Import]をクリックします。[BDC Model]セクションで[Choose File]をクリックし、ダイアログで.ect ファイルを選択します。
SharePoint 管理センターで、クイック起動メニューから[BCS]をクリックし、[Manage BDC Models and External Content Types]をクリックします。表示されるページのメニューで[External Content Types]を選択し、[Import]をクリックします。[BDC Model]セクションで[Choose File]をクリックます。
Paylocity へのアクセスと変更が可能なSharePoint アプリを作成できます。
SharePoint には、OData ソースの外部リストから取得できるデータの量にリミットがあります。外部リストは、デフォルトで30 項目のページに結果を表示します。ページングサイズを変更するには、デフォルトビューの設定で[Item Limit]プロパティを設定できます。もしくはカスタムWeb パーツを作成し、外部リストのデータを表示することもできます。
SharePoint 2013 では、外部データソースへの要求は、バンドのスロットルコントロールによって制限されます。これは、Set-SPBusinessDataCatalogThrottleConfig コマンドを実行します。SharePoint Online では、外部データソースへの要求がServer Resource Quota とスロットルコントロールによって制限されます。これを回避するためにデータのリクエストにフィルタを適用できます。
API Server は、返される行数のデフォルトの制限を500 に設定します。$sharepoint クエリ文字列パラメータにlimit オプションを追加し、その値を0 に設定することで、この制限を無効にできます。
外部コンテンツタイプにアクセスするためにパススルー認証を使用するには、AuthMode オプションをパススルーに設定します。
Kerberos 認証を使用している場合は、これらのユーザーをAPI Server に追加する必要があります。 Kerberos 認証を使用していない場合は、NTLM などの別の形式のWindows 認証を使用している可能性があります。
ユーザーがNTLM 認証を介して認証し、SharePoint のBusiness Connectivity Service (BCS) でパススルー認証を使用している場合、SharePoint はデフォルトのIIS アカウントを使用して外部Web サービスに接続します。 このアカウントは、多くの場合NT AUTHORITY\IUSR アカウントです。 このユーザーにCData API Server へのアクセスを許可します。
API Server でWindows 認証を有効にするためのガイドについては、ヘルプドキュメントを参照してください。
次のセクションでは、はじめにAPI Server に追加されたユーザーの資格情報を使用し、API Server に対してSharePoint ユーザーを認証するセキュアストアターゲットアプリケーションを作成します。次に、外部コンテンツタイプを作成し、セキュアストアの資格情報で認証するように構成します。
ターゲットアプリケーションを作成したら、API Server ユーザーの資格情報をセキュアストアに保存します。
次に、新しい接続設定オブジェクトを作成します。
最後に、外部コンテンツタイプを作成し、SharePoint Online にインポートして外部リストを作成します。
https://my-server/api.rsc/Employee?$filter=EmployeeId eq '1234'&$sharepoint=AuthMode:Credentials,TargetApplicationId:my-target-application-Id,ODataConnectionSettingsId:my-odata-connection-settings-Id
新しいセキュアストアターゲットアプリケーションを作成したら、以下のステップに従ってSharePoint のユーザーがAPI Server にアクセスするときに提供する資格情報を設定します。
SharePoint 管理シェルのインスタンスを開き、新しいSharePoint 接続オブジェクトを初期化します。接続オブジェクトはサイト固有のものであることに注意してください。
New-SPODataConnectionSetting -AuthenticationMode Credentials -ServiceAddressURL http://my-server/api.rsc -ServiceContext http://myspsite/ -Name MyODataConnectionSettingsId -SecureStoreTargetApplicationId my-target-application-Id
以下の出力は、コマンドが正常に実行されたことを示しています。
最後のステップでは、SharePoint で公開するテーブルの外部コンテンツタイプを作成し、セキュアストアからの資格情報で認証するように構成してからSharePoint にインポートします。
http://my-server/api.rsc/Account?$filter=Industry eq 'Floppy Disks'&$sharepoint=AuthMode:Credentials,TargetApplicationId:my-target-application-Id,ODataConnectionSettingsId:my-odata-connection-settings-Id