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':









