Cours accéléré 101
10 Modules
5 Semaines

Cycles. Importer des fichiers Excel

Cliquez pour copier

Utiliser les cycles dans les processus d'affaires. Lire les données des fichiers Excel.


Pour comprendre la suite du processus, il est nécessaire de faire une petite incursion dans la théorie et de comprendre le principe des cycles. Auparavant, tous nos processus allaient uniquement vers l'avant. Ils pouvaient choisir une bifurcation spécifique (sur l'axe des If-Else et Switch ), mais nous savions avec certitude que chaque bloc ne serait exécuté qu'une seule fois ; il n'y aurait pas de retour en arrière.

Cycles

Les cycles offrent la possibilité de répéter une section particulière plusieurs fois. Le processus est créé de manière à ce que la séquence de blocs sélectionnée soit exécutée encore et encore. Jusqu'à ce que la condition pour terminer la boucle soit remplie.

AppMaster vous donne la possibilité d'utiliser trois types de cycles différents. Le principe de leur fonctionnement est absolument le même. La condition de terminaison de la boucle est la seule chose qui les distingue les uns des autres.

  • Loop. Le plus simple de tous les cycles. Son paramètre Times (Integer) définit une valeur fixe pour le nombre de fois que la boucle donnée doit être exécutée.
  • While loop. Une boucle qui s'exécute jusqu'à ce qu'une certaine condition soit remplie. Cette condition est spécifiée dans le paramètre Condition (Boolean) paramètre. Au début de chaque boucle, la valeur Condition est vérifiée ; si elle est égale à True, la boucle est exécutée ; si elle est égale à False, la boucle s'arrête. Le paramètre Limit (Integer) fixe la limite du nombre de répétitions de la boucle pour éviter qu'elle ne s'éternise. Lorsqu'il est atteint, la boucle s'arrête, quelle que soit la valeur de Condition.
  • For each loop. Boucle conçue pour fonctionner avec des tableaux. Elle prend un tableau en entrée et vous permet d'effectuer une certaine opération sur chaque élément du tableau. Elle est exécutée autant de fois qu'il y a d'éléments dans le tableau.

Chaque cycle possède deux flux de sortie.

  • Loop Body. Le corps de la boucle lui-même. Ce processus, qui sera répété le nombre de fois nécessaire.
  • Completed. Le fil qui sera exécuté lorsque la boucle se terminera. Spécifie ce qu'il faut faire après la fin de la boucle. Au fait, tout cycle peut être terminé sur commande sans attendre que les conditions initiales soient remplies. Pour cela, il suffit d'utiliser le bloc Break Loop au bon endroit. Il transférera immédiatement le flux vers Completed.

Read XLSX File

Pour l'analyse du fichier xlsx, nous utiliserons le bloc Read XLSX File pour analyser le fichier xlsx. Son principe de fonctionnement est presque similaire à celui du For each loop bloc. Il représente le fichier tableau comme un tableau de chaînes de caractères. Et chaque ligne, à son tour, est également un tableau, mais déjà un tableau de colonnes de la ligne donnée.


Le fichier xlsx lui-même se présente sous une forme similaire. La première colonne contient le nom de la section, et la deuxième contient les informations que cette section contient. En même temps, nous ne connaissons pas du tout à l'avance la ligne où l'information est écrite ; elle peut apparaître à n'importe quel endroit arbitraire. Dans cet exemple, la biographie est indiquée sur la deuxième ligne, et le login sur la huitième, mais les lignes et l'ordre dans lequel elles sont écrites peuvent être quelconques.

Le processus de gestion commence par recevoir un fichier comme paramètre d'entrée. Veuillez noter que c'est le type de données du fichier, c'est-à-dire l'ID du fichier, qui est transmis et non le fichier entier. Nous transmettons le même fichier au bloc Read XLSX File bloc.


Each row, dans ce cas, est un analogue de Loop Body. Cela signifie que la boucle sera exécutée autant de fois qu'il y a de lignes dans le fichier xlsx. En même temps, à chaque cycle, nous recevons des informations sur la ligne en cours de traitement (Row number), ainsi que sur les colonnes de cette ligne (Row columns).

Notre tâche consiste à vérifier la première cellule de chaque ligne. Nous nous attendons à trouver une cellule qui indique "Login" ou "Bio". De cette façon, nous comprendrons que nous avons trouvé une colonne contenant les informations nécessaires.

Pour ce faire, nous avons besoin d'un bloc Array Element avec un index de 0. C'est ainsi que nous obtenons le contenu de la première cellule de la chaîne. Ensuite, nous utilisons le bloc Switch pour trouver la correspondance souhaitée (Login, Bio).

Si aucune correspondance n'est trouvée, alors la boucle passe à l'itération suivante, en vérifiant la ligne suivante. Si elle est trouvée, nous comprenons alors que la deuxième cellule de cette ligne devrait contenir l'information dont nous avons besoin et nous utilisons à nouveau le bloc Array Element (mais avec l'indice 1) pour obtenir cette information.

Il ne reste plus qu'à enregistrer ces informations. Après tout, si vous ne le faites pas tout de suite, le cycle continuera tout simplement, et les données reçues seront perdues.

Variables

La meilleure solution dans cette situation serait d'utiliser des variables. Leur signification réside dans le fait que certaines valeurs ne sont pas transférées immédiatement d'un bloc à l'autre mais sont stockées en mémoire et utilisées si nécessaire.

Il existe deux blocs pour cela :

  • Variable bloc. Il peut s'agir de n'importe quel nombre, chaîne de caractères ou même d'un tableau d'objets. Il est important de comprendre que ce bloc lui-même ne fait rien ; il n'a pas de paramètres d'entrée. Il sert uniquement à annoncer le fait qu'un emplacement est alloué dans la mémoire pour écrire une certaine valeur, avec la possibilité de s'y référer à nouveau plus tard et de découvrir cette valeur.
  • Le bloc Set Variable est conçu pour écrire une nouvelle valeur dans une variable.

Dans notre cas, nous allons définir deux variables de type String et écrire les valeurs trouvées dans celles-ci, dans un endroit Login, et dans le deuxième Bio. À la fin de la boucle, nous devons seulement passer la valeur de ces variables au bloc de fin.


Il est maintenant temps de créer un endpoint pour le processus d'entreprise terminé et de le rendre ainsi disponible pour une utilisation sur le front-end de l'application web.


Résultat final

Comme résultat le processus d'affaires devrait être ceci :


Il y a des touches finales pour compléter la création de l'application. Revenons au processus métier frontal et terminons-le. Nous avons besoin de :

  • Passer le modèle de fichier xlsx pour le sauvegarder sur le serveur.
  • Développer le résultat et obtenir l'ID du fichier.
  • Passer cet ID à l'endpoint précédemment créé POST /xlsx-data/
  • Utiliser les données reçues pour les afficher dans les champs appropriés (et aussi pour réinitialiser le paramètre Disable, ouvrant ainsi la possibilité d'édition).

Si tout a été fait correctement, la version finale devrait ressembler à ceci après le chargement des informations à partir des fichiers.

Was this article helpful?
Vous cherchez toujours une réponse ?
Rejoignez la communauté