各製品の資料を入手。
詳細はこちら →OData SDK for PHP を使ってZuora のデータを取得
CData Connect Cloud を使えば、OData を使ってZuora のデータにアクセスできます。CData Connect Cloud とOData PHP SDK を利用することで、Zuora のエンティティをPHP で取得して、オブジェクトとしてモデル化できます。
最終更新日:2022-11-25
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
CData Connect Cloud はZuora のデータをWeb サービスとして公開します。 この記事の手順を実行することで、Zuora のデータをPHP オブジェクトとして扱うことができるようになります。
CData Connect Cloud はZuora のデータへのクラウドベースのOData インターフェースを提供し、ODataPHP SDK からZuora のデータへのリアルタイム連携を実現します。
Connect Cloud アカウントの取得
以下のステップを実行するには、CData Connect Cloud のアカウントが必要になります。こちらから製品の詳しい情報とアカウント作成、30日間無償トライアルのご利用を開始できますので、ぜひご利用ください。
Connect Cloud を構成
ODataPHP SDK でZuora のデータを操作するには、Connect Cloud からZuora に接続し、コネクションにユーザーアクセスを提供してZuora のデータのOData エンドポイントを作成する必要があります。
Zuora に接続したら、目的のテーブルのOData エンドポイントを作成します。
(オプション)新しいConnect Cloud ユーザーの追加
必要であれば、Connect Cloud 経由でZuora に接続するユーザーを作成します。
- 「Users」ページに移動し、 Invite Users をクリックします。
- 新しいユーザーのE メールアドレスを入力して、 Send をクリックしてユーザーを招待します。
- 「Users」ページからユーザーを確認および編集できます。
パーソナルアクセストークンの追加
OAuth 認証をサポートしていないサービス、アプリケーション、プラットフォーム、またはフレームワークから接続する場合は、認証に使用するパーソナルアクセストークン(PAT)を作成できます。きめ細かなアクセス管理を行うために、サービスごとに個別のPAT を作成するのがベストプラクティスです。
- Connect Cloud アプリの右上にあるユーザー名をクリックし、「User Profile」をクリックします。
- 「User Profile」ページで「Access Token」セクションにスクロールし、 Create PAT をクリックします。
- PAT の名前を入力して Create をクリックします。
- パーソナルアクセストークンは作成時にしか表示されないため、必ずコピーして安全に保存してください。
Connect Cloud からZuora に接続
CData Connect Cloud では、簡単なクリック操作ベースのインターフェースでデータソースに接続できます。
- Connect Cloud にログインし、 Add Connection をクリックします。
- 「Add Connection」パネルから「Zuora」を選択します。
-
必要な認証プロパティを入力し、Zuora に接続します。
Zuora はユーザー認証にOAuth 標準を使用しています。OAuth 認証ついて詳しくは、オンラインヘルプドキュメントを参照してください。
Tenant プロパティの設定
プロバイダへの有効な接続を作成するには、アカウントの設定と合致するテナント値を1つ選択する必要があります。以下は、利用可能なオプションのリストです。- USProduction:リクエストはhttps://rest.zuora.com に送信されます。
- USAPISandbox:リクエストはhttps://rest.apisandbox.zuora.com に送信されます。
- USPerformanceTest:リクエストはhttps://rest.pt1.zuora.com に送信されます。
- EUProduction:リクエストはhttps://rest.eu.zuora.com に送信されます。
- EUSandbox:リクエストはhttps://rest.sandbox.eu.zuora.com に送信されます。
デフォルトではUSProduction テナントを使用します。
Zuora サービスの選択
データクエリとAQuA API の2つのZuora サービスを使用します。デフォルトでは、ZuoraService はAQuADataExport に設定されています。DataQuery
データクエリ機能は、非同期の読み取り専用SQL クエリを実行することで、Zuora テナントからのデータのエクスポートを実現します。 このサービスは、素早く軽量なSQL クエリでの使用を推奨します。制限
- フィルタ適用後の、テーブルごとの入力レコードの最大数: 1,000,000
- 出力レコードの最大数: 100,000
- テナントごとの、実行用に送信される同時クエリの最大数: 5
- テナントごとの、同時クエリの制限に達した後に実行用に送信され、キューに追加されるクエリの最大数: 10
- 1時間単位での、各クエリの最大処理時間: 1
- GB 単位での、各クエリに割り当てられるメモリの最大サイズ: 2
- Index Join を使用する際のインデックスの最大値。言い換えれば、Index Join を使用する際にWHERE 句で使われる一意の値に基づいた、左のテーブルから返されるレコードの最大数: 20.000
AQuADataExport
AQuA API のエクスポートは、すべてのオブジェクト(テーブル)のすべてのレコードをエクスポートするように設計されています。AQuA のクエリジョブには以下の制限があります。制限
- AQuA のジョブ内のクエリが8時間以上実行されている場合、ジョブは自動的に停止されます。
- 停止されたAQuA のジョブは3回再試行可能で、その後失敗として返されます。
- Create & Test をクリックします。
- 「Add Zuora Connection」ページの「Permissions」タブに移動し、ユーザーベースのアクセス許可を更新します。
Connect Cloud にZuora OData エンドポイントを追加する
Zuora に接続したら、目的のテーブルのOData エンドポイントを作成します。
- OData ページに移動し、 Add をクリックして新しいOData エンドポイントを作成します。
- Zuora 接続(例:Zuora1)を選択し、Next をクリックします。
- 使用するテーブルを選択し、「Confirm」をクリックします。
コネクションとOData エンドポイントを設定したら、ODataPHP SDK からZuora のデータに接続できます。
-
まずは、ODataPHP SDK を使用してCData Connect Cloud が公開したWeb サービスに接続するプロキシクラスを作成します。
URI 部分を書き換えて、次のようなコマンドを実行してください。
php C:\PHPLib\ODataphp\PHPDataSvcUtil.php /uri=https://your-server:8032/api.rsc/@your-personal-access-token/ /out=C:\PHPLib\ODataphp\ZuoraEntities.php
このコマンドは、OData エンドポイントが返すメタデータからクラスを定義して、指定したフォルダにクラスの定義を出力します。
CData Connect Cloud およびOData SDK for PHP は、どちらもフォームとWindows 認証をサポートします。CData Connect Cloud はOData エンドポイントへのアクセスが認可されたユーザーの認証に、パーソナルアクセストークンを使用します。パーソナルアクセストークンはHTTP Basic 認証の際に渡したり、OData URL に付加することで使用できます。
認証済みのユーザーは、CData Connect Cloud の管理コンソールのUsers セクションで設定できます。
-
これで、PHP のオブジェクト指向インターフェースを使ってZuora のデータにアクセスできます。以下のコードはInvoices テーブルのレコードを作成してリアルタイムデータを取得し、新しく作成したレコードを表示します。
require_once 'ZuoraEntities.php'; try{ $svc = new CDataAPI(); $invoices = new Invoices(); $invoices->BillingState = 'CA'; $svc->AddToInvoices($invoices); $svc->SetSaveChangesOptions(SaveChangesOptions::None); $svc->SaveChanges(); $response = $svc->invoices()->Execute(); foreach($response->Result as $invoices) echo $invoices->Id.""; } catch (Exception $e) { //CData Connect Cloud からのエラーをキャッチ echo $e->getError(), "\n"; }
おl>