UI/UX 特化ローコード開発ツール NEXACRO BEYOND を使ってZuora と連携したアプリを開発する方法

杉本和也
杉本和也
リードエンジニア
CData API Server を使ってZuora のデータのOData API エンドポイントを作成して、NEXACRO BEYOND からZuora のデータを使ったアプリを作成する方法。



NEXACRO BEYOND は UI/UX に特化したローコード開発ツールおよびその実行基盤です。この記事では、CData API Server を経由して NEXACRO BEYOND からZuora に連携し、アプリを開発する方法を紹介します。

CData API Server は、Zuora のデータの仮想OData インターフェースを提供し、NEXACRO BEYOND からリアルタイムにZuora データへ連携することができます。

API Server の設定

以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなZuora OData サービスを作成していきましょう。

Zuora への接続

Nexacro からZuora のデータを操作するには、まずZuora への接続を作成・設定します。

  1. API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。 接続を追加
  2. 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「Zuora」を選択します。
  3. 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
    CData コネクタの追加方法はこちら >>
  4. それでは、Zuora への接続設定を行っていきましょう! 接続設定
  5. 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 サービスを使用します。デフォルトでは、ZuoraServiceAQuADataExport に設定されています。

    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回再試行可能で、その後失敗として返されます。
  6. 接続情報の入力が完了したら、「保存およびテスト」をクリックします。

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 サービスを使用します。デフォルトでは、ZuoraServiceAQuADataExport に設定されています。

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回再試行可能で、その後失敗として返されます。

API Server のユーザー設定

次に、API Server 経由でZuora にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。

  1. 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
  2. 次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
  3. その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。

Zuora 用のAPI エンドポイントの作成

ユーザーを作成したら、Zuora のデータ用のAPI エンドポイントを作成していきます。

  1. まず、「API」ページに移動し、 「 テーブルを追加」をクリックします。
  2. アクセスしたい接続を選択し、次へをクリックします。
  3. 接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。

OData のエンドポイントを取得

以上でZuora への接続を設定してユーザーを作成し、API Server でZuora データのAPI を追加しました。これで、OData 形式のZuora データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。

プロジェクトの作成

Web API の準備が整ったのでNEXACRO BEYOND によるアプリケーション開発を進めていきます。NEXACRO BEYOND のアプリケーションは NEXACRO Studio というツールを用いて開発します。

  1. まず、NEXACRO Studio を立ち上げて新しいプロジェクトを作成しましょう。
  2. 任意の名称でProject を作成します。
  3. 作成するアプリケーションの種類は今回はDesktop としました。
  4. Template から「Full」を選択して、「Finish」をクリックします。

Form の作成

プロジェクトを作成したら、一覧画面を表示するためのForm を作成しておきます。

  1. 「File」→「New」→「Form(.xfdl)」を選択し
  2. 任意の名称でEmpty Form を作成します。
  3. 以下のようにフォームが表示できればOKです。

DataObject の作成

続いてWeb API との通信の部分を作り込んでいきます。NEXACRO BEYOND ではDataObject という機能を用いて、JSON フォーマットのWeb API との通信やデータ制御を行うようになっています。

  1. まず「DataObject」を画面に配置します。
  2. DataObject を配置すると、Invisible Object の一覧に配置したDataObject が表示されるので右クリックから「Edit」を選択します。
  3. このJson Content Editor でJSON のオブジェクト構造を確認します。ここで先ほどCData API Server で定義したリソースのエンドポイントを指定します。その際にクエリパラメータでの認証も入力しておきましょう。
  4. 併せて、今回はアプリケーションを実行したときに通信が行われるように「preload」を「true」に指定しておきました。

Dataset を構成する

今回は最終的に一覧画面を作るわけですが、一覧画面のコンポーネントはJSON のように不定形なオブジェクトだとバインディングすることができません。

そこで、一度DataObject を「Dataset」という画面上で利用できるオブジェクトにマッピングしてあげた上で、UI 上で表示できるようにします。

  1. 「Dataset」を先ほどと同じように画面に配置します。
  2. 作成したDataset の「binddataobject」で先ほど作成したDataObject を選択し、次に「dataobjectpath」を編集します。
  3. 以下のようなData Path Editor という画面で、JSON のオブジェクト構造をどのようにマッピングするかを構成できます。
  4. CData API Server で作成されたWeb API「$.value」というJSON Path でレコードに分解できます。そのため DataObject Path に「$.value [*]」と入力して、リロードし、各カラムをマッピングさせます。

Grid の作成

最後に一覧表示用のGrid を配置して、取得したデータを表示してみましょう。

  1. Grid をキャンパス上に配置します。
  2. Grid を配置後、先ほど定義したDataset をGrid 上にドラッグ・アンド・ドロップで持っていくと、以下のよう一覧画面が表示されます。

このように、CData API Server を経由することで、API 側の複雑な仕様を意識せずにAPI 連携アプリをNEXACRO BEYOND で開発できます。他にも多くのデータソースに対応するCData API Server の詳細をこちらからご覧ください。