クラス階層

Zoho CRMのすべてのエンティティーは、その特定のエンティティーに適用可能なメンバーとメソッドを持つクラスとしてモデル化されます。

  • ZCRMRestClientはSDKの基本クラスです。
  • このクラスには、他のさまざまなZoho CRMエンティティーのインスタンスを取得するためのメソッドがあります。
  • SDKのクラス関係と階層は、Zoho CRM内のエンティティー階層に従います。
  • 各クラスエンティティーには、独自のプロパティーを取得し、API呼び出しを通じて直接の子エンティティーのデータを取得するための関数があります。たとえば、Zoho CRMタブ(ZCRMModule)オブジェクトには、表示名タブIDなどのタブのプロパティーを取得するためのメンバー関数があり、さらに、そのすべての子オブジェクトを取得する関数もあります(ZCRMLayoutなど)。

さまざまなZoho CRMエンティティーのクラス階層は次のように表されます。

インスタンスオブジェクト

すべてのレベルでのAPI呼び出しが含まれるため、最上位からクラス階層全体に沿って、下位レベルでエンティティーのデータを取得することは必ずしも効果的ではありません。これを処理するために、すべてのエンティティークラスには、それ自体のダミーオブジェクトを取得するためのgetInstance()メソッドと、その子エンティティーのダミーオブジェクトを取得するためのメソッドがあります。

注:

  • getInstance()メソッドはAPI呼び出しを実行しないため、そのプロパティーに入力されるものはありません。これは、クラスの非静的メソッドへのアクセスにのみ使用されるダミーオブジェクトを返すだけです。

つまり

  • ZCRMRestClient.getModule("Contacts")は、実際の[連絡先]タブを返します。このタブには、API呼び出しによって入力された[連絡先]タブのすべてのプロパティーが含まれています。
  • ZCRMRestClient.getModuleInstance("Contacts")は、[連絡先]タブを参照するダミーのZCRMModuleオブジェクトを返しますが、API呼び出しは行われないため、プロパティーは入力されていません。

そのため、タブからデータを取得するために、ZCRMRestClientから開始する必要はありません。代わりに、ZCRMModule.getInstance()を使用してZCRMModuleインスタンスを取得してから、作成されたインスタンスからその非静的なgetRecords()メソッドを呼び出すことができます。これにより、ZCRMModuleオブジェクトを作成するために実行されるはずだったAPI呼び出しが回避されます。

データのプロパティーへのアクセス

データのプロパティーはタブにより異なるため、ZCRMRecordのデフォルトメンバーとして、createdTime、createdBy、ownerなどの共通項目のみが指定されています。その他のすべてのデータプロパティーは、ZCRMRecordオブジェクトのマップとして使用できます。

データの個々の項目値にアクセスするには、使用可能なgetterメソッドとsetterメソッドを使用してください。データのプロパティーのマップのキーは、タブの項目のAPI名です。すべてのタブのすべての項目のAPI名は、

[設定]→[マーケットプレイス]→[API]→[CRM API]→[API名]で利用できます。

  • 項目値を取得するには、 record.getFieldValue(fieldAPIName);を使用してください。
  • 項目値を設定するには、record.setFieldValue(fieldAPIName, newValue);を使用してください。
    項目値を設定する際、設定値が、設定する項目のデータ型であることを確認してください。