Hierarquia de classes

Todas as entidades do Zoho CRM são modeladas como classes com membros e métodos aplicáveis a essa entidade específica.

  • ZCRMRestClient é a classe básica do SDK.
  • Essa classe tem métodos para obter instâncias de várias outras entidades do Zoho CRM.
  • As relações de classe e a hierarquia do SDK segue a hierarquia da entidade dentro do Zoho CRM.
  • Cada entidade de classe tem funções para buscar suas próprias propriedades e buscar dados de suas entidades-filho imediatas por uma chamada da API. Por exemplo, um módulo do objeto do Zoho CRM (ZCRMModule) terá funções de membro para obter propriedades de um módulo como nome de exibição, ID de módulo etc. E também terá funções para buscar todos os objetos filhos (como ZCRMLayout).

A hierarquia de classe de várias entidades do Zoho CRM é mostrada como:

Objetos da instância

Nem sempre é eficaz seguir a hierarquia de classe completa desde o topo para buscar dados de uma entidade em algum nível inferior, pois isso pode envolver chamadas de API em cada um dos níveis. Para lidar com isso, cada classe de entidade terá um método getInstance() para obter seu próprio objeto fictício e métodos para obter os objetos fictícios de suas entidades filhas.

Nota:

  • Métodos
  • getInstance() não têm quaisquer uma de suas propriedades preenchidas, pois não disparam uma chamada de API. Isso retorna apenas um objeto fictício que deve ser usado somente para acessar métodos não estáticos da classe.

Resumindo,

  • ZCRMRestClient.getModule("Contatos") deve retornar o módulo Contatos real, que tem todas as propriedades do módulo Contatos preenchidas por uma chamada de API.
  • ZCRMRestClient.getModuleInstance("Contatos") deve retornar um objeto ZCRMModule fictício que faria referência ao módulo Contatos sem qualquer propriedade preenchida, pois não faz uma chamada de API.

Portanto, para obter registros de um módulo, não é preciso iniciar usando  ZCRMRestClient. Em vez disso, você pode obter uma instância ZCRMModule com ZCRMModule.getInstance() e, então, chamar seu método não estático getRecords() pela instância criada. Isso evitaria a chamada de API, que, de outro modo, teria sido acionada para preencher o objeto ZCRMModule.

Acesso a propriedades do registro

Como as propriedades do registro são dinâmicas entre os módulos, temos apenas os campos comuns (como createdTime, createdBy, proprietário etc.) como membros padrão do ZCRMRecord. Todas as outras propriedades de registro estão disponíveis como um mapa no objeto ZCRMRecord .

Para acessar os valores de campo individuais de um registro, use os métodos getter e setter disponíveis. As chaves do mapa de propriedades de registro são nomes de API dos campos do módulo. Os nomes de API de todos os campos de todos os módulos estão disponíveis em:

Configuração → Marketplace → APIs → API do CRM → Nomes de API.

  • Para obter um valor de campo, use record.getFieldValue(fieldAPIName);
  • Para definir um valor de campo, use record.setFieldValue(fieldAPIName, newValue);
    Ao definir um valor de campo, verifique se o valor definido é do tipo de dados do campo ao qual ele será definido.