クラス階層 - C# SDK
すべてのZoho CRMエンティティーは、特定のエンティティーに適用可能なクラス、メソッド、インスタンス変数を持つタブとしてモデル化されます。ZCRMRestClientはC# 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呼び出しが含まれるため、最上位からクラス階層全体に沿って、下位レベルでエンティティーのデータを取得することは必ずしも効果的ではありません。これを処理するために、すべてのエンティティークラスには、それ自体のダミーオブジェクトを取得するためのGetInstance()メソッドと、その子エンティティーのダミーオブジェクトを取得するためのインスタンス変数があります。
注:
- GetInstance()メソッドはAPI呼び出しを実行しないため、そのプロパティーに入力されるものはありません。これは、クラスの非静的メソッドへのアクセスにのみ使用されるダミーオブジェクトを返すだけです。
まとめると、
- ZCRMRestClient.GetInstance().GetModule("Contacts")は、実際の[連絡先]タブを返します。このタブには、API呼び出しによって入力された[連絡先]タブのすべてのプロパティーが含まれています。
- ZCRMRestClient.GetModuleInstance("Contacts")は、[連絡先]タブを参照するダミーのZCRMModuleオブジェクトを返しますが、API呼び出しは行われないため、プロパティーは入力されていません。
そのため、タブからデータを取得するために、ZCRMRestClientからすべての方法を開始する必要はありません。代わりに、ZCRMModule.GetInstance(module_api_name)を使用してZCRMModuleインスタンスを取得してから、作成されたインスタンスからその非静的なGetRecords()メソッドを呼び出すことができます。これにより、ZCRMModuleオブジェクトを作成する際に実行されるはずだったAPI呼び出しが回避されます。
データのプロパティーへのアクセス
データのプロパティーはタブにより異なるため、ZCRMRecordのデフォルトメンバーとして、CreatedTime、CreatedBy、Ownerなどの共通項目のみが指定されています。その他のすべてのデータのプロパティーは、ZCRMRecordオブジェクトのマップとして使用できます。
データの個々の項目値にアクセスするには、使用可能なgetterメソッドとsetterメソッドを使用します。データのプロパティーのマップのキーは、タブの項目のAPI名です。すべてのタブのすべての項目のAPI名は、
[設定]→[マーケットプレイス]→[API]→[CRM API]→[API名]で確認できます。
- 項目値を取得するには、record.GetFieldValue(field_api_name);を使用します。
- 項目値を設定するには、record.SetFieldValue(field_api_name, new_value);を使用します。
項目値を設定する際、設定値が、設定する項目のデータ型であることを確認してください。