Partager via


Flux des processus d’entreprise modèles

 

Date de publication : janvier 2017

S’applique à : Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Un flux des processus d’entreprise vous permet de créer des processus de vente, de service et autres processus d’entreprise plus efficaces et rapides. Le fait d’avoir des processus de performances élevées en place vous aidera à accroître vos taux de conclusion, améliorer la satisfaction des clients et augmenter vos revenus.

Un flux des processus d’entreprise crée une visualisation de votre processus d’entreprise en plaçant des contrôles spécifiques au sommet des formulaires d’entité. Les utilisateurs sont guidés par différentes étapes de processus de vente, de marketing ou de service jusqu’à la fin. Chaque processus prend en charge plusieurs phases et plusieurs étapes. Vous pouvez ajouter ou supprimer des étapes, modifier l’ordre des phases ou ajouter de nouvelles entités au flux des processus d’entreprise.

Avec la Mise à jour de décembre 2016 pour Dynamics 365 (en ligne et local), différentes définitions de flux des processus d'entreprise peuvent être associées à différents rôles et les instances peuvent s'exécuter simultanément sur le même enregistrement d'entité. Les utilisateurs peuvent permuter entre des instances de processus d'entreprise simultanées et reprendre leur travail à une étape actuelle du processus. Le nouveau concepteur de processus visuel par glisser-déplacer permet de créer des processus, tels que des flux de processus d'entreprise et des flux de tâche, ainsi que des règles d'entreprise, via une interface graphique intuitive dans Dynamics 365.

Pour des informations détaillées sur les processus, voir TechNet : Flux des processus d'entreprise

Contenu de la rubrique

Prise en charge de la programmabilité côté serveur pour le flux des processus d'entreprise

Prise en charge de la programmabilité côté client pour les flux des processus d'entreprise

Nombre maximal de processus, de phases et d'étapes

Prise en charge de la programmabilité côté serveur pour le flux des processus d'entreprise

Une définition du flux des processus d'entreprise est stockée dans l'entité Workflow. Le flux des processus d'entreprise est une des catégories du processus. D’autres catégories de processus incluent l’action, le workflow et le dialogue. Pour plus d'informations, voir Catégories de processus Dynamics 365. Les entités personnalisées et les entités qui ont mis à jour les formulaires d’interface utilisateur peuvent participer au flux des processus d'entreprise. Les entités d’interface utilisateur mises à jour sont la propriété IsAIRUpdated définie sur true. Pour activer une entité pour le flux des processus d’entreprise, définissez la propriété IsBusinessProcessEnabled sur true.

Important

L’activation d’une entité pour le flux des processus d’entreprise est un processus unilatéral. Vous ne pouvez pas l’inverser.

  • Définir le flux des processus d'entreprise

  • Activer le flux des processus d'entreprise

  • Gérer la sécurité des flux des processus d'entreprise

  • Gérer les instances de flux des processus d'entreprise

  • Appliquer le flux des processus d'entreprise lors de la création d'un enregistrement d'entité

Définir le flux des processus d'entreprise

Utilisez le nouveau concepteur de flux de processus d'entreprise visuel dans Dynamics 365 pour définir un flux des processus d'entreprise. L'entité Workflow stocke une définition du flux des processus d'entreprise, et les valeurs d'attribut suivantes doivent être spécifiées dans l'enregistrement d'entité Workflow d'un flux de processus d'entreprise : name, category, businessprocesstype, primaryentity, uniquename et xaml. Pour plus d'informations sur ces attributs, voir workflow EntityType. Par défaut, un enregistrement de flux des processus d'entreprise est créé à l'état Draft.

Activer le flux des processus d'entreprise

Avant de pouvoir utiliser le flux de processus, vous devez l’activer. Pour l'activer, vous devez avoir le privilège prvActivateBusinessProcessFlow pour l'entité Workflow. Utilisez le message UpdateRequest pour définir l'état de l'enregistrement d'entité Workflow sur Activated.Pour plus d'informations :Effectuer des opérations spécialisées à l'aide de la fonction de mise à jour

Lorsque vous activez une définition du flux des processus d'entreprise (en modifiant l'état de l'enregistrement d'entité Workflow correspondant), une entité personnalisée portant le nom suivant est automatiquement créée pour stocker les instances de flux de processus d'entreprise activées : « <préfixe de la solution active>_<nom unique> ».

Par exemple, si vous avez spécifié « myuniquebpf1 » comme nom unique de la définition du flux des processus d'entreprise et vous utilisez l'éditeur par défaut pour votre solution active, le nom de l'entité personnalisée créée pour stocker les instances de processus est « new_myuniquebpf1 ».

Si la valeur uniquename n'est pas disponible pour une définition de flux des processus d'entreprise, par exemple si le flux des processus d'entreprise a été importé dans le cadre de la solution à partir d'une version antérieure, le nom par défaut de l'entité personnalisée est « <préfixe de la solution active>_bpf_<définition BPF du GUID> :

Important

Les exemples d'enregistrements de flux de processus d'entreprise disponibles dans Dynamics 365 utilisent les entités système pour stocker les enregistrements d'instance de flux de processus d'entreprise correspondants. Quelques exemples d'enregistrements d'entité de flux de processus d'entreprise sont opportunitysalesprocess EntityType et leadtoopportunitysalesprocess EntityType.

Toutefois, les nouvelles définitions du flux de processus d'entreprise que vous créez utilisent des entités personnalisées pour stocker les enregistrements d'instance comme décrit précédemment.

Gérer la sécurité des flux des processus d'entreprise

L'entité personnalisée qui est automatiquement créée à l'activation d'un flux des processus d'entreprise pour stocker des instances de flux des processus d'entreprise adhère au modèle de sécurité standard comme n'importe quelle autre entité personnalisée dans Customer Engagement. Cela implique que les privilèges accordés sur ces entités définissent les privilèges d'exécution des utilisateurs pour les flux des processus d'entreprise.

L'entité de flux des processus d'entreprise personnalisé dispose de l'étendue de l'organisation. Les privilèges habituels de Créer, Récupérer, Mettre à jour et Supprimer sur cette entité définissent l'autorisation dont dispose l'utilisateur selon son rôle. Par défaut, lorsque l'entité de flux des processus d'entreprise personnalisée est créée, seuls l'administrateur système et les rôles de sécurité de personnalisateur de système y ont accès, et vous devez explicitement accorder des autorisations sur cette entité personnalisée pour d'autres rôles de sécurité selon les besoins.

Gérer les instances de flux des processus d'entreprise

L'entité personnalisée qui est automatiquement créée à l'activation de la définition d'un flux des processus d'entreprise stocke toutes les instances de processus pour la définition de flux des processus d'entreprise. L'entité personnalisée prend en charge la création et la gestion par programme des enregistrements (instances de processus) à l'aide de l'API Web et du point de terminaison CRM 2011. Par exemple, si le nom de l'entité personnalisée est « new_myuniquebpf1 », vous pouvez utiliser la requête suivante de l'API Web pour récupérer tous les enregistrements (instances de processus) de l'entité personnalisée :


[URI de l'organisation]/api/data/v8.2/new_myuniquebpf1s

Une instance de processus peut avoir un des états suivants : Active, Finished ou Aborted.

Important

Cette section fournit des informations sur la gestion par programme de divers scénarios de flux de processus d'entreprise, par exemple le changement de processus d'entreprise, la récupération des instances de processus pour un enregistrement d'entité, la récupération du chemin d'accès actif et de la phase active pour une instance de processus et le passage à la phase suivante ou précédente. Vous devez utiliser les messages et les entités de flux de processus d'entreprise appropriées comme décrit dans cette section pour gérer par programme et automatiser vos flux de processus d'entreprise.

La manipulation des attributs liés aux processus (par exemple, ProcessId, StageId et TraversedPath) sur les entités activées pour les flux de processus d'entreprise ne garantit pas la cohérence de l'état du flux de processus d'entreprise, et n'est pas un scénario pris en charge. La seule exception est la modification par programme de l'attribut ProcessId lors de la création d'un enregistrement d'entité pour remplacer l'application par défaut du flux des processus d'entreprise dans le nouvel enregistrement. Pour plus d'informations, voir Appliquer le flux des processus d'entreprise lors de la création d'un enregistrement d'entité

Utilisez l'SetProcess Action ou le message SetProcessRequest pour définir un autre flux de processus d'entreprise comme instance de processus active pour l'enregistrement d'entité cible. Une instance de processus active est celle visible sur l'interface utilisateur pour l'enregistrement d'entité. S'il n'existe aucune instance de processus de la définition du flux de processus d'entreprise spécifiée, une nouvelle instance de flux de processus d'entreprise est créée et définie comme instance active pour l'enregistrement d'entité. S'il existe déjà une instance de processus de la définition du flux de processus d'entreprise, l'instance de processus est définie comme instance de processus active pour l'enregistrement d'entité. Si vous souhaitez définir une instance de processus spécifique comme instance de processus active pour un enregistrement d'entité, vous pouvez utiliser la propriété NewProcessInstance pour spécifier l'instance.

La définition par programme d'un processus actif revient au même que de basculer vers une autre instance de processus pour l'enregistrement d'entité dans l'interface utilisateur. Comme chaque instance de flux des processus d'entreprise gère ses propres informations de progression des phases et étapes, le passage à une autre instance de processus d'entreprise n'entraîne pas la perte des informations de progression, et vous reprenez à partir du point où vous vous êtes arrêté.

L'exemple de code suivant explique comment basculer vers un autre flux de processus d'entreprise pour un enregistrement d'entité :

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

Dans l'exemple de code ci-dessus, la variable _bpfId représente l'ID de la définition du flux de processus d'entreprise vers laquelle vous souhaitez basculer ; vous pouvez récupérer l'ID de la définition du flux de processus d'entreprise requise en interrogeant l'entité Workflow. L'exemple de code suivant montre comment récupérer l'ID de l'exemple de définition du flux de processus d'entreprise « Processus de vente Opportunité » en interrogeant l'entité 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;

Pour obtenir l’exemple de code complet, voir Exemple : Utiliser les flux de processus d'entreprise.

Utilisez la RetrieveProcessInstances Function ou le message RetrieveProcessInstancesRequest pour récupérer toutes les instances de flux de processus d'entreprise d'un enregistrement d'entité dans toutes les définitions de processus d'entreprise. Les instances de flux de processus d'entreprise retournées pour une entité sont classées selon l'attribut modifiedon de l'instance. Par exemple, l'instance de flux de processus d'entreprise modifiée en dernier sera le premier enregistrement dans la collection retournée. L'instance de flux de processus d'entreprise modifiée en dernier est l'instance active dans l'interface utilisateur pour un enregistrement d'entité.

L'exemple de code suivant montre comment récupérer des instances de flux de processus d'entreprise pour un enregistrement d'entité, puis répertorie les instances de processus associées à l'enregistrement d'entité :

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"]);
    }
}

Les enregistrements d'instance de flux de processus d'entreprise retournés pour un enregistrement d'entité stockent également l'ID de la phase active dans l'attribut processstageid qui peut être utilisé pour rechercher la phase active et passer à la phase précédente ou suivante. Pour ce faire, vous devez d'abord rechercher le chemin d'accès actif d'une instance de flux de processus d'entreprise et les phases disponibles dans l'instance de flux de processus à l'aide de la RetrieveActivePath Function ou du message RetrieveActivePathRequest. L'exemple de code suivant montre comment récupérer les phases du processus dans le chemin d'accès actif pour une instance de flux de processus d'entreprise et la phase active de l'instance :

// 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);

Une fois que vous disposez des informations sur la phase active et le chemin d'accès actif pour une instance de flux de processus d'entreprise, vous pouvez les utiliser pour passer à une phase précédente ou suivante dans le chemin d'accès actif. La navigation vers l'avant dans les phases doit être effectuée dans l'ordre, c'est-à-dire vous devez uniquement passer à la phase suivante dans le chemin d'accès actif. L'exemple de code suivant montre comment passer à la phase suivante pour une instance de flux de processus d'entreprise :

// 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);

Pour obtenir l’exemple de code complet, voir Exemple : Utiliser les flux de processus d'entreprise.

Appliquer le flux des processus d'entreprise lors de la création d'un enregistrement d'entité

Cette section fournit des informations sur le comportement par défaut pour l'application de flux des processus d'entreprise automatique aux nouveaux enregistrements d'entités créés dans Customer Engagement, et comment le remplacer pour appliquer un flux des processus d'entreprise de votre choix au nouveaux enregistrements d'entités.

Par défaut, pour une entité qui a plusieurs flux des processus d'entreprise définis, le système applique un flux des processus d'entreprise au nouvel enregistrement d'entité à l'aide de la logique à plusieurs étapes suivante :

  1. Identifiez tous les flux des processus d'entreprise applicables aux nouveaux enregistrements d'entité basés sur l'attribut Workflow.PrimaryEntity des enregistrements de définition de flux des processus d'entreprise.

  2. Identifiez les définitions de flux des processus d'entreprise auxquelles l'utilisateur actuel a accès. Pour plus d'informations sur la façon dont l'accès à un flux des processus d'entreprise est déterminé et géré, voir Gérer la sécurité des flux des processus d'entreprise précédemment dans cette rubrique.

  3. Toutes les définitions de flux des processus d'entreprise dans le système sont soumises à ordre global par entité. L'ordre du flux des processus d'entreprise est stocké dans l'attribut Workflow.ProcessOrder. Les définitions des flux des processus d'entreprise d'une entité sont triées en fonction de ce ordre, et celle présentant la valeur d'ordre la plus petite est prélevée.

  4. Enfin, si l'enregistrement d'entité est créé à partir d'une application d'entreprise (module d'application), un niveau de filtrage supplémentaire est appliqué pour choisir le flux des processus d'entreprise à appliquer automatiquement au nouvel enregistrement d'entité. En travaillant dans une application, les utilisateurs peuvent accéder uniquement aux entités, flux des processus d'entreprise, vues et formulaires appropriés auxquels ils ont accès grâce aux rôles de sécurité attribués à l'application d'entreprise.

    • Si l'application d'entreprise ne contient aucun flux des processus d'entreprise, le flux des processus d'entreprise est appliqué comme décrit jusqu'à l'étape 3.

    • Si l'application d'entreprise comporte un ou plusieurs flux des processus d'entreprise, seuls les flux des processus d'entreprise présents dans l'application s'appliquent. Dans ce cas, lorsque l'utilisateur travaille dans le contexte d'une application d'entreprise, la liste de flux des processus d'entreprise de l'étape 3 est filtrée davantage pour afficher ceux font partie de l'application d'entreprise dans le module d'application, et ceux-ci sont triés en fonction de l'ordre de traitement.

    • Si aucun flux des processus d'entreprise n'est disponible dans une application d'entreprise pour l'entité ou auquel l'utilisateur a accès, aucun flux des processus d'entreprise n'est appliqué au nouvel enregistrement d'entité.

Vous pouvez remplacer le comportement par défaut des flux des processus d'entreprise appliqué automatiquement aux nouveaux enregistrements d'entités. Pour cela, sélectionnez l'attribut ProcessId de l'entité sur l'une des valeurs suivantes lors de la création d'un enregistrement d'entité :

  • Définissez sur Guid.Empty pour ignorer la définition d'un flux des processus d'entreprise pour de nouveaux enregistrements d'entités. Vous voudrez peut-être procéder ainsi si vous créez des enregistrements d'entité en bloc, mais que vous ne souhaitez pas que le flux des processus d'entreprise soit appliqués à ceux-ci.

  • Définissez une entité de flux des processus d'entreprise spécifique (comme référence de l'entité). Dans ce cas, le système appliquera le flux des processus d'entreprise spécifié au lieu de la logique par défaut.

Si vous ne définissez pas une valeur de l'attribut ProcessId lors de la création d'un enregistrement d'entité, le système appliquera la logique par défaut comme décrit précédemment.

Notes

Le remplacement du comportement par défaut des flux des processus d'entreprise appliqué automatiquement aux nouveaux enregistrements d'entités est pris en charge uniquement par programme. Vous ne pouvez pas le faire avec l'interface utilisateur.

Prise en charge de la programmabilité côté client pour les flux des processus d'entreprise

Avec Dynamics 365, vous disposez d'un objet côté client vous permettant d'interagir avec les flux de processus d'entreprise dans vos scripts de formulaire. Les flux des processus d'entreprise déclenchent des événements côté client à chaque fois qu'un processus est appliqué à un enregistrement, que la phase soit modifiée ou que son statut passe à Active, Finished ou Aborted.Pour plus d'informations :Écriture d'événements pour les flux de processus d'entreprise

Nombre maximal de processus, de phases et d'étapes

Par entité, la valeur par défaut pour le nombre maximal de flux de processus d’entreprise activés est égale à 10. Vous pouvez spécifier une autre valeur en utilisant l'attribut Organization.MaximumActiveBusinessProcessFlowsAllowedPerEntity. Toutefois, si la valeur est supérieure à 10, vous pouvez constater une diminution de la performance de votre système lorsque vous basculez entre les processus ou lorsque vous ouvrez un enregistrement comportant un flux de processus d’entreprise attribué. Cela peut être particulièrement visible si les processus s’étendent à plusieurs entités.

Les paramètres suivants ne sont pas personnalisables :

  • Le nombre maximal de phases par entité dans le processus est égal à 30.

  • Le nombre maximal d’étapes dans chaque phase est égal à 30.

  • Le nombre maximal d’entités pouvant prendre part au flux de processus est égal à 5.

Voir aussi

Vidéo : Processus d'entreprise dans Microsoft Dynamics CRM 2015
Catégories de processus Dynamics 365
Automatiser les processus d'entreprise à l'aide du processus Dynamics 365
Créer des workflows en temps réel
Activation de processus avec Microsoft Dynamics CRM 2013
Aide et formation : Créer un processus d'entreprise
Aide et formation : Attribuer un rôle de sécurité à un processus d'entreprise
Aide et formation : Guider le personnel dans les tâches courantes avec des processus
Aide et formation : Ajouter des processus d'entreprise prêts à l'emploi
TechNet : flux des processus d'entreprise
Écriture d'événements pour les flux de processus d'entreprise

Microsoft Dynamics 365

© 2017 Microsoft. Tous droits réservés. Copyright