Se você fez upgrade de uma versão anterior à Genebra, deverá atualizar os rótulos de estado antigos para os novos depois de ativar o Gestão de mudanças - State Model.
Antes de Iniciar
Função necessária: administrador
Por Que e Quando Desempenhar Esta Tarefa
Os valores de estado dos registros de mudança atuais não são modificados quando você ativa o Gestão de mudanças - State Model. No entanto, seus registros de mudança atuais exibem os novos rótulos de estado no campo de estado.
| Valor do estado |
Novo rótulo de estado |
Rótulo de estado antigo |
| -5 |
Novo |
Pendente |
| -4 |
Avaliar |
(Não usado) |
| -3 |
Autorizar |
(Não usado) |
| -2 |
Programado |
(Não usado) |
| -1 |
Implementar |
(Não usado) |
| 0 |
Revisar |
(Não usado) |
| 1 |
(Não usado) |
Em aberto |
| 2 |
(Não usado) |
Trabalho em andamento |
| 3 |
Encerrado |
Encerrado concluído |
| 4 |
Cancelado |
Encerrado incompleto |
| 7 |
(Não usado) |
Encerrado Ignorado |
Por exemplo, registros com um valor de estado de -5 têm o rótulo de estado Pendente antes que o modelo de estado de Gerenciamento de Mudanças seja ativado. Depois que o modelo de estado for ativado, esses registros manterão o valor de estado -5, mas terão o rótulo Novo. Para usar o processo de gerenciamento de mudanças da sua organização com o modelo de estado, você deve atualizar os valores de estado para os novos rótulos nos registros de mudança existentes conforme apropriado, manualmente ou por script.
Você também deve atualizar todos os relatórios que executam consultas com base em rótulos de estado antigos para refletir os novos rótulos de estado.
Procedimento
-
Para atualizar automaticamente os valores de campos de estado de rótulos de estado antigos para novos rótulos de estado, personalize e execute o seguinte script de exemplo:
updateStates();
function updateStates() {
function hasApprovers(changeGr) {
var approverGr = new GlideRecord("sysapproval_approver");
approverGr.addQuery('sysapproval', changeGr.getUniqueValue());
approverGr.query();
return approverGr.getRowCount() > 0;
}
function hasRunningWorkflows(changeGr) {
var workflow = new Workflow();
var workflowGr = workflow.getRunningFlows(changeGr);
var hasRunningFlows = workflowGr.getRowCount() > 0;
return hasRunningFlows;
}
// Old State Model
var PENDING = '-5';
var OPEN = '1';
var CLOSED_COMPLETE = '3';
var CLOSED_INCOMPLETE = '4';
var CLOSED_SKIPPED = '7';
// New State Model
var NEW = '-5';
var ASSESS = '-4';
var AUTHORIZE = '-3';
var SCHEDULED = '-2';
var IMPLEMENT = '-1';
var REVIEW = '0';
var CLOSED = '3';
var CANCELLED = '4';
// Find all change requests
var record = new GlideRecord('change_request');
record.query();
// Update state from old value to new value
while (record.next()) {
switch(record.getValue('state')) {
case OPEN:
if (!hasRunningWorkflows(record) && !hasApprovers(record))
record.state = NEW;
break;
case CLOSED_COMPLETE:
record.state = CLOSED;
record.close_code = "successful";
break;
case CLOSED_SKIPPED:
record.state = CANCELLED;
record.close_code = "unsuccessful";
break;
case CLOSED_INCOMPLETE:
record.state = CLOSED;
record.close_code = "successful_issues";
break;
}
record.autoSysFields(false);
record.setWorkflow(false);
record.update();
}
}
-
Verifique se os rótulos de estado foram alterados nos registros de solicitação de mudança existentes.