クラス階層
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);を使用してください。
項目値を設定する際、設定値が、設定する項目のデータ型であることを確認してください。