Escenario de ejemplo para el activador personalizado en el módulo de Cambios

Escenario: El sitio web está caído para la vista de asesoramiento de nómina y el nuevo servidor debe instalarse rápidamente.

Para la situación de emergencia anterior, donde el impacto es "Alto", la "Acción" requerida puede activarse mediante el archivo script/clase.

Los miembros del E-CAB pueden configurarse con mucha anticipación para este tipo de situaciones de emergencia y puede ejecutarse el archivo de clase/script correspondiente. Para realizar acciones, es necesario tener el archivo de clase en la ubicación especificada para la implementación de la acción.

En caso de un archivo de "clase":

*De manera predeterminada, el jar debe colocarse en el directorio [SDP_Home]/integration/lib/

*Ejemplo:com.servicedeskplus.integration.ChangeActionImplementation

Nota: Es necesario que el archivo de clase se convierta en un archivo jar para implementar la acción.

 

 



Consideremos la situación en la que los roles desempeñados por los miembros del E-CAB deben actualizarse. Se debe seguir el siguiente formato JSON para activar la acción requerida.


UPDATE_ROLES (Script/Class)

{

    "message": "Agregando miembros del CAB de emergencia mediante activador personalizado",

    "operations": [

        {

            "operation_name": "UPDATE_ROLES",

            "input_data": {

                "change": {

                    "roles": [

                        {

                            "id": 5,

                            "name": "Gerente de línea",

                            "users": [

                                {

                                    "email": "Aaron@xyz.com",

                                    "name": "Aaron"

                                },

                                {

                                    "email": "Abby@xyz.com",

                                    "name": "Shawn Adams"

                                }

                            ]

                        }

                    ]

                }

            }

        }

    ]

}


 

A continuación se muestra una implementación de ejemplo para la acción de "Cambio" :

package com.servicedeskplus.integration;

import com.manageengine.servicedesk.actionplugin.executor.ActionInterface

import com.manageengine.servicedesk.actionplugin.executor.ExecutorData

    /** 

     *La implementación del activador debe realizarse en esta clase

     *@executorData, contiene DataJSON,diffJSON

     */

public class ChangeActionImplementation extends DefaultActionInterface {

 

    public JSONObject execute(ExecutorData executorData) throws Exception {

            //obtener los datos del cambio en formato API 

            JSONObject changeData = executorData.getDataJSON();

            //obtener el campo de impacto

            JSONObject impact = changeData.get("impact");

            //obtener el valor asociado con el impacto 

            String impactName = impact.get("name");

 

            JSONObject returnJSON = new JSONObject();

 

            //Arreglo de operaciones que se realizarán en el activador; actualmente en cambio solo se proporciona la opción UPDATE_ROLES 

            JSONArray operations = new JSONArray();

 

            //JSON para la operación específica 

            JSONObject operation = new JSONObject();

 

            //JSON para proporcionar detalles de la operación 

            JSONObject input_data = new JSONObject();

 

            //JSON para el cambio de entidad 

            JSONObject change = new JSONObject();

 

            //Arreglo de roles que se configurarán 

            JSONArray roles = new JSONArray();

 

            //JSONObject para los detalles del rol 

            JSONObject roleObject = new JSONObject();

 

            //arreglo de usuarios que se configurarán 

            JSAONArray users = new JSONArray();

 

            //JSONObject para los detalles del usuario 

            JSONObject user1 = new JSONObject();

            JSONObject user2 = new JSONObject();

 

            if (impactName.equalsIgnoreCase("High") {

                    returnJSON.put("message", "Agregando miembros del CAB de emergencia mediante el activador");

                    operation.put("operation_name", "UPDATE_ROLES");

                    roleObject.put('id': ROLEID of CAB);

                    roleObject.put("name": "Nombre del rol, aquí CAB");

                    user1.put("email": "emailId of user");

                    user1.put("name": "name of user");

                    user2.put("id": ID of user);

 

                    // Ingrese el nombre del usuario.

                    user2.put("name": "name of user");

                    users.put(user1);

                    users.put(user2);

                    roleObject.put("users", users);

                    roles.put(roleObject);

                    change.put("roles", roles);

                    input_data.put("change", change);

                    operation.put("input_data", input_data);

                    operations.put(operation);

                    returnJSON.put("operations", operation);

                } else {

                    returnJSON.put("message", "Agregando miembros del CAB mediante el activador");

                    operation.put("operation_name", "UPDATE_ROLES");

                    roleObject.put("id ": ROLEID of CAB);

                    roleObject.put("name": "Nombre del rol, aquí CAB ");

                    user1.put("email": "emailId of user");

                    user1.put("name": "name of user");

                    user2.put("id": ID of user);

                    user2.put("name": "name of user");

                    users.put(user1);

                    users.put(user2);

                    roleObject.put("users", users);

                    roles.put(roleObject);

                    change.put("roles", roles);

                    input_data.put("change", change);

                    operation.put("input_data", input_data);

                    operations.put(operation);

                    returnJSON.put("operations", operation);

                }

                return returnJSON;

            }

Los siguientes son los métodos utilizados en la implementación de la clase:

*getDataJSON()- Para obtener la entrada en formato API, que proporciona información completa sobre el "cambio".

*getDiffJSON()- Devuelve los detalles de los campos que se modificaron recientemente en el cambio. Para obtener información sobre los campos modificados recientemente en el "cambio".



Haz clic aquí para ver los valores devueltos en getDataJSON() y getDiffJSON() 
 

Una vez conocido el formato JSON, la acción puede ejecutarse mediante un archivo de clase o un archivo script. Para realizar acciones, es necesario tener el archivo Script en la ubicación especificada para la implementación de la acción.



En caso de un archivo "script":

*De manera predeterminada, los scripts deben colocarse en el directorio [SDP_Home]/integration/custom_scripts/

*Ejemplo: py addApprovers.py
 



Haz clic aquí para ver un archivo script de ejemplo para la acción de "Cambio":

 

Con la confianza de las mejores organizaciones del mundo

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