Perguntas frequentes sobre Script do cliente

 

1. Onde é possível ver a lista de ZDKs suportados pelo Script do cliente?

A biblioteca do ZDK (Zoho Development Kit, kit de desenvolvimento da Zoho) inclui um rico conjunto de APIs de cliente e Web que amplia o escopo dos aplicativos Zoho. Você pode usá-los para realizar operações de IU e acionar chamadas da REST API. Para visualizar a documentação do ZDK, clique no ícone de ajuda na Biblioteca, na seção Informações do IDE de Script do Cliente.

2. As chamadas da API CRM acionadas pelo Script do Cliente serão contabilizadas nos limites diários de API?

Sim, todas as APIs da Web ZDK no Script do Cliente fazem uma chamada de API para o Zoho CRM e, portanto, cada execução de uma API da Web ZDK afeta os limites da API.

3. Qual seria a maneira correta de definir o valor de um campo de pesquisa por meio do Script do cliente?

É necessário mencionar a ID do registro junto com o nome quando tentar definir o valor para um campo de pesquisa.

Exemplo: Considere que existe um campo de pesquisa Categoria e que o requisito é que ele seja preenchido com base no Produto selecionado pelo usuário. A bateria, o termostato e o interruptor de ignição pertencem à categoria Electrical Switches (Interruptores elétricos). Sensor de nível de combustível, Sensor de luz e Sensor de airbag pertencem à categoria Sensors (Sensores). Ou seja, se o usuário selecionar o produto "Bateria", então o campo de pesquisa Category (Categoria) deve ser preenchido automaticamente como Electrical Switches (Interruptores elétricos). Veja abaixo código para fazer isso.


if (value.name == 'Airbag sensor' || value.name == 'Light sensor' || value.name == 'Fuel level sensor') {
//Populate value for lookup field Category based on the condition
ZDK.Page.getField('Category').setValue({ "id": "4967860000001049208", "name": "Sensors" });   
    }
else if (value.name == 'Ignition Switch' || value.name == 'Thermostat' || value.name == 'Battery') {
//Populate value for lookup field Category  based on the condition
ZDK.Page.getField('Category').setValue({ "id": "4967860000001049217", "name": "Electrical Switches" });
 }

 

4. Como faço para depurar um Script do cliente no Zoho CRM?

Você pode usar a instrução log() para depurar o script. Os resultados da execução desta instrução log() serão exibidos no Messages panel (Painel mensagens) da opção Run (Executar). Além disso, as informações sobre o status de execução, os registros, as mensagens de exceção e o tempo necessário para a execução também serão exibidas. Por exemplo, considere o seguinte script. Há duas instruções de registro. Você pode visualizar a saída das instruções de registro no painel de mensagens da opção Run (Executar).


var user = ZDK.Apps.CRM.Users.fetchById($Crm.user.id);
var field_obj = ZDK.Page.getField('Phone_Number');
log(field_obj.getValue());
log("Profile name of the user is "+ user.profile.name);
if(user.profile.name != 'Administrator')
{
    field_obj.mask({ character: '*', length: 5, reverse: true });
}

 

Qualquer operação do CRM realizada dentro do modo de execução será refletida em sua conta Zoho CRM.

5. O Script do cliente é compatível com outros idiomas além do JavaScript?

Não. O Script do cliente no Zoho CRM é compatível apenas com JavaScript.

6. Um Script do cliente será executado para todos os layouts do módulo?

Não. O Script do cliente será executado somente para o layout especificado durante a sua configuração. Se quiser que o script execute para outros layouts ou para todos os layouts de um módulo, você deve criar um script separado para cada um.

7. Qual é o uso da seção Terminal no IDE de Script do cliente?

É possível executar as APIs ZDK instantaneamente na seção Terminal do IDE de Script do cliente. Por exemplo, quando você digita o script abaixo na seção Terminal e clica em "Enter", você pode ver a mensagem de alerta na tela.

ZDK.Client.showMessage('Welcome to Client Script IDE', { type: 'info' });

 

8. Quando você deve usar evento de Página onChange e evento de campo onChange?

  • Evento de campo – onChange
    • Se desejar que o script seja executado somente quando o campo específico for atualizado, você poderá usar o evento de campo onChange.
  • Evento de página – onChange
    • Se você quiser que o script seja executado sempre que qualquer um dos campos nessa página for atualizado, você pode usar o evento da página onChange.
    • Quando você tiver que escrever um script para mais de um campo na mesma página, você pode usar instruções if e switch..case.

9. Usando o Script do cliente, como posso impedir que o registro seja salvo quando o valor de um campo específico inserido for inválido?

Para evitar que um registro seja salvo, siga estas etapas: É necessário usar o tipo de evento onSave, pois deseja impedir que o registro seja salvo. Adicione a instrução "return false;" ("falso retorno"). Sempre exiba o erro/alerta/mensagem, para que o usuário saiba por que o registro não está sendo salvo.

Exemplo: Considere que o campo quantidade não deve ter um valor menor que 100. Para isso, você precisa criar um Script do cliente com o tipo de evento onSave, mostrar uma mensagem de erro e adicionar uma declaração de retorno falso se o registro não for salvo para essa condição específica.


//Get the value of the field Quantity of Products 
var qty_field = ZDK.Page.getField("Quantity_of_products");
log(qty_field);
//Invoke the static method by passing the value of Quantity of Products
if(qty_field.getValue() < 100)
{
    qty_field.showError('The minimum value should be 100'); // or
   //  ZDK.Client.showMessage('The minimum value should be 100', { type: 'error' });//or
    //ZDK.Client.showAlert('The minimum value should be 100');//or
    return false;
}

 

10. Quais são todos os lugares onde o Script do cliente pode ser executado?

Atualmente, o Script do cliente pode ser executado nas páginas a seguir.

  • Criar página
  • Editar página
  • Clonar página
  • Página de detalhe (Canvas)
  • Página de detalhe (Padrão)
  • Página de lista (Padrão)
  • Criar página (Assistente)
  • Editar página (Assistente)

11. O Script do cliente pode ser executado na Página de criação rápida?

Não, no momento, o Script do cliente no Zoho CRM não pode ser executado na Página de criação rápida.

12. O Script do cliente funciona com todas as versões do navegador?

O Script do cliente no Zoho CRM suporta todos os navegadores da Web compatíveis com o Zoho CRM. Você pode encontrar a lista de navegadores suportados e suas respectivas versões neste link.

13. Quais são todos os eventos suportados que acionam a execução do Script do cliente?

Há um conjunto de eventos (ações do usuário) disponíveis que acionam a execução do Script do cliente. Confira a lista de eventos suportados aqui.

14. Como posso obter/definir valores em linhas do subformulário usando o Script do cliente?

Você pode usar Form.getValues() e Form.setValues() para obter/definir valores no subformulário ou em qualquer outro campo suportado no formulário atual. Além disso, verifique esse código de exemplo para saber como preencher dados em linhas de subformulário usando o Script do cliente.

15. É possível exibir PDFs de sistemas de terceiros no Zoho CRM usando o Script do cliente?

Você pode exibir PDFs de sistemas de terceiros usando o widget no Zoho CRM. É possível renderizar o widget com Script de cliente.

16. Podemos usar o Script do cliente para exibir uma página HTML personalizada ou qualquer página da Web de terceiros no Zoho CRM?

Sim. É possível renderizar um widget usando Script do cliente. Confira como renderizar um widget em Pop-up/Chamada/Flyout usando Script do cliente.

17. É possível preencher dados dinamicamente em campos com base em outras entradas de campo usando o Script do cliente?

Sim. É possível. Confira este código de exemplo que explica como preencher os dados do formulário com base no campo de pesquisa usando o Script do cliente.

18. É permitido usar window.localStorage para armazenamento temporário de dados?

Não. Atualmente, não é possível fazer isso com o Script do cliente.

19. Podemos declarar variáveis com "let" e "const" ao escrever um script?

Sim. Você pode declarar variáveis com "var", "let" e "const" no Script do cliente. Além disso, todos os principais recursos JavaScript até ES7 são suportados

20. É possível registrar a saída obtida a partir da execução do Script do cliente no log do console de um navegador da Web?

Sim. Para registrar a saída a partir da execução dos scripts do cliente, você pode usar o método log() ou console.log() para enviar os dados para o console do navegador.

21. As funções assíncronas são suportadas no Script do cliente?

Sim. Atualmente, todos os principais recursos JavaScript até ES7 são suportados.

22. Os eventos personalizados, além dos eventos padrão, podem ser criados para acionar a execução de scripts do cliente?

Infelizmente, atualmente não é possível criar eventos personalizados para acionar a execução de scripts do cliente. Até o momento, apenas um conjunto limitado de eventos de CRM é suportado. Confira esta documentação de eventos para saber mais sobre eventos que acionam a execução de Scripts do cliente.

23. Ao chamar conexões com o Script do cliente, é necessário especificar o "param_type". Quais são todos os tipos de parâmetro suportados?

param_type = 1 → parâmetro de requisição param_type = 2 → corpo/payload da requisição

24. É possível acionar o script em um evento de edição de campo no Zoho CRM?

Sim. Você pode usar eventos de campo que acionarão seu script quando inserir/editar valor em um campo. Use este link para saber mais sobre esses eventos.

25. É possível definir um valor na página Detail (Canvas) (Detalhe - Canvas) usando o Script do cliente?

Atualmente, as edições de campo (setValue( )) usando o Script do cliente não são suportadas nos campos Página Detail (Canvas) (Detalhe - Canvas) e página Detail (Standard) (Detalhe – Padrão). No entanto, esse recurso é suportado nos campos de formulários obrigatórios incluídos na página Detail Standard/Canvas (Detalhe Padrão/Canvas). Como solução alternativa, você pode usar a API Update Record para atualizar o registro na página Detail (Canvas) (Detalhe - Canvas) junto com o método $Client.refresh().

26. Como faço para obter valores de um módulo Lookup (Pesquisa)?

Para obter valor do campo Lookup (Pesquisa), use o método ZDK.Page.getField('Lookup').getValue(). Confira também este exemplo de código, no qual explicamos como buscar valores no módulo lookup (Pesquisa) e preencher dados no Módulo atual.

27. Quais são todos os operadores suportados para aplicar o filtro Lookup (Pesquisa) usando o método setCriteria( )?

Atualmente, somente os operadores "starts_with" e "equals" são suportados. No entanto, também daremos suporte a outros operadores em breve.

28. Os recursos estáticos carregados em um Script do cliente podem ser acessados em toda a organização ou podem ser acessados somente dentro do módulo ou página onde foram carregados?

Os recursos estáticos, uma vez adicionados, estarão disponíveis para todos os scripts nessa página específica. Os usuários podem adicionar esses recursos a seus scripts e usá-los. Clique aqui para saber mais sobre Recursos estáticos.

29. É preciso salvar o script antes de testá-lo durante o tempo de execução?

Não é necessário salvar o código para testar o script no modo de execução.

30. É possível desativar botões personalizados?

Sim. É possível ativar/desativar botões personalizados, bem como botões do sistema.

31. É possível usar o Script do cliente na página Detail (Canvas) (Detalhe - Canvas)?

Sim. O Script do cliente pode ser usado em várias páginas, como página Create (Criar), página Edit (Editar), página Clone (Clonar), Detail Page (Canvas) (Página de detalhes – Canvas), página Create (Wizard) (Criar - Assistente), página Edit (Wizard) (Editar - Assistente), página List (Standard) (Lista - Padrão) e página Detail (Standard) (Detalhe - Padrão). Clique aqui para saber mais sobre isso.

32. O Script do cliente suporta o filtro de pesquisa de seleção múltipla contextual?

Atualmente, o filtro contextual pode ser aplicado no campo Single Lookup (Pesquisa única) e será suportado no campo Multi-select lookup (Pesquisa de múltipla seleção) também em breve.

33. Podemos importar bibliotecas personalizadas no Script do cliente?

Sim. Sim, é possível carregá-las como um recurso estático e usá-las no script.

34. É possível buscar dados de um serviço de terceiros e preencher automaticamente a resposta nos respectivos campos no Zoho CRM usando o Script do cliente?

Sim. Os usuários podem usar o Script do cliente para buscar dados de um serviço de terceiros fazendo uma chamada de API de terceiros e preenchendo dados no campo. O script pode fazer chamadas somente para os domínios adicionados à lista Trusted Domains (Domínios confiáveis). Confira o exemplo abaixo para saber como alcançar isso com o Script do cliente.

35. O que o método getForm() faz?

O método getForm() pode ser usado para obter todos os campos do formulário atual (como Create page (Criar página), Clone Page (Clonar página) etc.). Você pode até mesmo definir valores para vários campos em uma Página com a ajuda do método getForm().setValues().

36. Um campo de pesquisa pode ser filtrado contextualmente com base em dois outros campos usando o Script do cliente?

Sim. É possível aplicar o filtro com base nos valores de dois outros campos usando Script do cliente.

37. É possível desativar o botão excluir ou executar a validação antes de excluir um registro?

Sim. É possível desativar o botão de exclusão usando o Script do cliente, mas por enquanto, não é possível executar a validação antes de excluir um registro.

38. É possível exibir mensagens personalizadas ao passar o mouse sobre os campos? Além disso, há algum outro evento que se possa passar o mouse no Script do cliente?

O método addTooltip() pode ser usado para exibir uma mensagem personalizada para um campo específico quando o mouse passar sobre ele. No entanto, atualmente não há nenhum evento disponível que se possa passar o mouse no Script do cliente.

39. Posso incluir um recurso de cópia usando um ícone personalizado na tela com o Script do cliente?

Este recurso está em desenvolvimento.

40. É possível criar formulários usando os valores de campo dinâmicos no CRM usando o Script do cliente?

Você pode usar o método getInput() para criar um formulário com campos falsos com base em valores de campo dinâmicos. Além disso, você pode renderizar um widget para criar um formulário e, em seguida, passar os dados para a página usando o Script do cliente. Também é possível ocultar/exibir os campos na página com base em valores dinâmicos usando o método setVisibility() no Script do cliente.

41. No futuro, será possível incluir texto formatado em um flyout sem precisar renderizar um widget?

Verificaremos a viabilidade de fornecer esse suporte.

42. Considere que um Script do cliente é acionado em um evento de edição de campo na Página Detail (Standard) (Detalhe – Padrão). Nesse caso, ele refletirá as alterações em outro campo vinculado a este campo ou precisará de um recarregamento de página? Ex.: Preenchimento do campo Age (Idade) com base na data de nascimento.

Quando um campo é atualizado em Página Detail (Canvas) (Detalhe – Canvas), o campo vinculado só será atualizado depois que a página for recarregada. Para recarregar a página na Página Detail (Canvas) (Detalhe – Canvas), você pode usar o método $Client.refresh(). Esse suporte estará disponível em breve na Página Detail (Standard) (Detalhe – Padrão).

43. Há um tempo limite de tempo para a execução para o Script do cliente?

Sim, o Script do cliente impõe um tempo limite de execução de 10 segundos. Quando o script exceder esse tempo de execução, você poderá usar um carregador para gerenciá-lo. Clique aqui para obter mais detalhes.

44. Por que métodos como document.close() e document.doctype() não estão funcionando no Script do cliente?

O Script do cliente não suporta determinados métodos JavaScript, por isso eles não funcionarão como esperado se forem usados. Sabendo disso, evite incluir métodos não compatíveis para garantir que seu script funcione corretamente.

Os seguintes métodos JavaScript não são compatíveis com o Script do cliente:

  • postMessage
  • importScripts
  • close
  • addEventListener
  • removeEventListener
  • getEventListeners
  • WebSocket
  • setInterval
  • setTimeout
  • clearTimeout
  • clearInterval
  • Worker
  • MessagePort
  • MessageEvent
  • MessageChannel
  • onmessage
  • onmessageerror
  • window
  • document

45. Como posso visualizar o objeto de resposta ZDK se ele não for exibido corretamente no painel mensagens?

Se o objeto de resposta não estiver sendo renderizado claramente no painel mensagens, você poderá registrá-lo em um formato especificado.

log("response:", ZDK.Apps.CRM.Leads.fetch()); log("response stringified:", JSON.stringify(ZDK.Apps.CRM.Leads.fetch()));



Use JSON.stringify() para converter o objeto em um formato de string legível para facilitar a visualização no painel mensagens. Você também pode visualizá-lo no console do navegador usando a instrução console.log().

46. Como posso adicionar uma quebra de linha nas mensagens de alerta?

Para adicionar uma quebra de linha nas mensagens de alerta, use "\n" dentro da string de mensagem. 



Por exemplo:

ZDK.Client.showAlert('This is an __important__ message\nThis is an *important* message');



A mensagem em duas linhas separadas na caixa de alerta será exibida.