# Alterar Funções Personalizadas As funções personalizadas de alteração podem ser usadas em gatilhos personalizados de alteração. Você pode executar funções personalizadas de alteração como ações personalizadas e funções globais. Enquanto as ações personalizadas podem ser invocadas diretamente em gatilhos personalizados de alteração, as ações globais podem ser chamadas em ações personalizadas de alteração. Para criar funções personalizadas de alteração, acesse **Admin > Gerenciamento de Problemas/Alterações > Função Personalizada de Alteração**. ## Ações Personalizadas As ações personalizadas são funções personalizadas executáveis que permitem aos usuários manipular dados no ServiceDesk Plus e em outros aplicativos externos. As funções personalizadas são desenvolvidas em Deluge, a linguagem de script proprietária da Zoho. As ações personalizadas podem ser usadas em Gatilhos Personalizados de Alteração para executar ações em alterações, outros módulos e aplicativos externos. Use as orientações a seguir para criar, habilitar, desabilitar e excluir ações personalizadas: - Use o botão **Novo** para criar uma ação personalizada. - O botão **Ações** permite excluir, desabilitar e habilitar ações personalizadas em massa. Para modificar ações personalizadas individuais, use os ícones exibidos ao lado da ação personalizada. Observe que apenas ações personalizadas ativas estarão disponíveis para uso nas configurações mencionadas anteriormente. - Use palavras-chave para pesquisar ações personalizadas no campo fornecido. Use os filtros na parte superior para exibir as ações personalizadas usadas em recursos específicos. ## Adicionando uma Nova Ação Personalizada Clique em **Novo** na página de visualização em lista de ações personalizadas. Na página exibida, forneça um nome e uma descrição para sua ação personalizada. Use a interface simples de arrastar e soltar chamada Editor de Script Deluge para criar sua ação personalizada. Conforme demonstrado na captura de tela a seguir, `changeObj` e `context` serão passados como argumentos para a função personalizada: ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/Screen%20Shot%20at%206-06-30%20at%208_31_50%20PM.png) Você deve escrever a função personalizada com **changeObj** como argumento. Após executar a função personalizada, o tipo de dado **Map** será retornado no seguinte formato: ```json { "message": "Executado com sucesso", "status": "sucesso/falha" } ``` Você pode atualizar os campos da alteração, adicionar notas e atualizar funções da alteração retornando o mapa da função personalizada. O formato usado nessas funções personalizadas é o mesmo do script e da classe em Python. Para mais detalhes, visite esta página: https://www.manageengine.com/br/service-desk/help/adminguide/configurations/problem_changemanagement/change-custom-trigger.html Os novos valores de campo devem ser retornados da função personalizada em um formato específico, conforme demonstrado abaixo: Vamos considerar uma função de exemplo para atualizar o assunto da alteração para "Upgrade de Firewall" e a Prioridade para "Alta". ```deluge returnJson = Collection(); changeID = changeObj.get("id"); instanceJson = context.get("instance"); helpdeskID = instanceJson.get("id"); inputData = {"change": {"title":"Firewall Upgrade","priority":{"name":"High"}}}; resp = invokeurl [ url: "http://servername:portnumber/api/v3/changes/" + changeID type: PUT parameters: {"input_data": inputData,"TECHNICIAN_KEY":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","PORTALID":helpdeskID} ]; response_status = resp.get("response_status"); if("success".equals(response_status.get("status"))) { returnJson.insert("result":"success"); } else { returnJson.insert("result":"failure"); } return returnJson; ``` Dentro das funções personalizadas de alteração, você pode chamar [funções globais](https://www.manageengine.com/br/service-desk/help/adminguide/global-function.html) que podem armazenar informações essenciais para se conectar a aplicativos externos, funcionalidades comuns e configurações. Para conferir casos de uso do Deluge, visite esta página: https://www.manageengine.com/br/service-desk/help/adminguide/deluge-use-cases.html ## 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 uma alteração de exemplo na lista de alterações exibida e clique em **Avançar**. - Os dados que serão passados para a função personalizada serão exibidos sob o parâmetro `changeObj`. - 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 `changeObj` e `context`, você pode simplesmente executar o script a seguir e estudar a resposta. ```deluge info; info changeObj; info context; return true; ``` Para mais detalhes sobre Deluge, visite o [guia de ajuda do Deluge](https://www.zoho.com/deluge/help/).