Reglas de negocio - Acción Ejecutar script

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.

Casos de uso:

  • Actualizar campos de la solicitud según valores de campos en un módulo diferente o en una application. 

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.

  • Detener una operación de solicitud en cualquier momento.

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:

  • Después de que el aprobador apruebe la solicitud, el técnico o el solicitante no deben poder cambiar la entrada de la solicitud.
  • No se debe permitir que el técnico cambie el estado de la solicitud a  En espera de compra a menos que la solicitud esté aprobada.
  • Cuando el técnico entregue el artículo al solicitante, solo se le debe permitir cambiar el estado de la solicitud a Resuelto y no a Cerrado. Solo el solicitante debe poder cerrar la solicitud después de verificar el artículo recibido.

 

  • Detener una solicitud desde su propia creación. 

Para evitar la duplicación de solicitudes cuando el mismo solicitante genera una solicitud para la misma categoría, subcategoría y artículo.

 

Para agregar un comando en una regla de negocio

  • Vaya a Acciones, haga clic en Seleccionar Acciones personalizadas >> Ejecutar script.
  • En el cuadro de texto que se muestra, introduzca el nombre del archivo que contiene el script y haga clic en Guardar.

Configuración de ejemplo:

Considere el caso de generar un ticket de Jira desde ServiceDesk Plus. Para configurar un script personalizado para esta acción,

  1. Cree un archivo de texto con el comando que se indica a continuación:

  py CreateJiraTicket.py $COMPLETE_V3_JSON_FILE
  1. Guarde el archivo como create-jira-ticket.txt y colóquelo en el directorio [SDP_HOME]/integration/custom_scripts/executor_files.

  2. Al configurar la acción personalizada, introduzca el nombre del archivo en el campo del ejecutor.

  3. 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.

Parámetro admitido—$COMPLETE_V3_JSON_FILE

$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"
}
        

 

Entrada proporcionada al archivo temporal $COMPLETE_V3_JSON_FILE

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.

 

Información adicional proporcionada en el archivo de entrada

  1. LOGIN_NAME
  2. LOGGEDIN_USER_NAME
  3. LOGIN_USER_ID
  4. LOGGEDIN_USER_TYPE
  5. OPERATION_TYPE

 

Formato JSON de salida para scripts personalizados

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"
        }
  • Result denota el estado de éxito/fracaso de la acción.
  • Message es la información que se mostrará en la pestaña de historial de la solicitud.

 

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.

 

Operaciones admitidas

Puede realizar operaciones de ActualizaciónNegación utilizando el retorno JSON. 

Todos los campos que se pueden actualizar mediante la API de solicitudes también se pueden actualizar mediante scripts personalizados.

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:

No se debe permitir que el técnico cambie el estado de la solicitud a En espera de compra a menos que la solicitud esté aprobada.

 

 

 

Para obtener más información sobre cómo escribir un script personalizado, haga clic aquí.

 

 

 

 

 

 

 

 

 

 

 

Con la confianza de las mejores organizaciones del mundo

Brindemos un mejor soporte juntos, más rápido y más fácil