クラス階層 - Python SDK

すべてのZoho CRMエンティティーは、特定のエンティティーに適用可能なクラス、メソッド、インスタンス変数を持つモジュールとしてモデル化されます。ZCRMRestClientはPython SDKの基本クラスです。ZCRMRestClientには、他のさまざまなZoho CRMエンティティーのインスタンスを取得するためのメソッドがあります。これはRestClientモジュールに含まれます。

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

SDKのクラス関係と階層は、Zoho CRM内のエンティティー階層に従います。さまざまなZoho CRMエンティティーのクラス階層を以下に示します。

階層に表示されるように、すべてのエンティティークラスには、独自のプロパティーを取得し、API呼び出しを通じて直接の子エンティティーのデータを取得するためのインスタンス変数があります。

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

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

注:

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

つまり

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

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

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

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

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

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

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