Atribuição programável de planos de execução
Cada item do catálogo tem um plano de execução associado, usado sempre que um item desse tipo é solicitado; se nenhum plano for especificado, o plano padrão será usado. Este padrão é eficaz para a maioria das organizações, mas seu plano de execução pode precisar variar com base em critérios adicionais.
Por exemplo, no catálogo de serviços do sistema de base, uma solicitação de um novo PC sempre usa o plano de entrega de PC. No entanto, esse plano pode precisar variar para circunstâncias incomuns, como quando um solicitante está trabalhando em casa, em um local remoto.
Para fornecer essa flexibilidade, você pode usar um script para substituir o plano de execução padrão em um item do catálogo específico.
Limitações durante a execução do script
Os scripts do plano de execução têm limitações que precisam ser consideradas durante sua implementação.
Enquanto o script do plano de execução é executado:
- Não é possível interagir com tarefas do catálogo, pois as tarefas do catálogo só são criadas depois que o plano de execução é selecionado.
- Alguns campos, como tempo total de entrega e. prazo ainda não foram calculados, embora a própria solicitação esteja disponível no script por meio de current.request() .
- As aprovações ainda não foram geradas.
Gravando os scripts
Siga estas diretrizes ao escrever scripts de plano de execução.
Os scripts do plano de execução podem acessar as mesmas variáveis globais e outras funções que em qualquer outro plano de execução do lado do servidor.
- atual é o item do catálogo solicitado no momento,
sc_req_item. - current.delivery_plan() é o plano de execução atribuído para este item do catálogo.
O valor avaliado do script é usado como sys_id do plano de execução.
Exemplo simples:
current.delivery_plan.setDisplayValue('PC Delivery Plan')Se um valor inválido for retornado, como indefinido ou não encontrado, o valor atribuído existente será usado.
Exemplo mais complexo:
getexecutionplan();
function getexecutionplan() {
var location = current.request.requested_for.location.getDisplayValue();
// if we're in Atlanta
if (location == 'Atlanta') {
// use the remote pc delivery plan instead of the normal one
var remote_plan = new GlideRecord('sc_cat_item_delivery_plan');
remote_plan.addQuery('name', 'Remote PC Delivery Plan');
remote_plan.query();
remote_plan.next();
current.delivery_plan = remote_plan.sys_id;
return remote_plan_sys_id;
}
return current_delivery_plan;
}Sempre que uma solicitação for para um usuário em Atlanta, ServiceNow Usa o plano de entrega de PC remoto. Caso contrário, o plano de execução não será substituído e ServiceNow Usa o plano de execução normal do item do catálogo, o Plano de entrega do PC.
Adicione um script a um item do catálogo
Você pode adicionar um script a um item do catálogo para que o script seja executado sempre que um usuário solicitar esse item.
Procedimento
Resultado
Use um script para aprovar um plano de execução
Você pode usar um script de regra de aprovação para aprovar um plano de execução.
Procedimento
- Recupere uma tarefa de plano de execução de aprovação.
- Exiba Script de aprovação campo.
- Preencha um script de aprovação usando a mesma sintaxe e regras que você usaria em uma regra de aprovação.
Exemplo
Por exemplo, no script abaixo, o gerente do solicitante é o aprovador.