Aide

Présentation des collections

Une collection est un groupe de plusieurs éléments de données. En général, une collection sert à récupérer un grand nombre d'informations différentes depuis un objet métier, en une seule transaction. Une fois renseignées, les informations d'une collection peuvent être consultées de manière séquentielle à l'aide d'une étape de boucle.

Pensez au contenu d'une collection comme un tableau contenant des lignes et des colonnes. Les colonnes sont appelées champs. Les noms donnés aux champs sont fournis par l'utilisateur ou peuvent être définis dans le ou les objets métier correspondants.

Les champs sont accessibles dans les expressions en utilisant la syntaxe « point », c'est-à-dire le nom de la collection, suivi d'un point, suivi du nom du champ : par exemple, pour un champ « Nom » dans une collection définie dans une étape intitulée « Personne », vous pouvez accéder au champ dans une étape de calcul ou une étape de décision avec la référence : [Person.Name].

Un nom de champ ne peut pas contenir de crochets ou de points, afin de s'assurer qu'aucune collision ne se produise entre la structure de la collection à laquelle il fait référence et les noms.

Définie ou non définie

Lorsque les noms et les types de données des champs sont définis de manière explicite dans le formulaire des propriétés de l'étape de collection, la collection est considérée comme étant définie. Il est possible que l'utilisateur ait inventé la définition de ce champ ou que le concepteur de l'objet métier avec lequel la collection est utilisée l'ait prédéterminé.

De même, si les champs ne sont pas définis dans le formulaire des propriétés, la collection est dite non définie. Cette situation est fréquente lors de l'interfaçage avec des systèmes contenant des données dont la structure peut varier. Un exemple pourrait être l'extraction des données contenues dans une feuille de calcul (sous forme de tableau), si aucune information n'est connue sur les colonnes du tableau dans la feuille de calcul, alors ni les étiquettes ni les types de données ne peuvent être attachés aux colonnes (ou champs) du fichier à l'avance. Les champs de la collection ne sont disponibles qu'au moment de l'exécution.

Collections imbriquées

Une collection peut elle-même contenir des collections. Encore une fois, elles peuvent être définies dans l'étape de collection ou non définies jusqu'à ce qu'elles soient remplies de données.

Les collections imbriquées peuvent être référencées dans des expressions en utilisant d'autres niveaux de la syntaxe « point » décrite ci-dessus. par exemple, si une étape intitulée « Personne » possède une collection intitulée « Qualifications », qui comporte trois champs, « Type », « Nom » et « Grade », les champs sont accessibles par le biais des références : [Person.Qualifications.Type], [Person.Qualifications.Name] and [Person.Qualifications.Grade].

De même, une étape de démarrage de la boucle peut effectuer une boucle directement sur des collections imbriquées en utilisant la même syntaxe. Par conséquent, pour effectuer une boucle sur les qualifications d'une personne dans l'exemple ci-dessus, vous devez définir la collection dans l'étape de démarrage de la boucle sur Person.Qualifications. This generally only makes sense inside loop stages iterating over the Person

Notez, toutefois, que l'objet métier des collections internes ne prend pas en charge les collections imbriquées. Elles doivent d'abord être déplacées vers une étape de collection avant d'être référencées dans une action interne.

La ligne en cours

L'accès aux lignes de la collection doit se faire à l'aide d'une étape de boucle. L'étape de boucle met automatiquement à jour la ligne en cours de la collection, en passant d'une ligne à l'autre, dans l'ordre. Ce changement se produit chaque fois que l'étape de fin de boucle apparaît. La collection se trouve sur la première ligne avant que vous n'entriez dans une étape de boucle. L'étape de boucle se poursuit dans les lignes jusqu'à ce que la dernière ligne de la collection soit atteinte. À ce stade, la boucle s'arrête et il n'y a plus de ligne en cours. Une erreur se produit lorsque vous essayez d'accéder à une collection alors qu'aucune ligne n'est en cours. Pour accéder à nouveau aux données, il est nécessaire de prendre certaines mesures afin que la « ligne en cours » soit à nouveau définie. Les possibilités sont les suivantes :

  • entrer dans une nouvelle boucle ;
  • ajouter une nouvelle ligne à la collection (qui devient alors la ligne en cours, prête à être remplie de données).

Manipulation des collections

Les collections peuvent être manipulées à l'aide de l'objet métier « Interne - Collections ». Pour plus d'informations sur les objets métier internes, consultez Présentation des objets métier internes. Toutes les actions suivantes nécessitent que le nom de la collection soit fourni comme paramètre d'entrée. Le type de données de ce nom est du type texte, plutôt que du type collection. La collection nommée doit être accessible (c'est-à-dire, ne pas se trouver sur une autre page et être masquée) afin d'être utilisée.

Ajouter une ligne
Cette action ajoute une nouvelle ligne à la collection. La nouvelle ligne devient la ligne en cours, prête à être remplie avec de nouvelles données.
Supprimer une ligne
Cette action supprime la ligne en cours de la collection. Une fois qu'une ligne a été supprimée, il n'y a plus de ligne en cours.
Lorsqu'une ligne est supprimée au milieu d'une itération de boucle, la boucle se poursuit sur (ce qui aurait été) la ligne suivante quand elle atteint l'étape de fin de boucle. Si une tentative d'accès à la ligne en cours est effectuée entre-temps, une erreur se produit.
Supprimer toutes les lignes
Cette action supprime toutes les lignes de la collection. Une fois que les lignes ont été supprimées, il n'y a plus de ligne en cours.
Lorsque toutes les lignes sont supprimées au milieu d'une itération de boucle, la boucle ne se poursuit pas sur une nouvelle ligne quand elle atteint l'étape de fin de boucle. Si une tentative d'accès à la ligne en cours est effectuée entre-temps, une erreur se produit.
Compter les lignes
Cette action permet d'obtenir le nombre de lignes de la collection. Cette action se distingue des deux autres par le fait qu'elle possède un paramètre de sortie supplémentaire appelé « compter » qui doit être mappé à un élément de données pour obtenir le nombre de lignes.

Collections d'une seule ligne

Une collection d'une seule ligne contient toujours une ligne et elle est automatiquement définie comme la ligne en cours. Les actions de manipulation de ligne dans l'objet métier des collections génèrent une erreur si elles sont appelées sur une collection d'une seule ligne et Count rows renvoie toujours 1.

Exemples

Collections non définies

Vous souhaitez récupérer tout le contenu d'une feuille de calcul Microsoft Excel

  1. Préparation

    Après vous être assuré que l'objet métier CommonAutomation, CommonAutomation.clsExcel, a été installé, ouvrez Process Studio et ajoutez les étapes suivantes :

    • Une étape de collection : il s'agit de la collection que nous allons remplir.
    • Deux étapes d'action : seulement l'une d'entre elles est intéressante pour la discussion ; l'autre est nécessaire d'un point de vue pratique.
  2. Configuration de l'action pour récupérer les données

    Il convient de remplir la collection à l'aide d'une étape d'action. Ouvrez la page des propriétés de la deuxième étape d'action. Sélectionnez « Microsoft Office : actions Excel » dans le menu déroulant pour l'objet métier (s'il n'apparaît pas, cela signifie que l'objet métier n'a pas été installé correctement) ; choisissez « Obtenir une feuille de travail comme une collection » pour l'action. Dans l'onglet des sorties, faites glisser et déposez le nom de votre étape de collection sur la sortie intitulée « Col1 ». Ceci indique à l'action de placer les données qu'elle collecte dans la collection que vous avez choisie.

  3. Gestion des conditions préalables

    Nous devons remplir toutes les conditions préalables spécifiées par l'étape d'action avant que le processus ne puisse fonctionner. Notez que dans l'onglet des conditions préalables dans les propriétés de l'action en cours, il est indiqué « Un classeur doit être actif ». Voilà le but de l'autre étape d'action. Ouvrez les propriétés pour cette étape d'action et sélectionnez l'action « Ouvrir le classeur » dans l'objet métier « Microsoft Office : actions Excel ». Saisissez le chemin d'accès d'un classeur Microsoft Excel existant.

  4. Terminer

    Enfin, associez les étapes d'action à l'aide de liens (il est inutile d'associer l'étape de collection à quoi que ce soit) et lorsque votre processus est opérationnel, la collection sera remplie une fois la deuxième étape exécutée.

Collections définies

Vous souhaitez récupérer tout le contenu d'un tableau dont les en-têtes des champs ne changent pas.

  1. Préparation

    Après vous être assuré de la disponibilité de l'objet métier qui renvoie une collection, ouvrez Process Studio et ajoutez les étapes suivantes :

    • Une étape de collection : il s'agit de la collection que nous allons remplir.
    • Une étape d'action : il s'agit de l'étape qui remplira notre collection.
  2. Définition de la collection

    Ouvrez les propriétés de l'étape de collection. Dans l'onglet des champs, cliquez sur le bouton Ajouter des champs pour ajouter des champs qui correspondent exactement aux champs de la collection avec laquelle vous allez procéder au remplissage. Choisissez également le type de données pour tous les champs de la collection, ceux-ci doivent correspondre exactement à la collection avec laquelle vous allez procéder au remplissage.

  3. Configuration de l'action pour récupérer les données

    Il convient de remplir la collection à l'aide d'une étape d'action. Ouvrez la page des propriétés des étapes d'action. Choisissez l'action de l'objet métier qui renvoie une collection, et dans l'onglet des sorties, définissez sa sortie sur l'étape de collection intitulée « Col1 »

  4. Terminer

    Enfin, associez les étapes d'action à l'aide de liens (il est inutile d'associer l'étape de collection à quoi que ce soit) et lorsque votre processus est opérationnel, la collection sera remplie à partir de l'étape d'action.