Pages: 1
- Sujet précédent - Obtenir un sortie avec entêtes de champ et sans entité au format CSV - Sujet suivant
#1 Fri 14 June 2024 14:39
- Max C0L1
- Juste Inscrit !
- Lieu: Les Monts d'aunay
- Date d'inscription: 18 Jan 2023
- Messages: 4
Obtenir un sortie avec entêtes de champ et sans entité au format CSV
Bonjour
Je souhaite obtenir un fichier CSV avec une liste de données filtrées même quand je n'ai aucune entité (FME 2022.2)
J'utilise le transmormer TestFilter et j'obtiens à la sortie :
1) lorsque j'ai des résultats, le Writer me donne bien un CSV avec les entêtes et les entités
2) lorsque je n'ai pas de résultat il ne me créer pas de fichier CSV
Pour pouvoir avoir un fichier de sortie j'ai ajouté le transformer NoFeaturesTester ce qui créer une ligne vide et me permet d'avoir en sortie un fichier CSV. Le problème c'est que cette solution me créer une entité avec des données vide alors que j'ai besoin uniquement des entêtes !
Je débute avec FME et je vois pas trop vers où m'orienter !
Si quelqu'un a une piste ?
Hors ligne
#2 Sat 15 June 2024 10:23
- Benoit D
- Participant assidu
- Date d'inscription: 17 Jul 2018
- Messages: 151
Re: Obtenir un sortie avec entêtes de champ et sans entité au format CSV
Bonjour, je n'ai pas trouvé de manière simple de faire.
Si votre schéma est fixe, un CSV n'étant qu'un fichier texte formaté, écrivez un fichier texte en fabricant votre ligne d'entête et en l'écrivant dans un fichier texte. Attention à bien respecter votre caractère de séparation, votre fin de ligne, votre encodage.
Si votre schéma est dynamique ou variable, il faudrait avoir au moins une entité dispo, par exemple dans un traitement avant le filtre qui ne renvoie aucune entité, puis d'en extraire les attributs par un "SchemaScanner" à la sortie duquel on ajoute un "ListConcatenator" pour générer la ligne des entêtes en faisant bien attention à choisir son caractère de séparation, puis on doit retraiter la chaîne créée pour retirer les attributs non exposés qui ont étés ajoutés, je le fais avec un "StringReplacer" en mode Expression régulière contenant la valeur "(csv[^,]+,?|fme[^,]+,?|multi[^,]+,?)" si le séparateur est la virgule (à adapter sinon) pour retirer les champs liés à la lecture du CSV, aux attributs FME obligatoires. Enfin cette ligne sera écrite dans un fichier texte.
Hors ligne
#3 Thu 17 October 2024 09:06
- Max C0L1
- Juste Inscrit !
- Lieu: Les Monts d'aunay
- Date d'inscription: 18 Jan 2023
- Messages: 4
Re: Obtenir un sortie avec entêtes de champ et sans entité au format CSV
Merci pour cette solution ça m'a bien aidé !
Hors ligne
Pages: 1
- Sujet précédent - Obtenir un sortie avec entêtes de champ et sans entité au format CSV - Sujet suivant