Il est parfois nécessaire d’attribuer un numéro automatique (AutoInc) pour vos formulaires InfoPath enregistrer sur un serveur SharePoint, nous allons vous montrer dans ce tutoriel comment y arriver sans aucune ligne de code, nous allons prendre un cas pratique qui est celui d’un bon de commande interne.
  I-Pré-requis
  Avant de commencé des connaissances sur la conception des formulaires InfoPath et sites SharePoint (des bibliothèques de documents en particulier) sont nécessaire afin de mieux comprendre ce qui va suivre.
  II-Introduction
  Dans ce tutoriel nous n’allons pas nous focaliser sur la création d’un formulaire InfoPath ou sur la création du site SharePoint, nous allons juste voir comment attribuer un numéro automatique aux formulaires enregistrés dans notre bibliothèque.
  Pour réaliser ce tutoriel vous devrais disposer de SharePoint Services et d’InfoPath 2007.
  Afin d’arriver a notre but l’astuce consiste à récupérer, incrémenté ID le plus grand de notre Librairie et de l’attribuer a notre formulaire au moment de l’envoie de celui-ci au serveur donc l’utilisateur ne verra le numéro qu’une fois le formulaire est été envoyé, c’est un peut contraignant mais c’est inévitable pour ne pas avoir des doublons dans le cas d’une utilisation simultané  
  III-Mise en œuvre 
  Nous supposons que vous avez déjà créé votre formulaire et une bibliothèque de formulaire InfoPath nommé pour Bon de Commande Interne.
  Dans votre formulaire InfoPath ajouter un champ Texte pour le numéro si ce n’est pas encore fait que nous allons nommer ici NumBC.
  Pour récupérer ID de notre DocLib nous aurons besoin de créer une connexion de données qui va aller chercher le numéro le plus grand sur notre serveur, 
  III-1 Définition des connexions de données.
  Dans InfoPath allez dans le menu outils –> Connexions de données vous verrez la fenêtre suivante
  
 
  Cliquez sur le bouton ajouter 
  
 
    Choisissez une connexion réception de données et cliquez sur suivant.
  
 
  Choisissez Bibliothèque ou liste SharePoint comme la source de données.
  
 
  Ensuite Saisissez l’url complète vers votre DocLib comme indiqué que l’image (vous pouvez faire un copiez collez dans barre d’adresse de votre navigateur quand vous est sur votre librairie).
  
  
  Sélectionnez la bibliothèque Bon de Commande Interne qui devra paraitre dans votre liste
   
 
  Décochez tous les autres champs a l’exception de la colonne ID et veillez a ce que la case Inclure les données pour le formulaire actif soit décoché cliquez sur suivant et ne faite rien dans la 6eme étape
  
 
  Nommez la connexion GetIDs et veillez aussi à décocher la case Extraire automatiquement les données a l’ouverture du formulaire et cliquez sur Terminer
  De la même manière nous allons créer une autres connexion mais cette fois ci d’envoi  des données  toujours vers une librairie ou liste SharePoint
    
 
          Lorsque vous arrivez à la 3eme étape clique sur le bouton formule a coté du nom de fichier
  
 
  Ensuite cliquez sur le bouton Insérer une formule
  
 
  Allez chercher la fonction concat() cliquez sur  Ok ensuite vous aurez une fonction du genre “concat(double-cliquer pour insérer un champ; double-cliquer pour insérer un champ; double-cliquer pour insérer un champ)” , Insérer a la place du premier paramètre un nom pour votre bon de commande exemple “BCI N°” pour le second paramètre allez cherchez le Champs NumBC
     
  
 
  En résultat vous aurez une fonction qui ressemble a ceci concat(“BC N°”;NumBC).
  Vous pouvez cliquez sur vérifier formule pour vous assurer qu’il n’y pas d’erreurs, cliquez sur OK et nommer votre connexion Envoi.
  Nous pouvons maintenant fermer notre fenêtre Connexions de données.
  III-2 Définition des paramètres d’envoi. Allez dans le menu Outils –> Options d’envoi
    
 
     - cochez la case Autoriser les utilisateurs à envoyer ce formulaire 
     - choisissiez l’option  Effectuer une action personnalisée à l’aide des règles 
     - cliquez sur le bouton Avancer et choisissez fermer le formulaire  dans la liste de choix Après l’envoi 
     - cliquez ensuite sur le bouton Règles      
Suite a une contrainte de la fonction max() qui renvoi une valeur NaN lorsque la bibliothèque est vide nous somme obliger de gérer a part le cas de la création du premier formulaire, pour ce faite nous allons créer trois règles conditionnelle au lieu d’une.
      III-2.1 Récupérer ID courant
      Nous allons tous d'abord créer une règle avec une seul action et sans condition pour récupérer la liste des IDs de notre bibliothèque grâce à la connexion GetIDs que nous avant définit précédemment.
     
     
  
    Ajoutez une action
  
 
               - choisissez dans l’action Exécuter une requête via une connexion de données 
     - choisissez la connexion GetIDs      
Nommez la règle “Récupération des IDs”
      III-2.2 Cas d’une bibliothèque vide
      Quand le cas  d’une bibliothèque vide est vérifié nous savons d’ores et déjà que le numéro à attribuer est 1.
      Aouter une règles cliquez sur le bouton définir une condition.
     
    
  
  
  Sélectionnez “Sélectionnez un champ ou un groupe” et vous verrez apparaitre la fenêtre qui suit
  
          - Sélectionnez la source de données GetIDs 
       - allez cherchez le champ ID 
       - Sélectionnez “Nombre d’occurrences de ID“ 
       - Ok 
    
    Sélectionnez “est égal à“ comme opérateur et Zéro pour la valeur.
    Nous allons maintenant ajouter deux actions à notre règle.
    La première sélectionnez une action de type Définir la valeur d’un champ, pour le champ choisissez NumBC et pour la valeur tapez tous simplement 1.
 
  
 
  Pour la deuxième action  sélectionnez  Envoyer via une connexion de données avec la connexion Envoi que nous avons créé en second lieu.
  
  Nous avons terminé avec notre deuxième règle nommez la “envoi 1er formulaire” ou bon il vous semble. 
  III-2.3 Cas d’une bibliothèque non vide
  Nous allons maintenant créer notre troisième et dernière règle.
  Définissez une condition comme nous l’avons fais avec la deuxième règle mais cette fois avec l’opérateur est supérieur à zéro
  Ajouter une action de type Définir la valeur d’un champ comme nous l’avion fais avec la deuxième action mais pour la valeur de champs insérer une formule et cliquez sur ajouter Insérer une fonction
    
  Choisissez la fonction max() 
  
  Allez chercher le champ ID 
  
Ajouter +1 à la fonction max(@ID)+1 
  
  En final vous aurez une action qui ressemble à ceci.
  Nous allons maintenant ajouter une deuxième action de type Envoyer via une connexion de données comme nous l’avions fais avec la deuxième règle.
  Nommez votre règle “envoi formulaire” et fermer toute vos fenêtres
  IV- Publication du formulaire
  Et voila  c’est fini vous pouvez dès à présent publier et testé votre formulaire
  Remarque qu’après l’insertion du premier formulaire sur votre serveur, la deuxième règle et les conditions que nous avons définis ne servent plus a rien et engendre des traitements inutiles, il est préférable de les supprimer et ne gardé que la première et troisième règle en ôtant la condition.