【ノーコード】SharePoint External Lists でSage Intacct のデータにアクセス
本記事で紹介している手法は、2023年現在ご利用いただけなくなっております。SharePoint リストへの外部データの連携については、以下の記事の方法をご確認ください。
CData Arc を使ってSQL Server のデータをSharePoint Online のリストにノーコードで連携CData API Server およびADO.NET Provider for SageIntacct (または他の250+ ADO.NET Providers) を組み合わせて利用することで、SharePoint でSage Intacct にアクセス および更新することができます。 この記事では、常に最新状態のSage Intacct を外部リクエストとして作成する方法を説明します。外部コンテンツタイプをテンプレートとして使用し、外部リストを作成します。外部コンテンツタイプは、モバイルおよびその他のオンラインアプリケーション用のリアルタイムデータストリーミングプロトコルであるOData を介した接続を可能にします。API Server は、Sage Intacct フィードのOData プロデューサーです。
API Server を設定した後、Sage Intacct に接続できる外部リストの作成方法は、以下の基本的な3つのステップによって構成されます。
この記事は、以下のタスクを実行する方法についても説明します。
Sage Intacct データ連携について
CData は、Sage Intacct のライブデータにアクセスし、統合するための最も簡単な方法を提供します。お客様は CData の接続機能を以下の目的で使用しています:
- API の更新や変更を気にすることなく、Sage Intacct にアクセスできます。
- 追加の構成手順なしで、Sage Intacct のカスタムオブジェクトやフィールドにアクセスできます。
- Basic 認証による組み込み Web サービス認証情報を使用して、Sage Intacct にデータを書き戻すことができます。
- SQL ストアドプロシージャを使用して、ベンダーの承認・却下、エンゲージメントの挿入、カスタムオブジェクトやフィールドの作成・削除などの機能的な操作を実行できます。
ユーザーは、Tableau、Power BI、Excel などの分析ツールと Sage Intacct を統合し、当社のツールを活用して Sage Intacct データをデータベースやデータウェアハウスにレプリケートしています。
他のお客様が CData の Sage Intacct ソリューションをどのように使用しているかについては、ブログをご覧ください:Drivers in Focus: Accounting Connectivity
はじめに
API Server の設定
以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなSage Intacct OData サービスを作成していきましょう。
Sage Intacct への接続
Salesforce Connect からSage Intacct のデータを操作するには、まずSage Intacct への接続を作成・設定します。
- API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。
- 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「Sage Intacct」を選択します。
- 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
CData コネクタの追加方法はこちら >> - それでは、Sage Intacct への接続設定を行っていきましょう!
-
Sage Intacct 接続プロパティの取得・設定方法
独自のWeb サービスクレデンシャル、埋め込みクレデンシャル(Basic 認証)、またはOkta クレデンシャルのいずれかを使用して、Sage Intacct への接続を確立できます。
Sage Intacct への認証
Sage Intacct は2種類の認証をサポートします。Basic およびOkta です。選択した認証方法に関連するプロパティを設定して、接続を構成します。
Basic 認証
Basic 認証スキームでは、埋め込みクレデンシャルを使用してデータの読み書きが可能です。オプションとして、独自のWeb サービスクレデンシャルを指定することもできます。
Basic 認証を使用して認証を行うには、以下のプロパティを設定します。
- AuthScheme:Basic。
- CompanyID:Sage Intacct にログインする際に会社を識別するために使用するID。
- User:Sage Intacct へのログインに使用するログイン名。
- Password:ログインクレデンシャル用のパスワード。
- (オプション)SenderID およびSenderPassword:Web サービスのSender ID およびパスワード(独自のWeb サービスクレデンシャルを使用している場合のみ)。
独自のWeb サービスクレデンシャルではなく、埋め込みクレデンシャルを使用する場合は、以下を実行する必要があります:
- Web サービスダッシュボードで、会社 -> 会社情報 -> セキュリティタブに移動します。
- Web サービス認証に"CData" を追加します。これは大文字・小文字が区別されます。これを行うには、会社 -> 会社情報(新しいUI では、設定 -> 会社)-> セキュリティ -> Web サービス認証 / 編集に移動します。
- 接続情報の入力が完了したら、「保存およびテスト」をクリックします。
Sage Intacct 接続プロパティの取得・設定方法
独自のWeb サービスクレデンシャル、埋め込みクレデンシャル(Basic 認証)、またはOkta クレデンシャルのいずれかを使用して、Sage Intacct への接続を確立できます。
Sage Intacct への認証
Sage Intacct は2種類の認証をサポートします。Basic およびOkta です。選択した認証方法に関連するプロパティを設定して、接続を構成します。
Basic 認証
Basic 認証スキームでは、埋め込みクレデンシャルを使用してデータの読み書きが可能です。オプションとして、独自のWeb サービスクレデンシャルを指定することもできます。
Basic 認証を使用して認証を行うには、以下のプロパティを設定します。
- AuthScheme:Basic。
- CompanyID:Sage Intacct にログインする際に会社を識別するために使用するID。
- User:Sage Intacct へのログインに使用するログイン名。
- Password:ログインクレデンシャル用のパスワード。
- (オプション)SenderID およびSenderPassword:Web サービスのSender ID およびパスワード(独自のWeb サービスクレデンシャルを使用している場合のみ)。
独自のWeb サービスクレデンシャルではなく、埋め込みクレデンシャルを使用する場合は、以下を実行する必要があります:
- Web サービスダッシュボードで、会社 -> 会社情報 -> セキュリティタブに移動します。
- Web サービス認証に"CData" を追加します。これは大文字・小文字が区別されます。これを行うには、会社 -> 会社情報(新しいUI では、設定 -> 会社)-> セキュリティ -> Web サービス認証 / 編集に移動します。
API Server のユーザー設定
次に、API Server 経由でSage Intacct にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。
- 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
-
次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
-
その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。
Sage Intacct 用のAPI エンドポイントの作成
ユーザーを作成したら、Sage Intacct のデータ用のAPI エンドポイントを作成していきます。
-
まず、「API」ページに移動し、
「 テーブルを追加」をクリックします。
-
アクセスしたい接続を選択し、次へをクリックします。
-
接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。
OData のエンドポイントを取得
以上でSage Intacct への接続を設定してユーザーを作成し、API Server でSage Intacct データのAPI を追加しました。これで、OData 形式のSage Intacct データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。
Sage Intacct 接続プロパティの取得・設定方法
独自のWeb サービスクレデンシャル、埋め込みクレデンシャル(Basic 認証)、またはOkta クレデンシャルのいずれかを使用して、Sage Intacct への接続を確立できます。
Sage Intacct への認証
Sage Intacct は2種類の認証をサポートします。Basic およびOkta です。選択した認証方法に関連するプロパティを設定して、接続を構成します。
Basic 認証
Basic 認証スキームでは、埋め込みクレデンシャルを使用してデータの読み書きが可能です。オプションとして、独自のWeb サービスクレデンシャルを指定することもできます。
Basic 認証を使用して認証を行うには、以下のプロパティを設定します。
- AuthScheme:Basic。
- CompanyID:Sage Intacct にログインする際に会社を識別するために使用するID。
- User:Sage Intacct へのログインに使用するログイン名。
- Password:ログインクレデンシャル用のパスワード。
- (オプション)SenderID およびSenderPassword:Web サービスのSender ID およびパスワード(独自のWeb サービスクレデンシャルを使用している場合のみ)。
独自のWeb サービスクレデンシャルではなく、埋め込みクレデンシャルを使用する場合は、以下を実行する必要があります:
- Web サービスダッシュボードで、会社 -> 会社情報 -> セキュリティタブに移動します。
- Web サービス認証に"CData" を追加します。これは大文字・小文字が区別されます。これを行うには、会社 -> 会社情報(新しいUI では、設定 -> 会社)-> セキュリティ -> Web サービス認証 / 編集に移動します。
SharePoint はOData 3.0 データソースに対応しています。[Settings]->[Server]をクリックし、[デフォルトのOData バージョン]メニューで[OData 3.0]を選択してください。
外部コンテンツタイプを作成
外部コンテンツタイプとは、SharePoint アプリからSage Intacct へのコア接続を提供するスキーマです。任意のOData クエリのスキーマを作成できます。$sharepoint クエリ文字列パラメータを使用して、必要なオプションを渡すことができます。以下は、.ect ファイルでスキーマを返すリクエストの例です。
https://my-server:8032/api.rsc/Customer?$sharepoint=AuthMode:Passthrough&@authtoken=my-authtoken
簡単にするために、authtoken はクエリ文字列で渡され、.ect のリクエストを認証することに注意してください。これはデフォルトでは有効になっていないため、この方法を使用してAPI Server への認証を行う場合は、settings.cfg ファイルに次のようなエントリを追加する必要があります。
[Application] AllowAuthtokenInUrl = true
settings.cfg ファイルはデータディレクトリにあります。.NET エディションでは、データディレクトリはアプリケーションルートのapp_data サブフォルダにあります。Java エディションでは、データディレクトリの場所はオペレーティングシステムによって異なります。
- Windows:C:\ProgramData\CData
- Unix or Mac OS X: ~/cdata
外部コンテンツタイプをインポート
.ect を作成したら、以下のステップに従って、SharePoint Online またはオンプレミスのSharePoint インストールにインポートできます。
SharePoint 2013
SharePoint サーバーの全体管理ポータルに移動し、リンクをクリックしてサービスアプリケーションを管理します。 表示されるページで[Business Data Connectivity Service]をクリックします。メニューで[External Content Types]を選択し、[Import]をクリックします。[BDC Model]セクションで[Choose File]をクリックし、ダイアログで.ect ファイルを選択します。
SharePoint Online
SharePoint 管理センターで、クイック起動メニューから[BCS]をクリックし、[Manage BDC Models and External Content Types]をクリックします。表示されるページのメニューで[External Content Types]を選択し、[Import]をクリックします。[BDC Model]セクションで[Choose File]をクリックます。
外部リストを作成
Sage Intacct へのアクセスと変更が可能なSharePoint アプリを作成できます。
- SharePoint サイトに移動し、[Site Contents]->[Add an App]->[External List]と進みます。
- [Select External Content]をクリックします。 アイコンを入力し、前のセクションで作成した外部コンテンツタイプを選択します。
- [Create]をクリックします。
結果をリミット
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 ユーザーを認証するセキュアストアターゲットアプリケーションを作成します。次に、外部コンテンツタイプを作成し、セキュアストアの資格情報で認証するように構成します。
SharePoint Online
- SharePoint Online 管理センターで、クイック起動バーから[secure store]をクリックし、[New]をクリックします。
- [Target Application Settings]セクションで、ターゲットアプリケーションId、表示名、連絡先の電子メールを入力します。
- [Credential Fields]セクションで、API Server の資格情報を追加します。
- [Target Application Administrators]セクションで、外部コンテンツタイプの接続設定にアクセスできる管理者を選択します。[SharePoint Online]の管理者アカウントは、通常ここで指定されます。 administrator is usually specified here.
- [Members]セクションでSage Intacct へのアクセスを許可されているSharePoint のユーザーを入力します。
ターゲットアプリケーションを作成したら、API Server ユーザーの資格情報をセキュアストアに保存します。
- クイック起動バーで[secure store]をクリックします。
- ターゲットアプリケーションのメニューで[Set Credentials]をクリックします。
- API Server にユーザーのユーザー名とパスワードを入力します。
次に、新しい接続設定オブジェクトを作成します。
- クイック起動バーから[BCS]をクリックし、オンラインサービスへの接続を管理するオプションを選択します。
- [Add]をクリックします。接続に名前を付け、OData エンドポイントのURL (https://my-server/api.rsc) を入力します。
- SharePoint に保存されている資格情報を使用するオプションを選択します。作成したターゲットアプリケーションのアプリケーションId を入力します。
最後に、外部コンテンツタイプを作成し、SharePoint Online にインポートして外部リストを作成します。
-
データを要求し、$sharepoint クエリ文字列パラメータで必要なオプションを指定して外部コンテンツタイプを生成します。AuthMode オプションをCredentials に設定します。ターゲットアプリケーションId と接続設定オブジェクトのId を指定します。例:
https://my-server/api.rsc/Customer?$filter=CustomerId eq '12345'&$sharepoint=AuthMode:Credentials,TargetApplicationId:my-target-application-Id,ODataConnectionSettingsId:my-odata-connection-settings-Id
- 結果の.ect ファイルをインポートします。クイック起動バーからBCS を開き、リンクをクリックしてBDC モデルと外部コンテンツタイプを管理します。[Import]をクリックします。
- 外部リストを作成できます。
SharePoint 2013
- SharePoint サイトの中央管理領域を参照し、リンクをクリックしてサービスアプリケーションを管理します。
- [Secure Store Service]をクリックし、[New]をクリックします。
-
アプリケーションId、表示名、連絡先の電子メールを入力し、新しいセキュアストアターゲットアプリケーションを構成します。ターゲットアプリケーションタイプをGroup に設定します。
-
次のページで、ユーザーがユーザー名とパスワードを入力したときに表示するフィールド名とフィールドタイプを追加します。ユーザー名とパスワードのフィールドタイプを選択します。
-
次に、[Target Application Administrators]セクションで、外部コンテンツタイプの接続設定へのアクセスを許可されている管理者を選択します。
[Members]セクションでAPI Server ユーザーの資格情報との接続を許可されているSharePoint のユーザーを入力します。
新しいセキュアストアターゲットアプリケーションを作成したら、以下のステップに従ってSharePoint のユーザーがAPI Server にアクセスするときに提供する資格情報を設定します。
-
ターゲットアプリケーションのメニューで[Set Credentials]をクリックします。
-
表示されるメニューでAPI Server ユーザーのユーザー名とパスワード(authtoken) を入力します。
-
SharePoint 管理シェルのインスタンスを開き、新しいSharePoint 接続オブジェクトを初期化します。接続オブジェクトはサイト固有のものであることに注意してください。
New-SPODataConnectionSetting -AuthenticationMode Credentials -ServiceAddressURL http://my-server/api.rsc -ServiceContext http://myspsite/ -Name MyODataConnectionSettingsId -SecureStoreTargetApplicationId my-target-application-Id以下の出力は、コマンドが正常に実行されたことを示しています。
最後のステップでは、SharePoint で公開するテーブルの外部コンテンツタイプを作成し、セキュアストアからの資格情報で認証するように構成してから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
- 外部コンテンツタイプをSharePoint にインポートするには、ブラウザでSharePoint 中央管理ポータルをインストールし、リンクをクリックしてサービスアプリケーションを管理します。
- 表示されるページで[Business Data Connectivity Service]をクリックします。
- [Import]をクリックし、ダイアログで.ect ファイルを選択します。
- これで、外部リストを作成できます。SharePoint サイトの[Site Contents]ページでボタンをクリックしてアプリを追加し、アイコンをクリックして外部コンテンツタイプを選択します。