Your Training Partner
Référence BPMN
Processus BPMN « Traiter une commande » enrichi de sa perspective données: une entrée et une sortie de données du processus marquées d'une flèche, trois objets de données dont deux états d'une même commande et une collection d'articles, un magasin « Registre des commandes » sous la tâche d'archivage, le tout relié par des associations de données en pointillé.

BPMN: les données

Les données d'un processus se dessinent avec quatre symboles: l'objet de données, qui porte une information le temps d'une instance, le magasin de données, qui la conserve au-delà, puis l'entrée et la sortie de données, qui déclarent ce que le processus reçoit et ce qu'il produit. Une association de données les relie aux activités, sans effet sur le déroulement du processus.

Le chapitre sur les flux et les artefacts a posé l’association, qui rattache une information à un objet de flux, puis signalé l’association de données, un connecteur distinct que ce chapitre reprend avec les éléments qu’il relie.

BPMN ne fournit ni modèle de structure de données ni langage d’expression. Il pose des points d’accroche pour des structures et des langages définis à l’extérieur, plusieurs pouvant coexister dans un même modèle, et il désigne XML Schema et XPath comme ses langages par défaut, qu’un fournisseur d’outil peut remplacer1. La clause qui ouvre le sujet parle d’items, terme sous lequel elle réunit les objets physiques et les objets d’information1.

L’objet de données (data object)

L’objet de données est le principal moyen de modéliser les données à l’intérieur du flux d’un processus. Il possède un cycle de vie défini, dont découlent des contraintes d’accès2. Le standard le décrit par son emploi: il renseigne sur ce qu’une activité exige pour être exécutée, sur ce qu’elle produit, ou sur les deux3.

Un objet de données doit être contenu dans un processus ou un sous-processus, et il s’affiche sur le diagramme2. Son symbole est une page à coin corné4: Dumas le décrit comme un document au coin supérieur droit replié5.

Traiter une commandeDiagramme BPMN 2.0 : Traiter une commande. smartgecko.academyCommande reçueVérifier lacommandePréparerl’expéditionArchiver lacommandeCommandetraitéeCommandesmartgecko.academy
L'exemple de traitement de commande des deux chapitres précédents, avec un premier objet de données. La ligne pointillée qui descend vers la tâche en fait une entrée de « Vérifier la commande ».

Dumas en donne l’étendue: un objet de données représente l’information et la matière qui entrent dans une activité et en sortent, aussi bien un objet physique porteur d’information comme une facture papier, une matière comme un produit, qu’un objet électronique comme un courriel5.

Les éléments porteurs d’items (item-aware elements)

Plusieurs éléments stockent ou transportent des items pendant l’exécution du processus. Le standard les appelle des item-aware elements et les rapproche de la variable des langages de programmation6. Six en relèvent: l’objet de données, la référence à un objet de données, le magasin de données, la propriété (property), l’entrée de données et la sortie de données6.

Deux associations les décrivent. itemSubjectRef désigne l’ItemDefinition qui donne la structure des items stockés ou transportés, dataState, l’état des données contenues6. Un tel élément peut rester sous-spécifié, l’attribut structure de son ItemDefinition étant facultatif6.

La propriété n’a pas de représentation sur le diagramme. Elle sert de conteneur de données rattaché à un élément de flux, et seuls les processus, les activités et les événements peuvent en contenir7.

La collection

isCollection dit si l’objet représente une collection d’éléments; la valeur par défaut est fausse. Lorsqu’une ItemDefinition est référencée, l’attribut doit valoir ce que vaut le sien2. Un objet ainsi marqué se dessine autrement qu’une structure à instance unique2: la page reçoit les trois barres verticales déjà rencontrées au marqueur d’instances multiples8.

Traiter une commandeDiagramme BPMN 2.0 : Traiter une commande. smartgecko.academyCommande reçueVérifier lacommandePréparerl’expéditionArchiver lacommandeCommandetraitéeCommandeArticlescommandéssmartgecko.academy
« Articles commandés » porte les trois barres verticales de la collection. Le même symbole vaut donc pour une pièce unique et un lot.

Le cycle de vie et l’accessibilité

Le cycle de vie d’un objet de données est celui du processus ou du sous-processus qui le contient. L’instanciation du parent instancie l’objet. La disparition de l’instance parente emporte celle de l’objet, dont les données cessent d’être disponibles2.

L’accessibilité en découle. Un objet de données est accessible à son parent immédiat, à ses éléments de flux frères et aux enfants de ceux-ci, références comprises2.

Silver ramène cela à une lecture courte: un objet de données est la variable locale d’un niveau de processus, une donnée temporaire logée dans l’instance4.

La référence à un objet de données (data object reference)

Un même objet de données peut apparaître plusieurs fois dans un diagramme. Chaque apparition renvoie à la même instance, et le standard autorise cette répétition pour simplifier le tracé des connexions2. La référence à un objet de données porte cette réutilisation: son attribut dataObjectRef désigne l’objet référencé2.

Ce qu’un outil dessine est toujours une référence. La table de résolution du dessin fait correspondre la forme « objet de données » à une DataObjectReference, et la forme « collection » à une référence dont l’objet porte isCollection à vrai9.

L’état (data state)

Une référence peut porter un état. L’étiquette affichée s’obtient en concaténant le nom de l’objet référencé et l’état entre crochets, sous la forme <nom de l'objet> [ <état> ]2. Deux références au même objet montrent ainsi la même commande à deux moments du processus.

Le standard laisse la définition des états hors de son champ: les valeurs possibles et leur sémantique appartiennent au modélisateur, qui dispose de l’élément DataState et des mécanismes d’extension pour les poser2.

Traiter une commandeDiagramme BPMN 2.0 : Traiter une commande. smartgecko.academyCommande reçueVérifier lacommandePréparerl’expéditionArchiver lacommandeCommandetraitéeCommande[reçue]Commande[validée]Articlescommandéssmartgecko.academy
« Commande [reçue] » et « Commande [validée] » sont deux références au même objet de données. La vérification consomme la première et produit la seconde.

Silver relève l’usage courant des outils, qui écrivent l’étiquette complète dans le nom sans créer de DataState, ce qui convient à un modèle non exécutable8. Dumas tient l’indication de l’état pour facultative et l’emploie pour suivre un objet d’un bout à l’autre, une facture ouverte, puis approuvée ou rejetée, puis archivée5.

Le magasin de données (data store)

Un magasin de données donne aux activités un moyen de lire ou de mettre à jour une information conservée au-delà de la portée du processus10.

Le magasin lui-même est un élément racine, défini en dehors de tout processus. Ce qui se dessine est une référence à un magasin, contenue par un processus, et un même magasin peut être représenté à plusieurs endroits10. Cette référence est un item-aware element: elle sert donc de source ou de cible à une association de données, et les données qui y entrent ou en sortent entrent dans le magasin référencé ou en sortent10. Deux attributs bornent sa contenance, capacity et isUnlimited, le second l’emportant sur le premier quand il vaut vrai10.

Traiter une commandeDiagramme BPMN 2.0 : Traiter une commande. smartgecko.academyCommande reçueVérifier lacommandePréparerl’expéditionArchiver lacommandeCommandetraitéeCommande[reçue]Commande[validée]ArticlescommandésRegistredescommandessmartgecko.academy
Le cylindre du magasin reçoit la commande archivée. La ligne qui y entre est une écriture; une ligne qui en partirait serait une lecture.

Dumas le décrit comme un lieu contenant les objets de données à conserver au-delà de la durée d’une instance, une base de données pour des objets électroniques ou une armoire à dossiers pour des objets physiques, et le dessine en cylindre vide à triple bord supérieur5. Silver donne le sens de la ligne: une association de données dirigée vers le magasin est une mise à jour, celle qui en part est une consultation. Il resserre aussi ce que le symbole désigne, une unité d’information rangée dans un système, un enregistrement de base de données plutôt que la base entière4.

Ce qui sépare l’objet du magasin

La durée de vie suffit à trancher. Un objet de données disparaît avec l’instance de processus ou de sous-processus qui le contient2. Un magasin de données survit à la fin du processus, et le processus comme des acteurs extérieurs l’interrogent et le mettent à jour104. Silver ajoute que le second correspond le plus souvent à ce qu’un modélisateur appelle « données »4.

L’association de données (data association)

Une association de données déplace des données entre les objets de données, les propriétés et les entrées et sorties des activités, des processus et des tâches globales. Aucun jeton n’y circule, si bien qu’elle reste sans effet direct sur le déroulement du processus11.

Elle est contenue par une activité ou un événement. Elle a une ou plusieurs sources et une cible, toutes des item-aware elements, et le contenu de la source est copié dans la cible11. Sans expression de transformation, une seule source est admise et son contenu part tel quel; avec une transformation, l’expression est évaluée et son résultat est copié11. Les deux extrémités partagent la même ItemDefinition, sauf si l’association porte une transformation qui convertit l’une en l’autre11. L’élément Assignment affecte un à un des éléments de la structure source à des éléments de la structure cible11.

Le connecteur peut être représenté sur le diagramme, au style de l’association11: une ligne pointillée terminée par une pointe en V4.

L’association de données et l’association

L’association rattache une information ou un artefact à un objet de flux et laisse chaque chose où elle est. L’association de données transporte un contenu d’un item-aware element vers un autre. Les deux se tracent de la même manière: BPMN 1.2 employait l’association dirigée pour montrer l’entrée et la sortie d’une activité, et la version 2.0.2 a confié ce rôle à un connecteur distinct qui en reprend le tracé11.

La direction de l’association porte l’affirmation métier: une association entrante fait de l’objet une entrée de l’activité, une association sortante en fait une sortie5.

La sous-structure invisible

Le comité qui a rédigé BPMN 2.0 a écarté le raccordement direct d’une association de données à une activité ou un événement: source et cible doivent être des item-aware elements, qualité que portent les entrées et les sorties de données d’un nœud de flux plutôt que le nœud lui-même8.

Le standard en tire une consigne dans le tableau de sa sous-classe descriptive. DataAssociation y est abstraite et la sérialisation XML fait apparaître DataInputAssociation et DataOutputAssociation. Un éditeur BPMN devrait engendrer de lui-même la sous-structure que ces deux éléments réclament: ioSpecification, inputSet, outputSet, l’entrée et la sortie de données12. Silver en donne le coût, une sérialisation verbeuse pour des éléments qui ne paraissent nulle part dans le dessin8.

Le raccourci sur le flux de séquence

Un objet de données peut être rattaché directement à un flux de séquence. Le standard y voit un raccourci visuel qui normalise deux associations de données: l’une depuis un item-aware element contenu par la source du flux vers l’objet, l’autre de l’objet vers un item-aware element contenu par la cible11.

Traiter une commandeDiagramme BPMN 2.0 : Traiter une commande. smartgecko.academyCommande reçueVérifier lacommandePréparerl’expéditionArchiver lacommandeCommandetraitéeCommande[reçue]Commande[validée]ArticlescommandésRegistredescommandessmartgecko.academy
Variante de la figure précédente: les deux associations de « Commande [validée] » cèdent la place à une seule ligne, sans pointe, posée sur le flux de séquence. La sémantique reste celle de la figure précédente.

Silver conseille de dessiner les deux associations de données plutôt que le raccourci, tous les outils ne faisant pas la conversion4. Dumas décrit la même écriture: un objet passé d’une activité à la suivante laisse au flux de séquence le soin d’ordonner les deux5.

Les entrées et les sorties de données (data input, data output)

Une activité ou un processus a souvent besoin de données pour s’exécuter, et il en produit pendant son exécution ou à son issue. Le standard capte le premier besoin par les entrées de données et les ensembles d’entrée, le second par les sorties de données et les ensembles de sortie, tous réunis dans une InputOutputSpecification13. Les tâches et les éléments appelables, tâches globales et processus, sont les seuls à pouvoir déclarer leurs besoins en données. Un sous-processus intégré le fait indirectement par ses caractéristiques de boucle à instances multiples13.

Une entrée de données déclare qu’une donnée d’une certaine nature servira d’entrée, une sortie de données qu’une donnée d’une certaine nature peut être produite13. Les deux sont des item-aware elements et se dessinent comme un objet de données, augmenté d’une petite flèche en bloc: creuse sur l’entrée, pleine sur la sortie13. Elles portent elles aussi isCollection, avec la même règle d’accord que l’objet de données13.

L’affichage sert à montrer les entrées et les sorties du processus de premier niveau, ou celles d’un processus appelé lorsque l’activité d’appel est développée pour le faire voir13. Le rendu reste facultatif et n’est admis que pour les processus9.

Une entrée de données peut recevoir des associations de données entrantes, à une réserve près: celle qui est directement contenue par le processus de premier niveau ne doit pas être la cible d’une association dans le modèle, et la sortie ainsi contenue ne doit pas en être la source13. Les données lues dans les objets et dans les entrées du processus remplissent les entrées des activités, dont les valeurs produites repartent vers les objets de données et vers les sorties du processus11.

Traiter une commandeDiagramme BPMN 2.0 : Traiter une commande. smartgecko.academyCommande reçueVérifier lacommandePréparerl’expéditionArchiver lacommandeCommandetraitéeCommande[reçue]Commande[validée]ArticlescommandésRegistredescommandesBon decommandeAvis d’expéditionsmartgecko.academy
Le diagramme complet. Les deux formes marquées d'une flèche sont l'entrée et la sortie du processus lui-même, les trois autres des objets de données locaux et le cylindre le seul élément qui survit à l'instance.

Un ensemble d’entrée (InputSet) réunit les entrées de données qui forment un jeu valide. Une InputOutputSpecification en compte au moins un, et un ensemble vide signifie que l’activité démarre sans donnée13. L’ensemble de sortie (OutputSet) joue le rôle symétrique, un ensemble vide signifiant que l’activité ne produit rien13.

La sémantique d’exécution évalue les ensembles d’entrée dans l’ordre de leur déclaration; le premier dont toutes les entrées sont disponibles sert à démarrer l’activité, et l’exécution attend tant qu’aucun ne l’est14. À l’achèvement de l’activité, les associations de données dont les sources sont les sorties de l’ensemble de sortie sont exécutées et recopient les valeurs dans le contexte du conteneur14.

L’effet sur le déroulement

Aucun flux de séquence n’atteint un objet de données et aucun flux de message ne s’y raccorde: le standard l’écarte des deux tableaux de connexions15. Silver ajoute le magasin de données à la liste des éléments qu’un flux de message laisse de côté4; le chapitre sur les pools et la collaboration porte cette seconde règle, qui suppose deux participants. Ajouter des données à un diagramme en laisse donc la lecture inchangée.

La sémantique d’exécution décrit en revanche un effet indirect: une activité dont aucun ensemble d’entrée n’est disponible attend14. Dumas le formule du côté du lecteur. Un jeton posé sur l’arc entrant d’une activité ne suffit pas, l’activité attend aussi ses objets de données d’entrée, un objet étant disponible lorsqu’une activité précédente l’a produit ou lorsqu’il entre dans le processus. Un objet de sortie agit sur le déroulement par les activités qui le consomment5.

Dumas pose enfin la question du dosage: les objets de données éclairent la circulation de l’information et de la matière, au prix d’un diagramme plus chargé, ce qui les réserve aux modèles où ils servent un but précis, la préparation d’une automatisation par exemple5.

Les classes de conformité

La sous-classe descriptive, la plus restreinte des trois, porte déjà l’essentiel: DataObject avec son identifiant et son nom, dataStoreReference avec dataStoreRef, ainsi que association/dataAssociation avec sa source et sa cible12. La sous-classe analytique ajoute des flux conditionnels, des tâches, des passerelles, des événements et des marqueurs d’activité. Elle n’ajoute rien du côté des données12.

Un modèle destiné à des interlocuteurs métier dispose donc de l’objet de données, du magasin et du connecteur qui les relie. Silver range de même l’objet de données et le magasin dans sa palette de niveau 1, tout en observant que leurs définitions traitent la donnée du point de vue d’un développeur. Il rappelle l’origine de cette promotion: BPMN 1.2 tenait l’objet de données pour un artefact, une annotation de diagramme dépourvue de sémantique et de règles, quand BPMN 2.0 en a fait un élément sémantique et lui a adjoint le magasin de données4.

Les conventions suisses tranchent autrement. eCH-0158 limite ses conventions au niveau descriptif, dont le jeu de symboles ne porte aucun élément de données, et range le magasin et l’objet de données dans son annexe sur la palette étendue pour la modélisation analytique16. Le chapitre sur le standard eCH reprend cette comparaison.

Au-delà des données

Le chapitre suivant regroupe autrement les éléments posés jusqu’ici, en niveaux de modélisation, et dit ce que chacun autorise: le descriptif, l’analytique et l’exécutable.

Le chapitre suivant

. Les trois sous-classes de conformité de l'OMG, descriptive, analytique et d'exécution commune, les trois niveaux de Silver et les niveaux du standard eCH.

Notes et références


  1. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4 « Items and Data »: BPMN ne fournit pas de modèle intégré de structure de données ni de langage d’expression, il formalise des points d’accroche pour des structures et des langages définis à l’extérieur, il admet la coexistence de plusieurs d’entre eux dans un même modèle, la compatibilité et la vérification de ces langages relevant du fournisseur d’outil, et il désigne XML Schema et XPath comme ses langages par défaut. La même clause pose le sujet en termes d’items, « physical or information items », créés, manipulés et utilisés pendant l’exécution d’un processus. ↩︎ ↩︎

  2. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4.1 « Data Modeling », sous-clause « Data Objects ». Cette sous-clause donne l’objet de données comme construction première de la modélisation des données dans le flux d’un processus, son cycle de vie défini et les contraintes d’accès qui en découlent, l’obligation d’être contenu dans un processus ou un sous-processus, l’affichage sur le diagramme, la référence à un objet de données comme moyen de réutiliser un même objet et d’en montrer différents états à différents points du processus, ainsi que la règle de dérivation de l’étiquette, <Data Object Name> [ <Data Object Reference State> ]. Le tableau 10.52 donne isCollection avec sa valeur par défaut fausse et son accord obligatoire avec l’ItemDefinition référencée, le tableau 10.53 dataObjectRef, le tableau 10.54 le nom du DataState. Sa sous-clause « States » pose que la définition des états, leurs valeurs possibles et leur sémantique restent hors du champ du standard, les adoptants disposant de l’élément d’état et des capacités d’extension. Sa sous-clause « Data Objects representing a Collection of Data » pose la représentation distincte d’une collection et d’une structure à instance unique. Sa sous-clause « Visual representations of Data Objects » autorise plusieurs apparitions du même objet dans un diagramme, chacune renvoyant à la même instance, pour simplifier les connexions. Sa sous-clause « Lifecycle and Accessibility » lie le cycle de vie de l’objet à celui du processus ou du sous-processus parent et limite l’accès au parent immédiat, aux éléments de flux frères et à leurs enfants, références comprises. Le texte du standard n’y est pas univoque: la sous-clause « Data Objects » écrit qu’un objet de données ne peut pas spécifier d’état, tandis que la sous-clause « States » lui accorde une référence facultative à un DataState, que le tableau 10.51 attache d’ailleurs à tout item-aware element↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  3. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §7.3.2 « Extended BPMN Modeling Elements », tableau 7.2, ligne Data Object: l’objet de données renseigne sur ce qu’une activité exige pour être exécutée ou sur ce qu’elle produit, il peut représenter un objet unique ou une collection d’objets, et l’entrée comme la sortie de données donnent la même information pour les processus. ↩︎

  4. Bruce Silver, BPMN Method and Style, 2e édition, Cody-Cassidy Press, 2011, chapitre 4 « Level 1 Palette », sous-clause « Data Object and Data Store »: l’objet de données tenu pour un artefact sans sémantique ni règle en BPMN 1.2 puis promu élément sémantique de plein droit en BPMN 2.0, avec le magasin de données pour nouveauté, tous deux dans la palette de niveau 1 malgré des définitions écrites du point de vue d’un développeur; la page à coin corné de l’objet et le cylindre du magasin, avec l’état entre crochets ajouté à l’étiquette; l’objet de données lu comme la variable locale d’un niveau de processus, visible à ce niveau et à ses enfants, disparaissant avec lui; le magasin comme donnée persistante interrogeable et modifiable par le processus comme par l’extérieur, survivant à la fin du processus et correspondant le plus souvent à ce qu’un modélisateur appelle « données »; l’association de données en ligne pointillée terminée par une pointe en V, que ses points et sa pointe distinguent du tracé du flux de message; l’association entrant dans un magasin lue comme une mise à jour et celle qui en sort comme une consultation, le symbole désignant une unité d’information rangée dans un système plutôt que le système entier; le magasin défini comme élément racine hors de tout processus, la forme dessinée étant une référence contenue dans un niveau de processus; et le raccourci non dirigé posé sur le flux de séquence, dont il conseille de préférer les deux associations de données parce que tous les outils ne font pas la conversion. Le chapitre 6 « BPMN Style Rules » ajoute ses deux règles de validation sur les connecteurs, l’une réservant le flux de séquence aux activités, aux passerelles et aux événements, à l’exclusion notamment d’un pool, d’un objet de données ou d’un autre flux de séquence, l’autre réservant le flux de message aux activités, aux événements de message ou multiples et aux pools en boîte noire, à l’exclusion notamment d’un magasin de données, d’une passerelle ou de la bordure d’un pool contenant un processus. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  5. Marlon Dumas, Marcello La Rosa, Jan Mendling et Hajo A. Reijers, Fundamentals of Business Process Management, 2e édition, Springer, 2018, §3.3 « Business Objects »: la perspective objet, dite aussi perspective données; les objets de données représentant l’information et la matière qui entrent dans une activité et qui en sortent, objets physiques porteurs d’information, matières ou objets électroniques; le document au coin supérieur droit replié et la flèche pointillée à pointe ouverte; le sens de l’association qui fait de l’objet une entrée ou une sortie; la répétition d’un même objet dans le modèle pour éviter les croisements, toutes les occurrences renvoyant au même artefact; le rappel que les objets de données et leurs associations ne remplacent pas le flux de séquence; le raccourci non dirigé posé sur un flux de séquence; l’état facultatif ajouté entre crochets à l’étiquette, avec l’exemple d’une facture ouverte, puis approuvée ou rejetée, puis archivée; le magasin de données comme lieu contenant les objets à conserver au-delà de la durée d’une instance, base de données ou armoire à dossiers, dessiné en cylindre vide à triple bord supérieur; la réponse à la question de l’effet sur les jetons, où une activité attend la disponibilité de ses objets d’entrée même si un jeton est présent sur son arc entrant, un objet étant disponible parce qu’une activité précédente l’a produit ou parce qu’il est une entrée du processus, les objets de sortie n’agissant qu’indirectement; et la réponse à la question du dosage, où les objets de données aident le lecteur au prix d’une complexité accrue, d’où le conseil de ne les employer que pour un but précis comme la préparation d’une automatisation. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  6. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4.1 « Data Modeling », sous-clause « Item-Aware Elements »: les éléments qui stockent ou transportent des items pendant l’exécution, leur rapprochement avec la variable des langages courants, la liste des six éléments concernés (objet de données, référence à un objet de données, magasin de données, propriété, entrée de données, sortie de données), la sous-spécification admise avec l’attribut structure facultatif de l’ItemDefinition, ainsi que le tableau 10.51 pour itemSubjectRef et dataState↩︎ ↩︎ ↩︎ ↩︎

  7. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4.1 « Data Modeling », sous-clause « Properties »: la propriété est un item-aware element dépourvu de représentation sur le diagramme, elle doit être contenue dans un élément de flux et seuls les processus, les activités et les événements peuvent en porter; le tableau 10.57 donne son nom. ↩︎

  8. Bruce Silver, BPMN Method and Style, 2e édition, chapitre 16 « Serializing Data Flow »: le marqueur à trois barres porté par un objet de données dont isCollection vaut vrai; les outils qui écrivent l’étiquette complète dans le nom sans créer de DataState, ce qui convient à un modèle non exécutable; et le refus, par le comité de rédaction de BPMN 2.0, de raccorder une association de données directement à une activité ou à un événement, source et cible devant être des item-aware elements, d’où la présence obligatoire des entrées et des sorties de données dans le XML et une sérialisation verbeuse. Ce chapitre range l’objet de données, le magasin de données et l’association de données dans la sous-classe analytique, ce que contredit le chapitre 4 du même livre, qui les met dans la palette de niveau 1. Le tableau 2.1 de l’OMG tranche: les trois appartiennent à la sous-classe descriptive. ↩︎ ↩︎ ↩︎ ↩︎

  9. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §12.3.2 « BPMNShape », tableau 12.21 « Depiction Resolution for Data »: le rendu des entrées et des sorties de données est facultatif et n’est admis que pour les processus; la forme « objet de données » se résout en une DataObjectReference dont dataObjectRef reste non spécifié ou dont l’objet référencé porte isCollection à faux, la forme « collection » en une référence dont l’objet le porte à vrai, et la forme « magasin de données » en une DataStoreReference↩︎ ↩︎

  10. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4.1 « Data Modeling », sous-clause « Data Stores »: le mécanisme offert aux activités pour lire ou mettre à jour une information persistant au-delà de la portée du processus, la visualisation d’un même magasin en un ou plusieurs endroits par une référence, la référence comme item-aware element servant de source ou de cible à une association de données, et l’équivalence entre les données qui entrent dans la référence ou en sortent et celles qui entrent dans le magasin référencé ou en sortent. Le magasin hérite de FlowElement par sa relation à RootElement. Le tableau 10.55 donne name, capacity et isUnlimited, ce dernier l’emportant sur capacity; le tableau 10.56 donne dataStoreRef↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  11. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4.1 « Data Modeling », sous-clauses « Data Associations », « DataAssociation », « Assignment », « DataInputAssociation », « DataOutputAssociation » et « Data Objects associated with a Sequence Flow »: le déplacement de données entre les objets de données, les propriétés et les entrées et sorties des activités, des processus et des tâches globales, l’absence de jeton sur ce connecteur et donc d’effet direct sur le déroulement du processus, la finalité qui est de remplir les entrées des activités depuis les objets de données ou les entrées du processus puis de renvoyer les valeurs produites vers ceux-ci, le rattachement à une activité ou à un événement, les sources multiples et la cible unique avec la copie de l’une dans l’autre, l’obligation faite à la source et à la cible d’être des item-aware elements, l’ItemDefinition commune ou l’expression de transformation qui convertit, la source unique en l’absence de transformation, la représentation facultative au style de l’association, ainsi que le raccourci visuel de l’objet de données rattaché à un flux de séquence, qui normalise deux associations de données. Le tableau 10.63 donne transformation, assignment, sourceRef et targetRef. Le passage de l’association dirigée de BPMN 1.2 à l’association de données de BPMN 2.0.2, qui en reprend le tracé, est posé en §8.4.1 « Artifacts ». ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  12. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §2.2.2 « BPMN Process Elements ». Le tableau 2.1 « Descriptive Conformance Sub-Class Elements and Attributes » porte DataObject avec id et name, dataStoreReference avec id, name et dataStoreRef, ainsi que association/dataAssociation avec id, name, sourceRef, targetRef et associationDirection. Sa note a précise que DataAssociation est abstraite, que DataInputAssociation et DataOutputAssociation apparaissent dans la sérialisation XML avec leurs attributs obligatoires renvoyant à des item-aware elements, que cela exige ioSpecification, inputSet, outputSet, l’entrée et la sortie de données, et qu’un éditeur BPMN devrait engendrer cette sous-structure invisible. Le tableau 2.2, qui ajoute les éléments de la sous-classe analytique, ne porte aucun élément de données. ↩︎ ↩︎ ↩︎

  13. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4.1 « Data Modeling », sous-clauses « Data Inputs and Outputs », « Data Input », « Data Output », « InputSet » et « OutputSet »: les besoins en données captés par les entrées et les ensembles d’entrée, les données produites captées par les sorties et les ensembles de sortie, leur réunion dans une InputOutputSpecification, les tâches et les éléments appelables (tâches globales et processus) comme seuls éléments pouvant déclarer leurs besoins, le sous-processus intégré qui ne les déclare qu’indirectement par ses caractéristiques de boucle à instances multiples, la déclaration que porte une entrée et celle que porte une sortie, la notation identique à celle de l’objet de données augmentée d’une petite flèche en bloc creuse pour l’entrée et pleine pour la sortie, l’affichage réservé aux entrées et sorties du processus de premier niveau ou d’un processus appelé depuis une activité d’appel développée, l’interdiction faite à une entrée directement contenue par le processus de premier niveau d’être la cible d’une association de données, ainsi que l’ensemble d’entrée et l’ensemble de sortie, obligatoires à au moins un exemplaire, dont la version vide signifie respectivement qu’aucune donnée n’est requise pour démarrer et qu’aucune donnée n’est produite. Les tableaux 10.59 et 10.60 donnent isCollection pour l’entrée et pour la sortie, avec le même accord obligatoire avec l’ItemDefinition référencée. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  14. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.4.2 « Execution Semantics for Data »: les ensembles d’entrée évalués dans l’ordre de leur déclaration, le premier ensemble dont toutes les entrées sont disponibles servant à démarrer l’activité, l’attente tant qu’aucun ne l’est, et l’exécution à l’achèvement de l’activité des associations de données dont les sources sont les sorties de l’ensemble de sortie, qui recopient les valeurs dans le contexte du conteneur. ↩︎ ↩︎ ↩︎

  15. OMG, Business Process Model and Notation (BPMN), version 2.0.2, §7.6.1 « Sequence Flow Connections Rules » et §7.6.2 « Message Flow Connection Rules »: l’objet de données ne figure ni dans le tableau 7.3 ni dans le tableau 7.4, qui ne portent que les objets susceptibles d’avoir des flux entrants ou sortants. ↩︎

  16. Association eCH, eCH-0158 v1.2, Conventions de modélisation BPMN pour l’administration publique, 2020-06-05, https://www.ech.ch/fr/ech/ech-0158/1.2. §1.7 « Modellierungsebenen » limite les conventions au niveau descriptif et renvoie au chapitre 3 pour les éléments de ce niveau; ce chapitre 3 couvre le diagramme, le pool, le couloir, les événements, l’activité, les passerelles, le flux de séquence, le flux de message, le commentaire et les groupes, sans aucun élément de données. L’annexe Erweiterte Symbolpalette für analytische Modellierung porte le magasin de données en §2.5.1 et l’objet de données en §2.5.2, chacun avec ses associations de données dirigées. Le texte consulté est la version allemande, les numéros de clause sont donc ceux qu’elle porte et toute formulation française est notre traduction. ↩︎

BPMN: les pools, les couloirs et la collaboration
Toute la référence
BPMN: niveaux de modélisation et classes de conformité