Klassenhierarchie
Alle Zoho CRM-Entitäten werden als Klassen modelliert, die Mitglieder und Methoden für diese Entität aufweisen.
- ZCRMRestClient ist die Basisklasse des SDK.
- Diese Klasse weist Methoden zum Abrufen von Instanzen verschiedener anderer Zoho CRM-Entitäten auf.
- Die Beziehungen zwischen den Klassen und die Hierarchie des SDK folgt der Entitätenhierarchie innerhalb von Zoho CRM.
- Jede Klassenentität verfügt über Funktionen zum Abrufen der eigenen Eigenschaften und zum Abrufen der Daten direkt untergeordneter Entitäten durch einen API-Aufruf. Beispiel: Ein Zoho CRM-Modulobjekt (ZCRMModule) verfügt über Mitgliedsfunktionen zum Abrufen von Moduleigenschaften, wie Anzeigename, Modul-ID usw., sowie über Funktionen zum Abrufen aller untergeordneten Objekte (etwa ZCRMLayout).
Die Klassenhierarchie verschiedener Zoho CRM-Entitäten wird wie folgt abgebildet:

Instanzobjekte
Es ist nicht immer effektiv, der gesamten Klassenhierarchie von oben nach unten zu folgen, um die Daten einer Entität auf einer unteren Ebene abzurufen, da dies zu API-Aufrufen auf jeder Ebene führen würde. Um dies zu vermeiden, verfügt jede Entitätenklasse über die Methode getInstance(), um ein eigenes Dummy-Objekt abzurufen. Außerdem sind Methoden zum Abrufen von Dummy-Objekten untergeordneter Entitäten vorhanden.
Hinweis:
- getInstance()-Methoden würden nicht zum Ausfüllen dieser Eigenschaften führen, da kein API-Aufruf ausgelöst wird. Dies würde nur ein Dummy-Objekt zurückgeben, das nur für den Zugriff auf die nicht statischen Methoden einer Klasse verwendet wird.
Zusammenfassung:
- ZCRMRestClient.getModule("Contacts") würde das eigentliche Modul "Contacts" zurückgeben, das über alle Eigenschaften des Moduls"Contacts" verfügt, die über einen API-Aufruf eingetragen werden.
- ZCRMRestClient.getModuleInstance("Contacts") würde ein ZCRMModule-Dummy-Objekt zurückgeben, das sich auf das Modul "Contacts" bezieht. Die Eigenschaften wären nicht ausgefüllt, da kein API-Aufruf erfolgt.
Um die Datensätze aus einem Modul abzurufen, muss also nicht mit ZCRMRestClientbegonnen werden. Stattdessen können Sie eine Instanz von ZCRMModule mit ZCRMModule.getInstance() abrufen und dann die nicht statische Methode getRecords() der erstellten Instanz aufrufen. Dies würde den API-Aufruf vermeiden, der andernfalls ausgelöst worden wäre, um das Objekt ZCRMModule auszufüllen.
Zugriff auf Datensatzeigenschaften
Da Datensatzeigenschaften modulübergreifend dynamisch sind, wurden nur die allgemeinen Felder wie createdTime, createdBy, owner usw. als Standardmitglieder vonZCRMRecord festgelegt. Alle anderen Datensatzeigenschaften stehen als Übersicht im Objekt ZCRMRecord zur Verfügung.
Für den Zugriff auf die einzelnen Feldwerte eines Datensatzes verwenden Sie die verfügbaren Getter- und Setter-Methoden. Die Schlüssel der Übersicht zu den Datensatzeigenschaften sind die API-Namen der Modulfelder. API-Namen aller Felder aller Module finden sich unter
Setup → Marketplace → APIs → CRM-API → API-Namen.
- Verwenden Sie zum Abrufen eines Feldwerts record.getFieldValue(fieldAPIName).
- Verwenden Sie zum Festlegen eines Feldwerts record.setFieldValue(fieldAPIName, newValue).
Stellen Sie beim Festlegen eines Feldwerts sicher, dass dieser Wert dem Datentyp des betreffenden Felds entspricht.