Aprovação - Agrupar atividade de fluxo de trabalho

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 9 min. de leitura
  • A atividade Aprovação - Agrupar cria registros de aprovação para cada membro de um grupo especificado.

    Nota:
    Esta atividade só estará disponível quando o fluxo de trabalho for executado em uma tabela que estenda a tarefa.

    A aprovação do grupo é aprovada ou rejeitada com base nas aprovações do usuário, de acordo com a lógica especificada no campo Aguardar.

    Resultados

    O designer de fluxo de trabalho pode atribuir um valor de resultado usando activity.result de dentro de um campo de script da atividade. Por padrão, o valor do resultado é a disposição de aprovação final. Esta disposição depende das ações de aprovação executadas pelos aprovadores e das condições de aprovação especificadas nos campos Aguardar ou Quando alguém rejeitar. Os valores de resultado possíveis são:
    • Aprovada
    • Rejeitado
    • Excluídos
    • Cancelado

    Variáveis de entrada

    As variáveis de entrada determinam o comportamento inicial da atividade.

    Tabela 1. Aprovação - Agrupar variáveis de entrada de atividade
    Campo Descrição
    Aprovação - Agrupar quando

    Especifique quando esta atividade gera um registro de aprovação de grupo.

    Condição Condições que, se atendidas, farão com que a aprovação do grupo seja gerada. Se as condições não forem atendidas, a aprovação será ignorada.
    Aprovação - Aprovadores de grupo

    Especifique os grupos cuja aprovação será solicitada.

    Grupos Os grupos cuja aprovação será solicitada.

    Para editar este campo, clique no ícone de cadeado. Para selecionar grupos específicos por nome, use a lista de pesquisa. Para selecionar grupos de valores de campos no registro atual em tempo de execução, clique no ícone de árvore.

    Cada membro do grupo receberá um registro de aprovação individual.

    Se nenhum grupo for selecionado, a atividade definirá automaticamente a aprovação como Aprovado.

    Aprovação - Condição do grupo

    Especifique como a atividade decidirá aprovar ou rejeitar a aprovação do grupo, com base nas respostas de membros individuais do grupo.

    Aguardar
    Uma opção entre lógicas de aprovação diferentes para determinar que aprovações ou rejeições individuais resultam na aprovação ou na rejeição da aprovação da atividade. As opções são:
    • Uma aprovação de cada grupo: qualquer usuário de cada grupo pode aprovar e a primeira aprovação de cada grupo faz com que a atividade seja concluída com um resultado de aprovado (veja abaixo como uma rejeição é tratada).
    • Uma aprovação de qualquer grupo: qualquer usuário de qualquer grupo pode aprovar e a primeira aprovação de qualquer grupo faz com que a atividade seja concluída com um resultado de aprovado.
    • Uma aprovação todos em todos os grupos: todos os usuários de todos os grupos devem aprovar para fazer com que a atividade seja concluída com um resultado de aprovado (veja abaixo como uma rejeição é tratada).
    • Primeira resposta de cada grupo: a primeira aprovação ou rejeição de qualquer usuário em cada grupo é usada para indicar o estado da aprovação do grupo (veja abaixo como uma rejeição é tratada).

      Indica o que acontece quando qualquer usuário rejeita sua solicitação de aprovação. As opções são:

    • Rejeitar a aprovação: conclua imediatamente a atividade com o resultado de rejeitado.
    • Primeira resposta de qualquer grupo: A primeira aprovação ou rejeição de qualquer usuário em qualquer grupo faz com que a atividade seja concluída com um resultado de aprovado ou rejeitado.
    • Condição baseada no script: sempre que um usuário aprova ou rejeita, o Script de aprovação é chamado para determinar se a atividade deve ser concluída.
    Script de aprovação

    Somente aparece quando Aguardar estiver definido como Condição com base no script.

    Se a variável Aguardar estiver definida como Condição baseada em script, este script será chamado para determinar como lidar com uma aprovação ou rejeição. O script precisa definir a variável resposta como aprovada ou rejeitada para indicar o status de aprovação geral para esta aprovação.

    Este script é responsável por definir o estado de aprovação para cada grupo que faz parte desta atividade de aprovação antes de retornar o estado de aprovação geral para todos os grupos.

    Quando chamadas, as seguintes variáveis estão disponíveis para o script para todos os grupos que fazem parte desta atividade de aprovação:

    counts.total = total number of groups that are part of this approval
                      counts.approved = # of groups that approved so far
                      counts.rejected = # of groups that rejected so far
                      counts.requested = # of groups that are pending approval
                      counts.not_requested = # of groups that are not pending approval
                      counts.not_required = # of groups that approval is not required
    E para cada grupo:
    groups[group_id].total = total number of users that are part of this group's approval
                        groups[group_id].approved = # of users that approved so far
                        groups[group_id].rejected = # of users that rejected so far
                        groups[group_id].requested = # of users that are pending approval
                        groups[group_id].not_requested = # of users that are not pending approval
                        groups[group_id].not_required = # of users that approval is not required
                        groups[group_id].approvalIDs[state] = array of user ids that are at the specified approval state
    Observação: iterar os grupos usando:
    for (var id in groups) {
                        var group = groups[id];
                        ... group.total ...
                        }
    Observação: obtenha o objeto do grupo usando o seguinte código (para obter coisas como o nome do grupo que está sendo iterado):
    var objGroup = fncGetGroupObj(id);
                        var strGroupName = objGroup.name;
                        
                        function fncGetGroupObj(sidGroupApproval)
                        {
                        var objGroupApproval = new GlideRecord('sysapproval_group');
                        objGroupApproval.get(sidGroupApproval);
                        
                        var objGroup = new GlideRecord('sys_user_group');
                        objGroup.get(objGroupApproval.assignment_group.sys_id);
                        
                        return objGroup;
                        }
    Os scripts de aprovação também permitem cálculos. Por exemplo, se apenas metade das aprovações forem necessárias:
    if (counts.approved/counts.total > .49) {
                        answer = 'approved';
                        }
                        else if (counts.rejected/counts.total > .50) {
                        answer = 'rejected';
                        }
    Quando alguém rejeitar
    Uma opção entre lógicas de aprovação diferentes para determinar que rejeições individuais resultam na rejeição da aprovação da atividade. As opções são:
    • Rejeitar a aprovação: conclua imediatamente a atividade com o resultado de rejeitado.
    • Aguarde outras respostas antes de decidir: aguarde até obtermos outras respostas antes de tomar uma decisão de aprovação ou rejeição. Isso permite que os usuários mudem de ideia até que uma decisão seja tomada.
    Nota:
    Se Aguardar estiver definido como Qualquer um para aprovar, uma única aprovação fará com que a atividade seja concluída com um resultado de aprovado, mesmo se um ou mais usuários rejeitarem.
    Aprovação - Programação de grupo

    Especifique como o fluxo de trabalho calcula a data de início esperada e a data de vencimento do registro de aprovação. Depois que você tiver selecionado um valor para "Data de vencimento baseada em" e "Programação baseada em", os campos apropriados serão exibidos.

    Prazo baseado em Selecione como o fluxo de trabalho determina a duração, a data de vencimento e a programação da tarefa.
    • Duração especificada pelo usuário: a duração é baseada em um valor especificado pelo usuário.
    • Uma duração relativa: a duração é calculada a partir de uma duração relativa (como Fim do próximo dia útil).
    • Um campo de data/hora ou duração: a duração é baseada no valor de um campo no registro atual.
    • Script: a duração é retornada por um script.
    Duração

    Somente aparece quando a data de vencimento com base em está definida como uma duração especificada pelo usuário

    O número específico de dias e horas.
    Duração relativa

    Somente aparece quando a data de vencimento com base em está definida como uma duração relativa

    O número geral e a duração dos dias úteis.
    Campo de prazo

    Somente aparece quando a data de vencimento com base em está definida como um campo de data/hora ou duração

    O campo de data/hora ou duração
    Script de prazo

    Somente aparece quando a data de vencimento com base em está definida como Script

    O script que define “resposta” ao número de segundos para a duração.
    Programação baseada em A programação básica que o temporizador usa para contar as horas de trabalho. Se uma programação for especificada, a duração só será considerada para os horários especificados na programação. Por exemplo, se a duração for de 2 horas e o fluxo de trabalho começar às 16h em uma programação que vai das 8h às 17h, ele terminará às 9h do dia seguinte. As opções são:
    • Programação deste fluxo de trabalho: a programação usa data e hora do contexto do fluxo de trabalho e um valor opcional defuso horário com base em.
    • Uma programação específica: a programação usa uma programação predefinida e um valor opcional de fuso horário com base em.
    • Um campo programação: a programação usa um valor de uma tabela e um valor fuso horário opcional com base em.
    Programação

    Aparece somente quando Programação baseada em é definida como uma programação específica.

    A Programação predefinida de uma lista.
    Campo de programação

    Aparece somente quando Programação baseada em é definida comoum campo de programação.

    Um campo de data e hora ou duração para a programação, que está associado à tabela. Os campos válidos aparecem em azul na caixa de diálogo Selecionar o elemento em uma árvore.
    Fuso horário baseado em O fuso horário para o cálculo da duração. O fuso horário pode ser baseado em
    • Sem fuso horário: padrão. O fluxo de trabalho usa o fuso horário GMT.
    • Um fuso horário específico: um fuso horário específico que você escolhe em uma lista de seleção.
    • Um campo de fuso horário: um campo de fuso horário para rastrear a duração de um campo no formulário.
    Fuso horário

    Aparece somente quando o Fuso horário baseado em é definido como um fuso horário específico.

    .
    Selecione o fuso horário desejado na lista de seleção.
    Campo de fuso horário

    Aparece somente quando o Fuso horário baseado em é definido como um campo de fuso horário.

    Um campo de data e hora ou duração para a programação, que está associado à tabela. Os campos válidos aparecem em azul na caixa de diálogo Selecionar o elemento em uma árvore.
    Aprovação - Avançado

    Se desejar, grave um script para determinar usuários adicionais de quem serão solicitadas aprovações.

    Avançado Marque esta caixa de seleção para gravar um script para determinar usuários adicionais de quem serão solicitadas aprovações. Use o Script de grupos adicionais para personalizar as aprovações de grupo.
    Script de grupos adicionais
    Se a caixa de seleção Avançado estiver marcada, este script será chamado para determinar a criação de qualquer aprovação de grupo adicional. O script precisa definir a variável resposta para uma lista separada por vírgulas de IDs de grupo ou uma matriz de IDs de grupo para adicionar como grupos de aprovadores. Por exemplo:
    answer = [];
           answer.push('id1');
           answer.push('id2');

    Condições

    As condições a seguir determinam qual transição será executada após esta atividade.
    Nota:
    As atividades de aprovação são executadas como o usuário cujas ações correspondem às condições de aprovação ou rejeição que o fluxo de trabalho estava aguardando e avança o fluxo de trabalho.
    Tabela 2. Aprovação - Condições de atividade de grupo
    Condição Descrição
    Aprovada Os usuários dos grupos aprovaram a solicitação com base nas regras Aguardar.
    Rejeitado Os usuários dos grupos rejeitaram a solicitação com base nas regras Aguardar.
    Erro O evento ou condição que gera um erro.
    Ignorado O evento ou condição que permite uma aprovação ignorada.

    Estados

    O estado da atividade informa ao mecanismo de fluxo de trabalho o que fazer com a atividade.
    Tabela 3. Aprovação - Estados de atividade de grupo
    Estado Descrição
    Executando O mecanismo de fluxo de trabalho inicia a função de execução da atividade.
    Aguardando O mecanismo de fluxo de trabalho ignora a atividade até que um evento específico para reiniciar a atividade seja acionado.
    Terminado A execução da atividade foi concluída. Veja o valor do resultado para o resultado da atividade.
    Cancelado Esta atividade, ou o fluxo de trabalho que contém esta atividade, foi cancelada.
    Erro Ocorreu um erro de JavaScript. Revise os logs para obter detalhes do erro.