Con la acción Ejecutar script en las reglas de negocio, puede validar solicitudes y actualizar valores de campos para automatizar los flujos de trabajo de las solicitudes. Puede usar scripts para validar solicitudes que involucren condiciones complejas o solicitudes que usen entradas de application de terceros.
Puede ejecutar scripts de reglas de negocio en solicitudes entrantes a través del navegador, la API, dispositivos móviles y correo.
Un usuario registra una solicitud de servicio para un activo.
En este caso, puede escribir un script para verificar automáticamente la disponibilidad del activo, luego asignarlo a la solicitud y actualizar el estado del activo en el módulo de Activos.
Puede definir fácilmente qué no está permitido para un solicitante o un técnico, ya sea la modificación de datos o la operación misma en cualquier etapa determinada del procesamiento de la solicitud.
Un usuario registra una solicitud de servicio para una nueva laptop. Durante el procesamiento de esta solicitud, puede usar la ejecución de scripts de Reglas de negocio en los siguientes casos:
Para evitar la duplicación de solicitudes cuando el mismo solicitante genera una solicitud para la misma categoría, subcategoría y artículo.
En el cuadro de texto que se muestra, introduzca el nombre del archivo que contiene el script y haga clic en Guardar.
Considere el caso de generar un ticket de Jira desde ServiceDesk Plus. Para configurar un script personalizado para esta acción,
Cree un archivo de texto con el comando que se indica a continuación:
Guarde el archivo como create-jira-ticket.txt y colóquelo en el directorio [SDP_HOME]/integration/custom_scripts/executor_files.
Al configurar la acción personalizada, introduzca el nombre del archivo en el campo del ejecutor.
Haga clic en Guardar después de proporcionar todos los demás detalles.

Durante la ejecución, la application obtendrá el comando del archivo de texto indicado.
$COMPLETE_V3_JSON_FILE denota la ruta de un archivo que contiene los detalles completos de la solicitud, así como los valores anteriores y actualizados de los campos en formato JSON. El archivo es temporal y se eliminará automáticamente después de que se ejecute el script.
El archivo JSON temporal se crea en el directorio SDP_Home\integration\custom_scripts\request\, y el nombre del archivo será <requestid_timestamp>.json.
Estructura de $COMPLETE_V3_JSON_FILE
{
"request": {
<todas las propiedades de la solicitud en formato V3>
},
"diff": {
"old": {
"request": {
"priority": {
"id": "4",
"name": "Alta"
},
"urgency": {
"id": "3",
"name": "Normal"
},
"impact_details": "Impacto alto para servidores"
}
},
"new": {
"request": {
"priority": {
"id": "1",
"name": "Baja"
},
"urgency": {
"id": "4",
"name": "Baja"
},
"impact_details": "Impacto bajo para servidores"
}
}
},
"LOGIN_NAME": "administrator",
"LOGGEDIN_USER_TYPE": "Técnico",
"LOGGEDIN_USER_NAME": "administrator",
"OPERATION_TYPE": "add"
}
La entrada está en formato JSON. Aquí, la clave request contiene los campos proporcionados por el usuario y los campos completados por el sistema en formato de API V3.
El script para el archivo de solicitudes debe devolver un JSON que contenga el estado de éxito/fracaso y un mensaje que se mostrará en la pestaña de historial de la solicitud.
Formato general:
{
"result": "success",
"message": "Mensaje"
}
El script del servidor debe escribir el JSON de salida (si existe) en el mismo archivo temporal que se proporciona al script. No debe invocar llamadas a API externas para actualizar la misma solicitud, ya que esto no permitirá que los valores actualizados se transfieran a las reglas de negocio en cascada.
Puede realizar operaciones de Actualización y Negación utilizando el retorno JSON.
Ejemplo de operación de actualización
{ "result": "success", "message": "Script de Python de ejemplo", "operation": [ { "OPERATION_NAME": "UPDATE", "INPUT_DATA": [ { "request": { "urgency": { "name": "Alta" }, "group": { "name": "Red" }, "priority": { "name": "Alta" } } } ] } ]}
Ejemplo de operación Negate
{ "result": "success", "operation": [ { "OPERATION_NAME": "NEGATE", "REASON": "Motivo de la negación" } ]}
Haga clic aquí para ver el script de ejemplo para el siguiente caso de uso: