Modelar fluxos do processo empresarial

 

Publicado: janeiro de 2017

Aplicável a: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Um fluxo de processo empresarial permite criar processos de vendas, serviços e outros processos empresariais mais eficientes e simplificados. Ter processos de alto desempenho definidos ajudará a aumentar os números de ganhos, melhorar a satisfação do cliente e aumentar a receita.

Um fluxo de processo empresarial cria uma visualização do processo empresarial colocando controles especiais na parte superior dos formulários de entidade. Os usuários serão guiados em vários estágios dos processos de vendas, marketing ou serviços até a sua conclusão. Cada processo oferece suporte a vários estágios e etapas. É possível adicionar ou remover etapas, alterar a ordem dos estágios ou adicionar novas entidades ao fluxo de processos empresarial.

Com o Atualização de dezembro de 2016 para Dynamics 365 (online e local), as definições de fluxos de processo empresarial diferentes podem ser associadas a funções diferentes e as instâncias podem ser executadas simultaneamente no mesmo registro da entidade. Os usuários podem alternar entre as instâncias de processo empresarial simultâneas e retomar seu trabalho em um estágio atual do processo. O designer do visual do novo processo deve arrastar e soltar para criar processos, como fluxos de processo empresarial e fluxos de trabalho, bem como as regras da lógica comercial portátil, usando uma interface gráfica intuitiva no Dynamics 365.

Para obter informações detalhadas sobre processos, consulte TechNet: Fluxos do Processo Empresarial.

Neste tópico

Suporte de capacidade de programação do lado servidor para o fluxo do processo empresarial.

Suporte de capacidade de programação do lado cliente para fluxos do processo empresarial.

Número máximo de processos, etapas e estágios

Suporte de capacidade de programação do lado servidor para o fluxo do processo empresarial.

Uma definição do fluxo do processo empresarial está armazenada na entidade Workflow. O fluxo do processo empresarial é uma das categorias do processo. Outras categorias de processo inclui ação, fluxo de trabalho e diálogo. Para obter mais informações, consulte Categorias de processo do Dynamics 365. As entidades personalizadas e as entidades que contêm formulários da interface do usuário atualizados podem participar do fluxo do processo empresarial. As entidades da interface do usuário atualizadas têm a propriedade IsAIRUpdated definida para true. Para habilitar uma entidade para usar o fluxo do processo empresarial, defina a propriedade IsBusinessProcessEnabled para true.

Importante

Habilitar uma entidade para usar o fluxo do processo empresarial é um processo unilateral. Não é possível revertê-lo.

  • Definir o fluxo do processo empresarial

  • Ativar fluxo do processo empresarial

  • Gerenciar seguranças dos fluxos do processo empresarial

  • Gerenciar instâncias do fluxo do processo empresarial

  • Aplique o fluxo do processo empresarial ao criar um registro da entidade

Definir o fluxo do processo empresarial

Use o novo designer do fluxo do processo empresarial visual no Dynamics 365 para definir um fluxo do processo empresarial. A entidade Workflow armazena uma definição do fluxo do processo empresarial e os valores de atributo a seguir devem ser especificados no registro de entidade Workflow para um fluxo do processo empresarial: name, category, businessprocesstype, primaryentity, uniquename e xaml. Para obter mais informações sobre esses atributos, consulte workflow EntityType. Por padrão, um registro de fluxo do processo empresarial é criado no estado Draft.

Ativar fluxo do processo empresarial

Antes de usar um fluxo de processo, é necessário ativá-lo. Para ativá-lo, você deve ter o privilégio prvActivateBusinessProcessFlow para a entidade Workflow. Use a mensagem UpdateRequest para definir o estado do registro de entidade Workflow como Activated.Para obter mais informações:Executar operações especializadas usando Atualização

Assim que você ativar uma definição do fluxo do processo empresarial (ao alterar o estado do registro de entidade do Workflow correspondente), uma entidade personalizada com o seguinte nome é criada automaticamente para armazenar as instâncias do fluxo do processo empresarial ativado: "<prefixo_da_solução_ativa>_<nome_exclusivo>".

Por exemplo, se você tiver especificado um nome exclusivo da definição do fluxo do processo empresarial como "myuniquebpf1" e se estiver usando o publicador padrão para sua solução ativa, o nome da entidade personalizada criada para as instâncias de processamento de armazenamento será "new_myuniquebpf1".

Se o valor uniquename não estiver disponível para uma definição de fluxo do processo empresarial, por exemplo, se o fluxo do processo empresarial tiver sido importado como parte da solução de uma versão anterior, o nome da entidade personalizada criada será "<prefixodasoluçãoativa_bpf_<Definição_BPF_GUID>:

Importante

Os registros do fluxo do processo empresarial de exemplo disponíveis em Dynamics 365 usam entidades do sistema para armazenar os registros de instância do fluxo do processo empresarial correspondente. Dois dos registros de entidade do fluxo do processo empresarial de exemplo são opportunitysalesprocess EntityType e leadtoopportunitysalesprocess EntityType.

Entretanto, todas as novas definições de fluxo de processo empresarial usarão as entidades personalizadas para armazenar os registros da instância como explicado anteriormente.

Gerenciar seguranças dos fluxos do processo empresarial

A entidade personalizada que foi criada automaticamente na ativação de um fluxo do processo empresarial para armazenar instâncias do fluxo do processo empresarial adere ao modelo de segurança padrão, como para qualquer outras entidade personalizada no Customer Engagement. Isso implica que os privilégios concedidos nessas entidades definem as permissões do tempo de execução para usuários dos fluxos do processo empresarial.

A entidade personalizada do fluxo do processo empresaria tem um escopo da organização. Os privilégios comuns criar, recuperar, atualizar e excluir nesta entidade definem a permissão que o usuário teria com base nas funções atribuídas a eles. Por padrão, quando a entidade personalizada do fluxo do processo empresarial é criada, somente as funções de segurança administrador do sistema e personalizador de sistema são concedidas para acessá-la e você deve conceder permissões explicitamente para esta entidade personalizada para outras funções de segurança, conforme necessário.

Gerenciar instâncias do fluxo do processo empresarial

A entidade personalizada que é automaticamente criada na ativação de uma definição de fluxo do processo empresarial armazena todas as instâncias de processo para a definição do fluxo do processo empresarial. A entidade personalizada dá suporte à criação e ao gerenciamento programáticos de registros (instâncias de processo) usando a API Web e o ponto de extremidade do CRM 2011. Por exemplo,se o nome da entidade personalizada for "new_myuniquebpf1", você poderá usar a seguinte consulta da API Web para recuperar todos os registros (instâncias do processo) na entidade personalizada:


[URI da organização]/api/data/v8.2/new_myuniquebpf1s

Uma instância de processo pode ter um destes estados: Active, Finished ou Aborted.

Importante

Esta seção fornece informações sobre gerenciamento programático de vários cenários de fluxo do processo empresarial, como alternância de processos empresariais, recuperação de instâncias do processo de um registro de entidade, recuperação do caminho ativo e do estágio ativo de uma instância do processo e movimentação para o estágio seguinte ou anterior. Você deve usar as mensagens e a entidade/entidades do processo empresarial adequado, conforme descrito nesta seção, para gerenciar programaticamente e automatizar seus fluxos do processo empresarial.

A manipulação de atributos relacionados aos processos (como ProcessId, StageId e TraversedPath) ou as entidades ativadas para os fluxos do processo empresarial não garantem consistência do estado do fluxo do processo empresarial e não é um cenário suportado. A única exceção para isso é modificar, de forma programada, o atributo ProcessId ao criar um registro da entidade para substituir o aplicativo padrão do fluxo do processo empresarial para o novo registro. Mais Informações: Aplique o fluxo do processo empresarial ao criar um registro da entidade

Use a mensagem SetProcess Action ou SetProcessRequest para definir outro fluxo do processo empresarial como a instância de processo ativo para o registro da entidade de destino. Uma instância de processo ativa é aquela visível na interface do usuário para o registro da entidade. Se não houver uma instância de processo da definição do fluxo do processo empresarial especificada, uma nova instância do fluxo do processo empresarial será criada e definida como ativa para o registro da entidade. Se não houver uma instância de processo ativa da definição do fluxo do processo empresarial, a instância do processo será definida como a instância do processo ativa para o registro da entidade. Se quiser definir uma determinada instância do processo como a instância do processo ativa de um registro da entidade, você pode usar a propriedade NewProcessInstance para especificar a instância.

Definir um processo ativo de forma programática é o mesmo que alternar para outra instância do processo para o registro da entidade na interface do usuário. Como cada instância do fluxo do processo empresarial mantém suas próprias informações de andamento de estágio e de etapa, trocar para outra instância de processo empresarial não fará você perder as informações de andamento, e você retomará do mesmo ponto onde estava da última vez.

O código de exemplo a seguir demonstra como você pode alternar para outro fluxo do processo empresarial de um registro da entidade:

SetProcessRequest setProcReq = new SetProcessRequest
{
    Target = new EntityReference(Opportunity.EntityLogicalName, _opportunityId),
    NewProcess = new EntityReference(Workflow.EntityLogicalName, _bpfId)
};
SetProcessResponse setProcResp = (SetProcessResponse)_serviceProxy.Execute(setProcReq);

No exemplo de código acima, a variável _bpfId representa o ID da definição do fluxo do processo empresarial para a qual você deseja alternar; é possível recuperar o ID da definição do fluxo do processo empresarial necessária, consultando a entidade Workflow. O código de exemplo a seguir demonstra como é possível recuperar o ID do exemplo da definição de fluxo do processo empresarial do "Processo de Vendas da Oportunidade" consultando a entidade Workflow:

QueryExpression opportunityBpfQuery = new QueryExpression
{
    EntityName = "workflow",
    ColumnSet =  new ColumnSet("name"),
    Criteria = new FilterExpression
    {
        Conditions =
        {
            new ConditionExpression
            {
                AttributeName = "uniquename",
                Operator = ConditionOperator.Equal,
                Values = { "opportunitysalesprocess" }
            }
        }
    }
};
Workflow retrievedBPF = (Workflow)_serviceProxy.RetrieveMultiple(opportunityBpfQuery).Entities[0];
_bpfId = retrievedBPF.Id;

Para obter o exemplo completo, veja Exemplo: Trabalhar com fluxos do processo empresarial

Use a mensagem RetrieveProcessInstances Function ou a RetrieveProcessInstancesRequest para recuperar todas as instâncias do fluxo do processo empresarial para um registro da entidade em todas as definições do processo empresarial. As instâncias de fluxo do processo empresarial de uma entidade retornadas são ordenadas com base no atributo modifiedon da instância. Por exemplo, a instância do fluxo do processo empresarial modificada recentemente será o primeiro registro na coleção retornada. A instância do fluxo do processo empresarial modificada é a única que fica ativa na interface do usuário de um registro da entidade.

O código de exemplo a seguir demonstra como recuperar as instâncias de fluxo do processo empresarial de um registro da entidade e, em seguida, lista as instâncias do processo associadas ao registro da entidade:

RetrieveProcessInstancesRequest procOpp2Req = new RetrieveProcessInstancesRequest
{
    EntityId = _opportunityId,
    EntityLogicalName = Opportunity.EntityLogicalName
};

RetrieveProcessInstancesResponse procOpp2Resp = (RetrieveProcessInstancesResponse)_serviceProxy.Execute(procOpp2Req);

// Declare variables to store values returned in response
int processCount = procOpp2Resp.Processes.Entities.Count;
var activeProcessInstance = procOpp2Resp.Processes.Entities[0]; // First record is the active process instance
_processOpp2Id = activeProcessInstance.Id; // Id of the active process instance, which will be used
                                           // later to retrieve the active path of the process instance

if (processCount > 0)
{
    // Display the count of process instances concurrently associated with the opportunity record
    Console.WriteLine("\nCount of process instances for the opportunity record: {0}", processCount);

    // Display all the process instances associated with the opportunity record
    // Demonstrates that multiple processes can run concurrently against the same record
    Console.WriteLine("\nProcess instances associated with the opportunity record:");
    for (int i = 0; i<processCount; i++)
    {
        Console.WriteLine("\t{0}", procOpp2Resp.Processes.Entities[i].Attributes["name"]);
    }
}

Os registros retornados da instância de fluxo do processo empresarial de um registro da entidade também armazenam a ID do estágio ativo no atributo processstageid que pode ser usado para localizar o estágio ativo e, em seguida, ir para o próximo estágio ou anterior. Para fazer isso, primeiro você precisa localizar o caminho ativo de uma instância do fluxo do processo empresarial e os estágios disponíveis da instância do fluxo do processo usando a RetrieveActivePath Function ou RetrieveActivePathRequest. O código de exemplo a seguir demonstra como recuperar os estágios do processo no caminho ativo de uma instância de fluxo de processo empresarial e o estágio ativo da instância:

// Retrieve the active stage ID of in the active process instance
_activeStageId = new Guid(activeProcessInstance.Attributes["processstageid"].ToString());

// Retrieve the process stages in the active path of the current process instance
RetrieveActivePathRequest pathReq = new RetrieveActivePathRequest
{
    ProcessInstanceId = _processOpp2Id
};
RetrieveActivePathResponse pathResp = (RetrieveActivePathResponse)_serviceProxy.Execute(pathReq);

Console.WriteLine("\nRetrieved stages in the active path of the process instance:");
for (int i = 0; i <pathResp.ProcessStages.Entities.Count; i++)
{
    Console.WriteLine("\tStage {0}: {1} (StageId: {2})", i + 1,
                            pathResp.ProcessStages.Entities[i].Attributes["stagename"], 
                            pathResp.ProcessStages.Entities[i].Attributes["processstageid"]);

    // Retrieve the active stage name and active stage position based on the activeStageId for the process instance
    if (pathResp.ProcessStages.Entities[i].Attributes["processstageid"].ToString() == _activeStageId.ToString())
    {
        _activeStageName = pathResp.ProcessStages.Entities[i].Attributes["stagename"].ToString();
        _activeStagePosition = i;
    }
}

// Display the active stage name and Id
Console.WriteLine("\nActive stage for the process instance: {0} (StageID: {1})", _activeStageName, _activeStageId);

Depois que tiver as informações do estágio ativo e do caminho ativo de uma instância do fluxo do processo empresarial, você pode usar as informações para ir para um próximo estágio ou anterior no caminho ativo. A navegação de estágios deve ser feita em sequência, isto é, você só deve avançar para o próximo estágio no caminho ativo. O código de exemplo a seguir demonstra como ir para o próximo estágio de uma instância de fluxo de processo empresarial:

// Retrieve the stage ID of the next stage that you want to set as active
_activeStageId = (Guid)pathResp.ProcessStages.Entities[_activeStagePosition + 1].Attributes["processstageid"];

// Retrieve the process instance record to update its active stage
ColumnSet cols1 = new ColumnSet();
cols1.AddColumn("activestageid");
Entity retrievedProcessInstance = _serviceProxy.Retrieve("opportunitysalesprocess", _processOpp2Id, cols1);

// Set the next stage as the active stage
retrievedProcessInstance["activestageid"] = new EntityReference(ProcessStage.EntityLogicalName, _activeStageId);
_serviceProxy.Update(retrievedProcessInstance);

Para o exemplo completo, consulte Exemplo: Trabalhar com fluxos do processo empresarial.

Aplique o fluxo do processo empresarial ao criar um registro da entidade

Esta seção fornece informações sobre o comportamento padrão para aplicar os fluxos do processo empresarial automaticamente para novos registros da entidade criada no Customer Engagement e como você pode substituí-lo para aplicar um fluxo do processo empresarial de sua escolha para novos registros da entidade.

Por padrão, para que a entidade tenha vários fluxos de processo empresarial definidos para ela, o sistema aplica um fluxo do processo empresarial para o novo registro da entidade, usando a seguinte lógica de várias etapas:

  1. Identifique todos os fluxos de processo empresarial aplicáveis ao novo registro de entidade com base no atributo Workflow.PrimaryEntity dos registros de definição do fluxo do processo empresarial.

  2. Identifique as definições de fluxos do processo empresarial ao qual o usuário atual tem acesso. Para obter informações sobre como o acesso um fluxo do processo empresarial é determinado e gerenciado, consulte Gerenciar seguranças dos fluxos do processo empresarial anteriormente neste tópico.

  3. Todas as definições de fluxos de processo empresarial do sistema estão sujeitas a uma ordem global por entidade. A ordem do fluxo do processo empresarial é armazenada no atributo Workflow.ProcessOrder. As definições de fluxos do processo empresarial de uma entidade são classificadas com base nessa ordem, e a que tiver o menor valor da ordem é selecionada.

  4. Por fim, se o registro da entidade for criado de um aplicativo de negócios (módulo do aplicativo), um nível maior de filtragem é aplicado para selecionar o fluxo do processo de negócio a ser aplicado automaticamente ao novo registro da entidade. Ao trabalhar em um aplicativo, os usuários podem acessar somente as entidades relevantes, fluxos do processo de negócios, exibições e forms aos quais eles têm acesso, em virtude das funções de segurança atribuídas ao aplicativo de negócios.

    • Se o aplicativo de negócios não contiver nenhum fluxo do processo empresarial, então o fluxo do processo empresarial é aplicado, conforme explicado até a etapa 3.

    • Se o aplicativo de negócios tiver um ou mais fluxos do processo empresarial, então somente serão aplicáveis os fluxos do processo empresarial presentes no aplicativo. Nesse caso, quando o usuário estiver trabalhando em um contexto do aplicativo de negócios, a lista de fluxos do processo empresarial desde a etapa 3 é filtrada, além daqueles que fazer parte do aplicativo de negócios que estão presente dentro do módulo do aplicativo e, em seguida, são classificados com base na ordem do processo.

    • Se nenhum fluxo de processo empresarial estiver disponível em um aplicativo de negócios da entidade ou naquele que o usuário tem acesso, então nenhum fluxo do processo de negócio é aplicado para o novo registro da entidade.

Pode substituir o comportamento padrão dos fluxos de processo empresarial que são aplicados automaticamente aos novos registros da entidade. Para fazer isso, defina o atributo ProcessId da entidade para um dos valores a seguir ao criar um novo registro da entidade:

  • Defina como Guid.Empty para ignorar a configuração do fluxo do processo empresarial para novos registros da entidade. Talvez você queira fazer isso se estiver criando registros da entidade em massa, mas não quer que o fluxo do processo empresarial seja aplicado a eles.

  • Defina-o como uma entidade de fluxo do processo empresarial específico (como uma referência da entidade). Nesse caso, o sistema aplicará o fluxo do processo empresarial especificado, em vez da lógica padrão.

Se você não definir um valor para o atributoProcessId ao criar um novo registro da entidade, o sistema aplicará a lógica padrão, como explicado anteriormente.

Observação

A substituição do comportamento padrão dos fluxos de processo empresarial que são aplicados automaticamente aos novos registros da entidade somente é suportada de forma programática. Não é possível fazer isso usando a interface do usuário.

Suporte de capacidade de programação do lado cliente para fluxos do processo empresarial.

Com o Dynamics 365 há um objeto do cliente que você pode usar para interagir com os fluxos de processos de negócios em seus scripts de formulário. Os fluxos do processo empresarial disparam eventos do lado do servidor sempre que um processo é aplicado a um registro, o estágio é alterado ou seu status é alterado para Active, Finished ou Aborted.Para obter mais informações:Criar scripts para fluxos de processos de negócios

Número máximo de processos, etapas e estágios

Por entidade, o valor padrão para o número máximo de fluxos de processo empresarial ativados é 10. Você pode especificar um valor diferente usando o atributo de Organization.MaximumActiveBusinessProcessFlowsAllowedPerEntity. Entretanto, se o valor for maior que 10, você poderá ver uma redução no desempenho do sistema ao alternar os processos ou abrir um registro com um fluxo do processo empresarial atribuído. Isso poderá ser particularmente perceptível se os processos abrangem várias entidades.

As seguintes configurações não são personalizáveis:

  • O número máximo de estágios por entidade do processo é 30.

  • O número máximo de etapas em cada estágio é 30.

  • O número máximo de entidades que podem participar do fluxo de processo é 5.

Confira Também

Vídeo: Processo comercial no Microsoft Dynamics CRM 2015
Categorias de processo do Dynamics 365
Automatizar processos empresariais usando o processo do Dynamics 365
Criar fluxos de trabalho em tempo real
Habilitação de processo com Microsoft Dynamics CRM 2013
Ajuda e treinamento: Crie um novo processo empresarial
Ajuda e treinamento: Atribuir uma função de segurança a um processo empresarial
Ajuda e Treinamento: Orientar o pessoal com tarefas comuns e processos
Ajuda e treinamento: Adicionar processos empresariais prontos para uso
TechNet: Fluxos do processo de negócios
Criar scripts para fluxos de processos de negócios

Microsoft Dynamics 365

© 2017 Microsoft. Todos os direitos reservados. Direitos autorais