Comment créer une colonne à incrémentation automatique dans SharePoint pour avoir un numéro d’ordre qui s’incrémente automatiquement pour chaque nouvel élément d’une liste. Par exemple, pour avoir un numéro de facture différent à chaque facture, ou pour des commandes, etc.
Le mécanisme proposé dans ce tutoriel ne nécessite aucun codage ou développement. Il utilise le navigateur et SharePoint Designer pour créer un flux de travail. Vous devez disposer au minimum des droits de conception.
Procédure de création du chrono
Cette procédure est détaillée dans l’article sur les colonnes calculées.
Alors, la première étape est de créer une liste qui contiendra le chrono des autres listes. Vous nommerez cette liste Chrono.
Outre la colonne Titre, cette liste personnalisée doit avoir 2 autres colonnes. Une colonne de type Nombre, intitulée NumeroSuivant et une colonne calculée, intitulée NumeroAvenir.
Dans cet exemple, NumeroSuivant contiendra la valeur du prochain numéro à utiliser.
Par ailleurs, NumeroAvenir est une simple incrémentation de NumeroSuivant. Elle permet de faire une addition qui ne peut pas être faite simplement dans le flux de travail. Cette colonne sera donc utilisée dans le flux de travail, comme NumeroSuivant.
De plus, la colonne NumeroAvenir a pour formule:
= NumeroSuivant+1
Le résultat renvoyé est de type Nombre.
Ajout d’un nouvel élément dans la liste Chrono
Ensuite, ajoutez un nouvel élément qui servira pour la liste Commandes. Vous créerez la liste Commandes plus tard. La numérotation des commandes commencent à 1000.
De plus, comme la liste Chrono peut contenir plusieurs éléments, c’est grâce à la valeur du titre de l’élément (« Commandes » dans cet exemple) que vous retrouverez dans le flux de travail l’élément correspondant
Par ailleurs, si vous le voulez, vous pouvez aussi ajouter un autre élément pour les factures :
Création de la colonne à incrémentation automatique
Tout d’abord, vous allez créer une liste intitulée Commandes. Dans cet exemple, il s’agit d’une liste personnalisée mais cela fonctionne de la même façon avec une liste de type annonces ou une bibliothèque.
Par ailleurs, vous pouvez aussi créer une liste Factures. La procédure est complètement symétrique pour la liste Factures. Pour des raisons de clarté, vous ne trouverez ici que la procédure de la liste Commandes.
Ensuite, dans la liste Commandes, créez une colonne de type nombre, nommée NumeroOrdre. Il s’agit de la colonne à incrémentation automatique.
Création d’une colonne de calcul
Puis, créez une nouvella colonne. Elle est de type valeur calculée et elle s’intitule NumeroCde. Vous l’alimentez avec la formule :
=CONCATENER("NUM";ANNEE(Modifié);"-";GAUCHE("000000";6-(NBCAR(TEXTE(NumeroOrdre;0))));TEXTE(NumeroOrdre;0))
Par ailleurs, elle renvoie des données de type texte.
Ajouter un nouvel élément dans la liste Commandes
Ensuite, pour vérifier le bon fonctionnement des formules, vous ajoutez un nouvel élément dans la liste. Pour l’instant, vous renseignez manuellement la colonne à incrémentation automatique NumeroOrdre. Lorsque le flux de travail sera terminé, ce champ sera alimenté automatiquement.
Le résultat donne :
Création du flux de travail avec SharePoint Designer
Ouvrez SharePoint Designer. Puis ouvrez votre site SharePoint dans SharePoint Designer. Patientez quelques secondes, le temps que SharePoint Designer récupère les informations du site SharePoint.
Dans SharePoint Designer, cliquez sur Flux de travail dans le menu de gauche.
Dans le menu du haut, cliquez sur Flux de travail de liste et sélectionnez la liste Commandes: La fenêtre Créer un flux de travail de liste s’ouvre.
Nommez votre flux de travail AutoInc puis cliquez sur le bouton OK.
Dans le menu du haut, cliquez sur Condition et ajoutez la condition Si le champ de l’élément actif est égal à la valeur.
Cette condition vous permet de tester que la colonne à incrémentation automatique NumeroOrdre est bien vide avant de l’alimenter.
Cliquez sur la première zone champ. Dans la liste déroulante qui s’ouvre, sélectionnez la colonne à incrémentation automatique NumeroOrdre.
Cliquez sur la zone est égal. Dans la liste déroulante, sélectionnez est inférieur ou égal à.
Ensuite, cliquez sur la zone valeur et tapez 0.
Débugger le workflow
SharePoint Designer n’offre pas d’outils simples pour débugger l’écriture du flux de travail. Pour vous aider à vérifier le bon fonctionnement du flux de travail, vous allez directement consigner les événements du flux de travail dans son historique.
Pour cela, cliquez dans la zone intitulée Commencez à taper ou utiliser le groupe Insertion dans le ruban, puis dans le ruban du haut, cliquez sur le bouton Action. Dans la liste déroulante, sélectionnez l’action Consigner dans l’historique qui se trouve sous la section Actions principales.
Cliquez sur la zone intitulée ce message: une petite fenêtre s’ouvre. Directement dans la petite fenêtre, tapez le message NumeroOrdre est vide. Lorsque que le flux de travail s’exécutera vous pourrez ainsi vérifier son fonctionnement. Vous verrez comment concrètement plus tard.
Consigner les messages
Si la colonne à incrémentation automatique NumeroOrdre n’est pas vide, il serait aussi intéressant de le savoir pour comprendre ce qui s’est passé au moment de l’exécution du flux de travail.
Pour le savoir, vous cliquez sur le bouton Branche Sinon-Si dans le ruban. Si vous le bouton Branche Sinon-Si est grisé, cliquez sous l’action que vous venez d’ajouter.
De manière générale, vous devez être très attentif à l’endroit où vous cliquez pour éviter des erreurs. Toutefois, il est possible de déplacer les actions quand elles ont été mal positionnées. Ce n’est pas le cas avec les conditions.
Sous la branche Else, vous allez ajouter l’événement que NumeroOrdre n’est pas vide dans l’historique.
Si vous cliquez à nouveau sur le bouton Action, vous remarquerez que les dernières actions sont regroupées sous la section Actions récentes (en haut de la liste). Ainsi, vous pouvez plus rapidement retrouver les actions que vous manipuler le plus.
Cliquez sur Consigner dans l’historique. Cliquez sur la zone intitulée ce message. Dans la petite fenêtre, tapez le message NumeroOrdre n’est pas vide.
Modifier le nom de l’étape
La tâche suivante est facultative. Vous allez modifier le titre de l’étape de Étape 1 en Calcul.
Cliquez directement sur le sur le titre Étape 1: le texte s’affiche dans une petite fenêtre. Dans cette fenêtre, remplacer Étape 1 par Calcul.
Maintenant, il faut successivement mettre à jour la colonne NumeroOrdre de la liste Commandes puis la colonne NumeroSuivant de la liste Chrono.
Mise à jour de la colonne NumeroOrdre
Cliquez sous Consigner NumeroOrdre est vide dans l’historique du flux de travail. Ensuite, cliquez sur le bouton Action du ruban. Dans la liste déroulante, sélectionnez Mettre à jour l’élément de la liste sous la section Actions de liste.
Dans cette action, cliquez sur la zone cette liste.
Il faut indiquer à SharePoint Designer, la colonne à mettre à jour. Pour cela, cliquez sur le bouton Ajouter.
Sous la zone Appliquer à ce champ, sélectionnez la colonne NumeroOrdre.
Pour spécifier la valeur à assigner à NumeroOrdre, cliquez sur le bouton fx.
La fenêtre qui s’ouvre va vous permettre d’indiquer à SharePoint Designer, la colonne qui sera utilisée pour alimenter NumeroOrdre.
Dans cette fenêtre, cliquez sur la liste déroulante en face de Source de données puis sélectionnez Chrono. Au moment où vous sélectionnez Chrono, la fenêtre change d’aspect et une boite supplémentaire (« Rechercher l’élément de liste ») vient s’ajouter en bas. C’est normal, vous allez bientôt comprendre pourquoi.
Pour l’instant, en face de Champ de la source, sélectionnez NumeroSuivant.
Récapitulatif intermédiaire des manipulations précédentes
Arrivé à ce stade, qu’avez-vous fait ?
1) Vous avez indiqué que la colonne NumeroOrdre (liste: Commandes) doit être mise à jour
2) Vous venez d’indiquer que la colonne NumeroOrdre sera mise à jour à partir de la colonne NumeroSuivant (liste: Chrono)
Vous pourriez penser que c’est suffisant et que la boite supplémentaire de dialogue supplémentaire est inutile.
Sélection du bon élément dans la liste Chrono
Cependant, la liste Chrono peut avoir de nombreux éléments, il est donc nécessaire d’indiquer à SharePoint Designer quel élément de la liste Chrono doit être sélectionné. C’est l’objectif de la boite de dialogue supplémentaire.
La sélection se fait en indiquant un critère (rôle de la zone Champ) et une valeur (zone Valeur). Dans champ, vous indiquez Titre et dans valeur vous tapez Commandes.
« Commandes » est le nom de l’élément créé plus haut dans la liste Chrono.
Cliquez sur le bouton OK.
Une fenêtre s’affiche avec un message d’avertissement qui vous informe que la recherche définie peut renvoyer plusieurs valeurs. Le workflow utilisera systématiquement la première valeur, qu’il en existe une ou plusieurs. Vous savez qu’il n’y en a qu’une mais SharePoint Designer n’en sait rien.
Cliquez sur le bouton Oui: la fenêtre Affectation de valeurs mise à jour apparait:
Cliquez sur le bouton OK: la fenêtre Mettre à jour les éléments de liste mise à jour apparait:
Cliquez sur le bouton OK.
Mettre à jour la colonne NumeroSuivant
Maintenant, il ne reste plus qu’à mettre à jour la colonne NumeroSuivant de la liste Chrono avec NumeroAvenir de la liste Chrono aussi.
Cliquez sous Mettre à jour l’élément dans Élément en cours. Ensuite, cliquez sur le bouton Action du ruban. Sélectionnez Mettre à jour l’élément de la liste sous la section Actions récentes (en haut).
Dans cette action, cliquez sur la zone cette liste.
En face de Liste, cliquez sur la liste déroulante puis sélectionnez Chrono. Au moment où vous sélectionnez Chrono, la fenêtre change d’aspect et une boite supplémentaire (« Rechercher l’élément de liste ») vient s’ajouter en bas.
Cliquez sur le bouton Ajouter.
Sous la zone Appliquer à ce champ, sélectionnez la colonne NumeroSuivant.
Pour spécifier la valeur à assigner à NumeroSuivant, cliquez sur le bouton fx.
La fenêtre qui s’ouvre va vous permettre d’indiquer à SharePoint Designer, la colonne qui sera utilisée pour alimenter NumeroSuivant.
Dans cette fenêtre, cliquez sur la liste déroulante en face de Source de données puis sélectionnez Chrono. Au moment où vous sélectionnez Chrono, la fenêtre change d’aspect et une boite supplémentaire (« Rechercher l’élément de liste ») vient s’ajouter en bas.
Pour l’instant, en face de Champ de la source, sélectionnez NumeroAvenir.
Dans champ, vous indiquez Titre et dans valeur vous tapez Commandes. « Commandes » est le nom de l’élément créé plus haut dans la liste Chrono.
Cliquez sur le bouton OK.
Une fenêtre s’affiche avec un message d’avertissement. Celui-ci vous informe que la recherche définie peut renvoyer plusieurs valeurs et que dans ce cas, seule la première sera utilisée.
Cliquez sur le bouton Oui: la fenêtre Affectation de valeurs mise à jour apparait:
Cliquez sur le bouton OK: la fenêtre Mettre à jour les éléments de liste apparaît partiellement mise à jour:
Second récapitulatif des manipulations précédentes
Arrivé à ce stade, qu’avez-vous fait ?
1) Vous avez indiqué que la colonne NumeroSuivant (liste: Chrono) doit être mise à jour
2) Vous venez d’indiquer que la colonne NumeroSuivant sera mise à jour à partir de la colonne NumeroAvenir (liste: Chrono)
3) Vous avez même précisé le critère de sélection (Titre= »Commandes ») pour savoir de quel élément, la valeur de NumeroAvenir sera obtenue.
Mise à jour du bon élément
Cependant, vous devez aussi indiquer de quel élément la valeur de NumeroSuivant doit être mise à jour. C’est le rôle de la boite de dialogue Rechercher l’élément de liste.
En face de Champ, cliquez sur la liste déroulante et sélectionnez Titre. Dans valeur, tapez Commandes.
Une fenêtre s’affiche avec un message d’avertissement. Celui-ci vous informe que la recherche définie peut renvoyer plusieurs valeurs et que dans ce cas, seule la première sera utilisée.
Cliquez sur le bouton Oui: la fenêtre Affectation de valeurs mise à jour apparait:
Cliquez sur le bouton OK.
Flux de travail à jour
Le flux de travail devient:
Dans le ruban, cliquez sur le bouton Enregistrer (ou faites CTRL+S).
Dans le fil d’Ariane:
Cliquez sur AutoInc pour accéder aux paramètres du flux de travail.
Sous Options de démarrage, cochez la case Démarrer automatiquement le flux de travail lorsqu’un élément est créé.
Cette option permettra un démarrage systématique du flux de travail, et donc une mise à jour automatique du NumeroOrdre.
Puis, dans le ruban, cliquez sur le bouton Enregistrer (ou faites CTRL+S).
Publication du flux de travail
Ensuite, cliquez sur le bouton Publier.
Si vous ne publier pas votre workflow, il ne s’exécutera pas et il n’apparaîtra pas dans les Paramètres du flux de travail de la liste.
Ensuite, patientez quelques instants.
Enfin, fermez SharePoint Designer puis retournez sur le navigateur.
Ajout de nouveaux éléments dans la liste Commandes
Avec le navigateur, ouvrez la liste Commandes. Éventuellement, supprimez les éléments présents dans la liste.
Puis, ajoutez un nouvel élément : ne renseignez pas la colonne à incrémentation automatique NumeroOrdre.
Ensuite, cliquez sur le bouton Enregistrer pour valider votre saisie.
Pour rafraîchir l’affichage du navigateur, faites CTRL+F5 (n’oubliez pas d’appuyer sur la touche CTRL !). En effet, le CTRL+F5 permet de forcer le navigateur Internet Explorer à faire u,e nouvelle demande au serveur sans utiliser son cache local.
Selon la charge de votre serveur, SharePoint affiche que le flux de travail est en cours. Il peut aussi indiquer qu’il est terminé.
Ensuite, faites CTRL+F5 pour rafraîchir l’écran.
En effet, vous constatez que le workflow a bien mis à jour la colonne NumeroCde.
Vérification de la mise à jour de liste Chrono
Ensuite, à titre de vérification, cliquez sur la liste Chrono pour savoir les valeurs contenues:
L’élément Commandes s’incrémente correctement tandis que l’élément Factures ne change pas.
Maintenant vous retournez sur la liste Commandes et saisissez 2 ou 3 commandes supplémentaires et vérifiez que le NumeroCde s’alimente correctement:
Ensuite, après avoir vérifié que tout fonctionne bien, dans un souci d’esthétique, vous pouvez modifier l’affichage pour cacher la colonne NumeroOrdre.
Vous pouvez aussi cliquer sur une valeur Terminé sous AutoInc. En effet, sous la section Historique des flux de travail, vous verrez uniquement indiqué dans la colonne Description : NumeroOrdre est vide.
Vérifiez à nouveau Chrono:
Maintenant, vous savez comment créer un flux de travail qui alimente une colonne à incrémentation automatique, comme par exemple un numéro d’ordre.
Laisser un commentaire