# Funciones personalizadas de problemas Las funciones personalizadas de problemas se pueden utilizar para realizar acciones personalizadas, como actualizar campos y el título del problema, asignar prioridad, agregar notas, asociar incidentes con problemas y similares. También puede usar funciones personalizadas para manipular datos en ServiceDesk Plus y otras aplicaciones externas. Las funciones personalizadas están basadas en Deluge, el lenguaje de scripting propietario de Zoho. La función personalizada de problemas puede usarse en el disparador personalizado de problemas. ## Para crear una función personalizada de problemas 1. Vaya a **Admin** > **Developer Space** > **Custom Function**. 2. Navegue a **Problem**. 3. Haga clic en **New**. 4. Proporcione un nombre y una descripción para la función personalizada. 5. Use la interfaz sencilla de arrastrar y soltar del Editor de Scripts Deluge para crear su acción personalizada. 6. Haga clic en **Save**. Como se muestra en la siguiente captura de pantalla, `problemObj` y `context` se pasarán como argumentos para la función personalizada. ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/3457/2022_08_24_05_36_551.png) Debe escribir la función personalizada con `problemObj` como argumento. Después de ejecutar la función personalizada, se devolverá el tipo de datos Map en el siguiente formato: ``` { "message":"Ejecutado correctamente", "status":"success/failure" } ``` Puede actualizar campos del problema, el título del problema, agregar notas y asociar incidentes devolviendo el map desde la función personalizada. El formato utilizado en las funciones personalizadas es el mismo que en el script y la clase de Python. Para más detalles, visite esta página: [visite esta página](https://www.manageengine.com/latam/service-desk/help/adminguide/configurations/helpdesk/custom-triggers.html) Puede actualizar campos predeterminados del problema y campos adicionales en `problemObj`. Los nuevos valores de campo deben devolverse desde la función personalizada en un formato específico, como se muestra a continuación: **Script de ejemplo para actualizar el título del problema a Firewall Upgrade y la prioridad a High:** ```json returnjson = { "operation": [ { "INPUT_DATA": [ { "problem": { "priority": { "name": "High" }, "title": "FireWall Upgrade" } } ], "OPERATIONNAME": "UPDATE", "FORMAT": "V3" } ], "message": "Script de ejemplo de actualización en Python", "result": "success" }; return returnjson; ``` **Script de ejemplo para asignar la prioridad del problema y actualizar el título según la categoría del 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 red" } }], "OPERATIONNAME": "UPDATE", "FORMAT": "V3" }], "result": "success", "message": "¡Problema actualizado!" }; } } return returnjson; ``` ### Ejecución de prueba de scripts Después de escribir la función personalizada, puedes probarla siguiendo los pasos que se indican a continuación: - Haz clic en **Guardar y probar**. - Elige un problema de muestra de la lista de problemas mostrados y haz clic en **Siguiente**. - Los datos que se pasarán a la función personalizada se mostrarán en el parámetro `problemObj`. - Haz clic en **Ejecutar**. Si haces llamadas API usando `invokeurl` mientras pruebas la función personalizada, la API se invocará. Asegúrate de no invocar una API que pueda generar consecuencias no deseadas. ### Consejo de depuración Cuando pruebas una función personalizada, puedes depurar el código e imprimir la salida usando una instrucción llamada `info`. Por ejemplo, para entender la estructura de `problemObj` y `context`, simplemente puedes ejecutar el siguiente script y estudiar la respuesta. ``` info problemObj; info context; return true; ``` Para obtener más detalles sobre Deluge, visita la guía de ayuda de Deluge: [guía de ayuda de Deluge](https://www.zoho.com/deluge/help/) ### Acciones de vista de lista - **Editar/Eliminar función personalizada** - Para editar/eliminar una función personalizada, haz clic en el ícono de **Acciones** ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/9227/2022_08_24_05_36_552.png) junto a la función personalizada. - **Habilitar función personalizada** - Haz clic en ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/1492/2022_08_24_05_36_553.png) para habilitar la función personalizada. - **Deshabilitar función personalizada** - Haz clic en ![](https://www.manageengine.com/userfiles/866/14262/ckfinder/images/qu/5271/2022_08_24_05_36_554.png) para deshabilitar la función personalizada. - **Acciones masivas** - Usa el menú desplegable **Acciones** para eliminar, habilitar o deshabilitar funciones personalizadas en lote. Para realizar esta acción, selecciona las funciones personalizadas requeridas habilitando las casillas de verificación correspondientes y haz clic en **Acciones**. - **Buscar función personalizada** - Ingresa palabras clave en el campo de búsqueda para buscar funciones personalizadas. - **Filtrar función personalizada** - Usa el menú desplegable de filtro en la parte superior para mostrar la función personalizada utilizada en funciones específicas.