Caso de negócios 5: transferir dados para aplicativos de terceiros (após a criação)

Caso de negócios 5: transferir dados para aplicativos de terceiros (após a criação)

As empresas atuais usam diferentes ferramentas de software para diferentes funções, como inventário, folha de pagamento, serviços públicos etc. Os scripts de servidor permitem que as organizações busquem dados desses softwares ou sites de terceiros e listem os mesmos em cartões.
 

Cenário de negócios

A Zylker usa o Jira para rastrear problemas em seus produtos. Às vezes, os parceiros ou clientes da Zylker podem criar um cartão no Qntrl para registrar um bug. Para agrupar todos os problemas em um só lugar, Zylker quer criar um problema no Jira sempre que um cartão relacionado a um bug é criado no Qntrl.
 

Solução

Podemos criar uma orquestração específica para registrar problemas e acionar um script de servidor sempre que um novo cartão for criado nele.
  1. Crie uma nova orquestração para registrar problemas no produto e salvar o link do problema de Jira.
  2. Crie um script de servidor para registrar problemas no Jira quando os cartões forem criados na orquestração do Qntrl.
  3. Crie um cartão e preencha os detalhes do problema para testar o script do servidor.
 

Configuração de exemplo

Etapa 1 – criar uma orquestração

Crie uma nova orquestração intitulada "Relatar problema" e adicione campos personalizados relacionados a ela.
  1. Adicione um campo de link --Link do problema--para registrar o link do problema no Jira.

 
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

Agora, prossiga para codificar o script do servidor para enviar detalhes para o Jira.
  1. Crie um novo script de servidor e digite o nome como 'Registro de erro no Jira'.
  2. Escolha Raise Issue (Relatar problema) no menu suspenso Form (Formulário).
  3. Escolha Job (Tarefa) como Execution Location (Local de execução) para executar o script.
  4. Escolha After Create (Após criar) 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 afterCreate(){
  2.     var globalVars = ZDK.Vars.getGlobalVariables();
  3.     var job = current.Job;
  4.  
  5.     var jiraAuthBase64 = ZDK.Crypto.base64Encode(globalVars["JiraEmail"] + ":" + globalVars["JiraApiKey"]);
  6.     var payload = getJiraPayload(job.getTitle(), job.getDescription(), globalVars["JiraProjectKey"]);
  7.  
  8.     var url = "https://" + globalVars["JiraDomain"] + "/rest/api/3/issue";
  9.     var headers = { 
  10.         'Authorization': "Basic "+jiraAuthBase64,
  11.         'Accept': 'application/json',
  12.         'Content-Type': 'application/json'
  13.     }
  14.     var resp = ZDK.HTTP.request(
  15.         url,
  16.         "post",
  17.         headers,
  18.         "",
  19.         payload,
  20.         ""
  21.     );
  22.     if (typeof resp == "string") {
  23.         resp = JSON.parse(resp);
  24.     }
  25.     console.log("Res = " + JSON.stringify(resp));
  26.     if (resp && resp.body) {
  27.         if (resp.status == 400) {
  28.             console.log("Jira issue creation failed, "+JSON.stringify(resp));
  29.         } else {
  30.             if (typeof resp.body == "string") {
  31.                 resp.body = JSON.parse(resp.body);
  32.             }
  33.             var id = resp.body.id;
  34.             var key = resp.body.key;
  35.             var link = "https://" + globalVars["JiraDomain"] + "/browse/" + key;
  36.             job.setVariable("JiraId", id);
  37.             job.setVariable("JiraKey", key);
  38. //Select issue link parameter here
  39.             job.setValue(current.Layout.Fields.<select issue link parameter here>.id, link);
  40.             console.log("Jira issue created, id = " + id + ", key = " + key);
  41.         }
  42.     } else {
  43.     }
  44.  
  45. }
  46.  
  47.  
  48. function getJiraPayload(title, desc, project) {
  49.     if (!title) title = "";
  50.     if (!desc) desc = "";
  51.     var payload = {
  52.         "fields": {
  53.             "summary": title,
  54.             "issuetype": {
  55.                 "id": "10004"
  56.             },
  57.             "project": {
  58.                 "key": project 
  59.             },
  60.             "description": {
  61.                 "type": "doc",
  62.                 "version": 1,
  63.                 "content": [
  64.                     {
  65.                         "type": "paragraph",
  66.                         "content": [
  67.                             {
  68.                                 "text": desc,
  69.                                 "type": "text"
  70.                             }
  71.                         ]
  72.                     }
  73.                 ]
  74.             }
  75.         }
  76.     };
  77.     return JSON.stringify(payload);
  78. }



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 Raise Issue (Relatar problema) no menu suspenso Form (Formulário).
  3. Insira os detalhes do bug.
  4. Salve o cartão.

 
Verifique se um problema com os mesmos detalhes foi criado em sua conta do Jira.