# Funções personalizadas de Problema As funções personalizadas de problema podem ser usadas para executar ações personalizadas, como atualizar campos de problema e o título do problema, atribuir prioridade, adicionar notas, associar incidentes a problemas e assim por diante. Você também pode usar funções personalizadas para manipular dados no ServiceDesk Plus e em outros aplicativos externos. As funções personalizadas são baseadas em Deluge, a linguagem de script proprietária da Zoho. A função personalizada de problema pode ser usada no gatilho personalizado de problema. ## Para criar uma função personalizada de Problema 1. Vá para **Admin** > **Espaço do desenvolvedor** > **Função personalizada**. 2. Navegue até **Problema**. 3. Clique em **Novo**. 4. Forneça um nome e uma descrição para a função personalizada. 5. Use a interface simples de arrastar e soltar do Editor de Script Deluge para criar sua ação personalizada. 6. Clique em **Salvar**. Como mostrado na captura de tela abaixo, `problemObj` e `context` serão passados como argumentos para a função personalizada. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/3457/2022_08_24_05_36_551.png) Você deve escrever a função personalizada com `problemObj` como argumento. Após executar a função personalizada, o tipo de dado Map será retornado no seguinte formato: ``` { "message":"Executado com sucesso", "status":"sucesso/falha" } ``` Você pode atualizar campos do problema, o título do problema, adicionar notas e associar incidentes retornando o mapa da função personalizada. O formato usado nas funções personalizadas é o mesmo do script e da classe Python. Para mais detalhes, visite esta página: https://www.manageengine.com/br/service-desk/help/adminguide/configurations/helpdesk/custom-triggers.html Você pode atualizar os campos padrão do problema e os campos adicionais em `problemObj`. Os novos valores dos campos devem ser retornados pela função personalizada em um formato específico, como segue: **Script de exemplo para atualizar o título do problema para Firewall Upgrade e a prioridade para High:** ```javascript returnjson ={ "operation": [ { "INPUT_DATA": [ { "problem": { "priority": { "name":"High" }, "title": "FireWall Upgrade" } } ], "OPERATIONNAME": "UPDATE", "FORMAT": "V3" } ], "message": "Script Python de atualização de exemplo", "result": "success" }; return returnjson; ``` **Script de exemplo para atribuir prioridade ao problema e atualizar o título com base na categoria do problema** ```javascript if(problemObj.containsKey("category")) { if(problemObj.get("category").get("name") == "Internet" || problemObj.get("category").get("name") == "Network") { returnjson = { "operation": [{ "INPUT_DATA": [{ "problem": { "priority": {"name": "High"}, "title":"Problema de rede" } }], "OPERATIONNAME": "UPDATE", "FORMAT": "V3" }], "result": "success", "message": "Problema atualizado!!" }; } } return returnjson; ``` ### Execução de teste de scripts Após escrever a função personalizada, você pode testá-la seguindo as etapas abaixo: - Clique em **Salvar e testar**. - Escolha um problema de exemplo na lista de problemas exibida e clique em **Avançar**. - Os dados que serão passados para a função personalizada serão exibidos no parâmetro `problemObj`. - Clique em **Executar**. Se você fizer chamadas de API usando `invokeurl` ao testar a função personalizada, a API será invocada. Certifique-se de não invocar uma API que possa resultar em consequências indesejadas. ### Dica de depuração Ao testar uma função personalizada, você pode depurar o código e imprimir a saída usando uma instrução chamada `info`. Por exemplo, para entender a estrutura de `problemObj` e `context`, você pode simplesmente executar o script a seguir e estudar a resposta. ``` info problemObj; info context; return true; ``` Para mais detalhes sobre Deluge, visite o [guia de ajuda do Deluge](https://www.zoho.com/deluge/help/). ### Ações da visualização em lista - **Editar/Excluir função personalizada** - Para editar/excluir uma função personalizada, clique no ícone **Ações** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/9227/2022_08_24_05_36_552.png) ao lado da função personalizada. - **Habilitar função personalizada** - Clique em ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/1492/2022_08_24_05_36_553.png) para habilitar a função personalizada. - **Desabilitar função personalizada** - Clique em ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/5271/2022_08_24_05_36_554.png) para desabilitar a função personalizada. - **Ações em massa** - Use a lista suspensa **Ações** para excluir, habilitar ou desabilitar em massa a função personalizada. Para executar esta ação, selecione as funções personalizadas necessárias habilitando as caixas de seleção correspondentes e clique em **Ações**. - **Pesquisar função personalizada** - Insira palavras-chave no campo de pesquisa para procurar funções personalizadas. - **Filtrar função personalizada** - Use a lista suspensa de filtro na parte superior para exibir a função personalizada usada em recursos específicos.