CSV ( Comma Separated Values) est un format de stockage de tableau dans lequel les valeurs des cellules sont séparées par le symbole ",". Au lieu de ",", on peut utiliser un autre caractère comme séparateur. Cependant, AppMaster exige une virgule.
Il est important de s'assurer que ce caractère ne se trouve pas à l'intérieur de la cellule. Sinon, les données du fichier seront lues de manière incorrecte.
Tout d'abord, créez un modèle de données dans lequel les informations du fichier CSV seront enregistrées. Par exemple, créons un modèle de données pour les vols. Il contiendra les champs suivants
- flight_no - le numéro de vol, au format entier ;
- destination au format chaîne de caractères ;
- classes - classe de vol disponible pour ce vol, au format array [string].
Un exemple de fichier qui sera importé :
La première colonne contient flight_nola deuxième contient destinationet la troisième contient classes.
Dans la troisième colonne, les valeurs sont séparées par un point-virgule.
Créer un processus métier
Allez dans l'onglet Business Logic et cliquez sur le bouton Create Business Process bouton.
Ce processus d'entreprise nécessite un fichier CSV, ajoutez donc le champ fichier au bloc Start au bloc.
Ensuite, nous avons besoin du bloc Read CSV fichier.
De même, vous pouvez utiliser les blocs Read XLS file et Read XLSX file pour les formats correspondants.
Comment fonctionne le bloc Read CSV file:
Il possède deux connecteurs de sortie : Each Row et Completed. Lorsque le bloc est activé, il lit le fichier ligne par ligne, et à chaque fois, il active le connecteur Each Row et transmet le numéro de ligne (Row number, starting from 1) et Row Columns un tableau de chaînes de toutes les colonnes de la ligne actuelle.
Passez le fichier du bloc Start au bloc Read CSV file bloc :
Ensuite, ajoutez le bloc For Each Loop au bloc . Il traitera le tableau de chaînes qui envoie le Read CSV file bloc.
Pour Each Looptout comme le bloc Read CSV file, traite chaque élément du tableau et active le connecteur Loop Body pour chacun d'eux.
Le champ de sortie de l'index dans le bloc For Each Loop est le numéro d'index de l'élément du tableau. Il commence à partir de 0.
Connectez tous les connecteurs :
Le bloc suivant est Switch. Avec son aide, nous allons déterminer où écrire les valeurs des différents champs.
Switch peut accepter tout type d'entrée et, en fonction de celle-ci, peut activer différents connecteurs de sortie. Le connecteur Default est activé si la valeur d'entrée ne correspond à aucun des connecteurs créés.
Le fichier CSV comporte trois colonnes, ce qui signifie qu'il y a trois valeurs stockées dans chaque tableau Row columns, toujours dans le même ordre :
- nombre ;
- direction ;
- classes.
Par conséquent, nous créerons trois connecteurs de sortie dans le bloc Switch 0, 1 et 2 et passerons l'index du bloc For Each Loop au bloc Switch bloc.
La première colonne du fichier contient le numéro de vol. Mais le bloc For Each Loop l'obtient dans le format string . Par conséquent, nous le convertissons en un nombre entier en utilisant le bloc To integer avant de le sauvegarder. Après cela, nous le sauvegardons dans une variable en utilisant le bloc Set variable dans une variable.
La deuxième colonne du fichier contient la direction en string format. Elle peut être immédiatement sauvegardée dans une variable.
La troisième colonne du fichier contient une liste de classes séparées par des points-virgules. Le bloc For Each Loop l'obtient également au format chaîne de caractères. Il faut donc la diviser en un tableau de chaînes de caractères. Pour ce faire, nous utilisons le Split String pour le faire. Passons une chaîne de caractères contenant une liste de classes et définissons " ;" comme séparateur par défaut.
Enregistrez la valeur reçue dans une variable.
Une configuration en boucle à travers toutes les valeurs des colonnes de chaque ligne est terminée.
Nous devons créer une entrée à partir de chaque ligne du fichier. Nous utilisons le connecteur de sortie complété dans le bloc For Each Loop et le bloc Make flight pour le faire. Transférons-y toutes les variables reçues au cours du cycle.
Maintenant, sauvegardez le modèle créé dans Make flight en utilisant le bloc DB Create flight bloc.
Ainsi, chaque ligne est sauvegardée comme un enregistrement dans la base de données.
Il nous faut maintenant terminer le traitement du fichier. Nous allons utiliser le completed connecteur de sortie dans le bloc Read CSV file et le connecter au bloc End bloc.
La BP d'importation depuis un fichier est terminée.
Endpoint Configuration de
Allez à l'onglet Endpoints et créez un nouveau point de terminaison.
Sélectionnez la méthode POST , définissez l'adresse URL adresse, sélectionnez le Flight groupet le BP créé Import CSV.
Configuration d'un bouton sur le frontend
Maintenant nous devons mettre en place un bouton sur le front-end pour télécharger le fichier.
Faites glisser l'élément File picker sur le canevas.
Et configurer la BP pour celui-ci :
Utilisez le onSelectfiles trigger. Ce déclencheur reçoit les fichiers sous forme de tableau, même s'il n'y a qu'un seul fichier. Par conséquent, nous allons utiliser le bloc Array Element pour obtenir un élément du tableau. Définissons le champ index à 0 pour obtenir le premier élément du tableau.
Maintenant, sauvegardez le fichier téléchargé dans la base de données à l'aide du bloc Server request POST /_files/ .
Développez le fichier résultant à l'aide du bloc Expand file pour développer le fichier résultant.
Passez maintenant l'ID (qui dans ce cas est un fichier) au bloc Server request POST /flight/csv/ bloc.