Caso de negócio 1: preencher a lista de destinatários lidos de um cartão usando scripts de servidor (ao carregar)

Caso de negócio 1: preencher a lista de destinatários lidos de um cartão usando scripts de servidor (ao carregar)

Os gerentes consideram útil saber quais funcionários visualizaram um novo cartão ou comentário, como uma lista de recibos de leitura. Ela ajuda os gerentes a saber se um funcionário visualizou sua tarefa atribuída e avaliar como os funcionários informados estão sobre novas atualizações na organização. Para personalizar esses requisitos no Qntrl, scripts de servidor podem ser usados.
 

Cenário de negócios

A Zylker Corp está tomando providências para o lançamento de um produto e todos os funcionários estão envolvidos no processo. Todos os funcionários recebem tarefas a serem concluídas. Os gerentes da empresa querem monitorar os funcionários que estão ativamente envolvidos no lançamento e acompanhar o cartão.
 

Solução

O requisito pode ser resolvido usando scripts de servidor da seguinte forma:
  1. Crie um campo de seleção múltipla -- Ler destinatários -- no formulário com nomes de usuário diferentes como opções.
  2. Crie um script de servidor e codifique a lógica para preencher os usuários no campo ler destinatários quando os usuários abrirem o cartão.
  3. Crie um cartão e adicione o trabalho que precisa ser feito para a inicialização do produto e monitore os usuários que visualizaram o cartão usando o campo Ler destinatários.

Configuração de exemplo

Etapa 1 – criar uma orquestração

Crie uma nova orquestração para o lançamento do produto e adicione campos relacionados a ele.
  1. Adicione um campo de seleção múltipla e nomeie-o como Ler destinatários.
  2. Adicione nomes de usuário como opções ao campo de seleção múltipla.
  3. Desative a visibilidade para que o campo fique oculto durante a criação de um cartão.


 
Depois que o formulário for salvo, prossiga para projetar o blueprint, definir permissões e publicar a orquestração.
 

Etapa 2: codificar scripts do servidor

Codifique o script do servidor para preencher os nomes de usuário no campo Read Recipients (Ler destinatários) quando eles abrirem o cartão.
  1. Crie um novo script de servidor e insira um nome: 'Preencher lista de destinatários lidos'.
  2. Escolha Product Launch (Iniciar produto) no menu suspenso Form (Formulário).
  3. Escolha Job (Tarefa) como Execution Location (Local de execução) para executar o script.
  4. Escolha On Load como Execution Trigger (Gatilho de execução) para executar este script sempre que a página do cartão for carregada.
  5. Copie e cole o script abaixo em seu editor de script e substitua os nomes dos parâmetros.
    1. Você pode usar o ícone ? no canto superior direito do editor de scripts para se referir aos nomes dos parâmetros.
  6. Quando o script estiver pronto, Publish (Publique) -o. 

  1. function onLoad(){
  2.     var userIdPicklistIdMap = {};
  3.     userIdPicklistIdMap["<User_ID>"] = "<Picklist ID>";
  4.     userIdPicklistIdMap["<User_ID>"] = "<Picklist ID>";
  5.     userIdPicklistIdMap["<User_ID>"] = "<Picklist ID>";
  6.     userIdPicklistIdMap["<User_ID>"] = "<Picklist ID>";
  7.     userIdPicklistIdMap["<User_ID>"] = "<Picklist ID>";
  8.  
  9. //Get User ID from our API doc: Get all users
  10. //Get Dropdown ID from our API doc: Get all custom fields
  11.  
  12.     var myPickId = userIdPicklistIdMap[current.User.getId()];
  13.     if (!myPickId) {
  14.         console.log("Current user not available in Read Recipients dropdown"); 
  15.         return;
  16.     }
  17.     var readRecipients = current.Job.getVariable("Read Recipients");
  18.     if (!readRecipients) {
  19.         readRecipients = "";
  20.     }
  21.     console.log("Read recipients = " + readRecipients);
  22.     var splitByComma = readRecipients.split(",");
  23.     if (!splitByComma[0]) {
  24.         splitByComma.shift();
  25.     }
  26.  
  27.     if (splitByComma.indexOf(myPickId) == -1) {
  28.         splitByComma.push(myPickId);
  29.     }
  30.     console.log("result = " + splitByComma.join(","));
  31.     current.Job.setVariable("Read Recipients", splitByComma.join(","));
  32.   
  33. //Select Read Recipients parameter here
  34. current.Job.setValue(current.Layout.Fields.<select-Read-Recipients-parameter-here>.id ,splitByComma.join(","));
  35.     console.log("Read Recipients updated");
  36.  
  37. }


 

Etapa 3 - adicionar um cartão

Quando a orquestração e o script do servidor estiverem prontos, podemos testar o script criando um novo cartão.
  1. Navegue até Cards (Cartões) e clique em Add Card (Adicionar cartão)
  2. Selecione Product Launch (Iniciar produto) no menu suspenso Form (Formulário).
  3. Insira os detalhes do cartão e clique em  Save (Salvar).
Quando os usuários começarem a visualizar a página de detalhes do cartão, seus nomes começarão a ser preenchidos no campo Read Recipients (Ler destinatários).