Cenário de exemplo para gatilho personalizado no módulo de Mudança

Cenário: O site está fora do ar para a visualização de aconselhamento de folha de pagamento e o novo servidor precisa ser instalado rapidamente.

Para a situação de emergência acima, em que o impacto é 'Alto', a 'Ação' necessária pode ser acionada por meio do arquivo de script/classe.

Os membros do E-CAB podem ser configurados com bastante antecedência para essas situações de emergência e o arquivo de classe/script correspondente pode ser executado. Para executar ações, é necessário ter o arquivo de Classe no local especificado para a implementação da ação.

No caso de arquivo de 'classe':

*Por padrão, o jar deve ser colocado no diretório [SDP_Home]/integration/lib/

*Exemplo:com.servicedeskplus.integration.ChangeActionImplementation

Observação: É necessário que o arquivo de classe seja convertido em arquivo jar para implementar a ação.

 

 



Vamos considerar a situação em que as funções desempenhadas pelos membros do E-CAB precisam ser atualizadas. O formato JSON a seguir deve ser seguido para acionar a ação necessária.


UPDATE_ROLES (Script/Classe)

{

    "message": "Adicionando membros do CAB de Emergência por meio de Gatilho Personalizado",

    "operations": [

        {

            "operation_name": "UPDATE_ROLES",

            "input_data": {

                "change": {

                    "roles": [

                        {

                            "id": 5,

                            "name": "Gerente de Linha",

                            "users": [

                                {

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

                                    "name": "Aaron"

                                },

                                {

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

                                    "name": "Shawn Adams"

                                }

                            ]

                        }

                    ]

                }

            }

        }

    ]

}


 

A seguir, um exemplo de implementação para a Ação de 'Mudança' :

package com.servicedeskplus.integration;

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

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

    /** 

     *A implementação do gatilho deve ser feita nesta classe

     *@executorData, contém DataJSON,diffJSON

     */

public class ChangeActionImplementation extends DefaultActionInterface {

 

    public JSONObject execute(ExecutorData executorData) throws Exception {

            //obter os dados da mudança no formato da API 

            JSONObject changeData = executorData.getDataJSON();

            //buscar o campo impacto

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

            //obter o valor associado ao impacto 

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

 

            JSONObject returnJSON = new JSONObject();

 

            //Array de operações a serem executadas no gatilho, atualmente apenas a opção UPDATE_ROLES é fornecida na mudança 

            JSONArray operations = new JSONArray();

 

            //JSON para operação específica 

            JSONObject operation = new JSONObject();

 

            //JSON para fornecer os detalhes da operação 

            JSONObject input_data = new JSONObject();

 

            //JSON para a entidade mudança 

            JSONObject change = new JSONObject();

 

            //Array de funções a serem configuradas 

            JSONArray roles = new JSONArray();

 

            //JSONObject para detalhes da função 

            JSONObject roleObject = new JSONObject();

 

            //array de usuários a serem configurados 

            JSAONArray users = new JSONArray();

 

            //JSONObject para detalhes do usuário 

            JSONObject user1 = new JSONObject();

            JSONObject user2 = new JSONObject();

 

            if (impactName.equalsIgnoreCase("High") {

                    returnJSON.put("message", "Adicionando membros do CAB de Emergência por meio do Gatilho");

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

                    roleObject.put('id': IDDAFUNÇÃO do CAB);

                    roleObject.put("name": "Nome da Função, aqui CAB");

                    user1.put("email": "email do usuário");

                    user1.put("name": "nome do usuário");

                    user2.put("id": ID do usuário);

 

                    // Insira o nome do usuário.

                    user2.put("name": "nome do usuário");

                    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", "Adicionando membros do CAB por meio do Gatilho");

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

                    roleObject.put("id ": IDDAFUNÇÃO do CAB);

                    roleObject.put("name": "Nome da Função, aqui CAB ");

                    user1.put("email": "email do usuário");

                    user1.put("name": "nome do usuário");

                    user2.put("id": ID do usuário);

                    user2.put("name": "nome do usuário");

                    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;

            }

Veja a seguir os métodos usados na implementação da Classe:

*getDataJSON()- Para obter a entrada no formato da API, que fornece informações completas sobre a 'mudança'.

*getDiffJSON()- Retorna os detalhes dos campos que foram modificados recentemente na mudança. Para obter informações sobre os campos modificados recentemente na 'mudança'.



Clique aqui para visualizar os valores retornados em getDataJSON() e getDiffJSON() 
 

Tendo conhecido o formato JSON, a ação pode ser executada por meio de arquivo de classe ou arquivo de script. Para executar ações, é necessário ter o arquivo de Script no local especificado para a implementação da ação.



No caso de arquivo de 'script':

*Por padrão, os scripts devem ser colocados no diretório [SDP_Home]/integration/custom_scripts/

*Exemplo: py addApprovers.py
 



Clique aqui para visualizar um arquivo de script de exemplo para a Ação de 'Mudança':

 

Confiável pelas melhores organizações do mundo

Suporte mais rápido e fácil, juntos