Atribuir um item do catálogo a um grupo com base em uma tarefa de plano de entrega

  • Versão de lançamento: Xanadu
  • Atualizado 1 de ago. de 2024
  • 1 min. de leitura
  • Atribua um item do catálogo de serviços ao grupo do banco de dados se ele usar um plano de entrega que tenha uma tarefa de catálogo atribuída ao grupo da área de trabalho.

    Pré-requisitos

    Função necessária: administrador

    Aviso:
    A personalização descrita aqui foi desenvolvida para uso em instâncias específicas e não é compatível com Now Support. Este método é fornecido no estado em que se encontra e deve ser testado cuidadosamente antes da implementação. Publique todas as perguntas e comentários sobre esta personalização no fórum da nossa comunidade.

    Nome: atribuir item do catálogo ao grupo com base na tarefa do plano de entrega.

    Tipo: regra de atribuição.

    Descrição: esta regra de atribuição atribuirá um item do catálogo de serviços ao grupo do banco de dados se ele usar um plano de entrega que tenha uma tarefa de catálogo atribuída ao grupo da área de trabalho.

    Script:

    //Return catalog items that have no group but do have a delivery plan assigned var ri  = new GlideRecord ( "sc_cat_item" ) ;
    ri.addQuery("group", "=", null);
    ri.addQuery("delivery_plan", "!=", null);
    ri.query(); 
    while(ri.next()) {
        gs.log("Found an item"); 
        //Return tasks that point to the same delivery plan as the above item 
        var dptask = new GlideRecord("sc_cat_item_delivery_task");
        dptask.addQuery("delivery_plan", "=", ri. delivery_plan);
        dptask.query(); 
        while(dptask.next()) {
            gs.log("Found a task");
            var gp = dptask.group.getDisplayValue();
            gs.log(gp); 
            //If the task is assigned to desktop, assign the item's group to desktop
            if (dptask.group.getDisplayValue() == "Desktop") {
                ri.group.setDisplayValue("Desktop");
                gs.log("updating " + ri.getDisplayValue());
                ri.update(); 
                break; } } }