Base de Connaissance

Apprenez auprès des experts.
TIPS de la semaine

Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !

Voir l'index
Vous souhaitez vous servir de la fonction Length ? Découvrez ce qu'il faut savoir pour l'utiliser au mieux !
Afficher l'article complet
Envie de sortir de vos routines analytiques pour lesquelles les problématiques se ressemblent ? De sortir de votre zone de confort ?   Je partage avec vous chaque semaine la manière dont je relève les défis hebdomadaires💪🏼      
Afficher l'article complet
Les "astuces quotidiennes" sont de courts articles destinés à donner des tips rapides et efficaces autour de la plateforme Alteryx.  
Afficher l'article complet
Qu'est ce que le classement des utilisateurs  ? Le classement des utilisateurs ajoute un élément de gamification amusant qui encourage la participation, récompense la qualité des échanges et établit votre réputation dans la communauté. Chaque membre de la communauté se voit attribuer un grade en fonction de ses contributions.   Y a-t-il une liste des rangs d'utilisateurs  ? Oui ! La voici :  Hypernova Supernova Nova Polaris Arcturus Altaïr Pollux Castor Nébuleuse Aurore Magnétar Pulsar Quasar Bolide Boule de feu Comète Astéroïde Météore Météoroïde Atome Baryon Proton Matter Matière noire   Pourquoi le thème d'astronomie  ? Votre travail est une affaire sérieuse, mais votre expérience au sein de la Communauté n'est pas obligée de l'être 😉 Le thème d'astronomie est léger, amusant, et, franchement, extraordinaire !   Comment puis-je obtenir un nouveau classement ? Les classements des utilisateurs sont attribués en fonction de combinaisons de différents types d'activité dans la communauté. Bref, plus vous participez, plus vous pourrez atteindre une position élevée !   Quelles fonctionnalités sont déverrouillées avec chaque position ? Nous ne gâcherons pas toutes les surprises qui vous attendent, mais, oui, il y a quelques fonctionnalités principales qui méritent d'être soulignées : - La fonction de messagerie privée est activée lorsque vous atteignez le rang "Matter" - Dès que vous atteignez le statut de "Météoroïde", vous avez la possibilité de mentionner les membres de la communauté dans vos messages.   Quels sont les critères pour chaque position ? Ce ne serait pas aussi amusant si on vous le disait  !   Où mon classement s'affiche-t-il  ? Votre position s'affichera sur votre page de profil, sur chacune de vos contributions, et sur votre profil pop-up.   J'ai vu des utilisateurs avec des positions qui ne sont pas sur la liste ci-dessus. À quoi ça rime  ? C'est vrai. Certaines personnes (les employés Alteryx et les partenaires, pour ne citer qu'eux) ont des positions personnalisées afin que vous sachiez toujours avec qui vous interagissez.   Alors, qui sera le prochain Hypernova ?  
Afficher l'article complet
Bienvenue dans la Communauté francophone Alteryx ! Chez Alteryx, nous sommes extrêmement passionnés par le fait de vous permettre de pouvoir fournir rapidement des informations plus approfondies avec des workflows intuitifs. Nous avons créé cet espace en tant qu'interface de support entre utilisateurs francophones pour vous donner le loisir de vous réunir, de recueillir des informations précieuses les uns des autres, de collaborer et d'innover autour des produits Alteryx. Nous souhaitons que votre voyage ici soit le plus complet possible. Nous avons donc conçu ce guide pour vous aider à vous familiariser rapidement avec la communauté Alteryx. Nous espérons que vous trouvez cela utile !   DÉMARRAGE RAPIDE   Posez des questions   Lancez une conversation, recherchez des solutions et partagez toutes vos questions en français.    Visitez le Forum    Obtenez une formation   Besoin d'aide pour démarrer avec Alteryx, ou à la recherche de techniques supplémentaires pour parfaire vos compétences ? Assurez-vous de passer par l' Alteryx Academy  (actuellement en anglais et très bientôt en français) Le pouvoir d'aider la Communauté   Aidez vos pairs à découvrir de nouvelles et meilleures façons d'obtenir les réponses qu'ils cherchent.   Rendez-vous ici pour voir toutes les questions sans réponse !   AIDE-MÉMOIRE POUR LES NOUVEAUX MEMBRES Consultez les Règles de la Communauté Alteryx pour comprendre ce que signifie être membre ici. Personnalisez votre expérience, votre profil et la fréquence à laquelle vous recevez des e-mails de notre part en accédant à Mes Paramètres. Apprenez-en plus sur les fonctionnalités et les paramètres dans la documentation d'aide de la communauté (en anglais). Curieux à propos du classement des utilisateurs ? Lisez notre FAQ sur les classements d'utilisateurs.   PLUS DE RESSOURCES ALTERYX ! Alteryx.com - En savoir plus sur notre excellente société et notre mission de responsabiliser les analystes et les utilisateurs des différentes branches d'activité en visitant notre site internet (en anglais). Le Cendre d'Aide Alteryx - Un manuel d'utilisateur complet et détaillé accessible en ligne sur le fonctionnement de nos produits. Alteryx Public Galleryx - La Gallery publique Alteryx est une plateforme dans le Cloud qui vous permet de découvrir, de partager et de publier des applications d'analyse (en anglais). Alteryx For Good - Chez Alteryx, nous cherchons avant tout à soutenir des causes louables et nous vous invitons à nous rejoindre dans cette action bénévole (en anglais) ! Anciens téléchargements - Cette page contient des liens de téléchargement Alteryx et des notes de publication pour les versions 11.7 et antérieures (en anglais). Centre de Support - Explorez toutes les ressources et les informations utiles pour résoudre vos questions ! Alteryx SWAG Store - Le Magasin Alteryx est votre point de vente unique où vous trouverez les produits et vêtements officiels Alteryx. Montrez votre fierté pour ALTER.NATION en portant les toutes dernières tenues Alteryx (en anglais) !   Nous sommes impatients de vous compter parmi nous au sein de la communauté !
Afficher l'article complet
Bienvenue dans la Communauté Alteryx !   Chez Alteryx, notre passion est de permettre aux utilisateurs de trouver rapidement des informations appronfondies à l’aide de workflows intuitifs. Nous avons créé cet espace Communauté entre utilisateurs francophones pour faciliter la communication, l’échange, la collaboration et susciter l’innovation autour des produits Alteryx.   Alors que notre communauté a été conçue pour, mais surtout, avec les utilisateurs d’Alteryx, nous accueillons tous ceux qui ont un intérêt pour le mélange de données, l'analyse avancée et le partage de connaissances.   Les règles suivantes ont pour but de vous aider à comprendre la signification d'être membre de la communauté Alteryx. N'oubliez pas que l'utilisation de cette communauté est soumise à ces règles, nos conditions de service et notre politique de confidentialité.     1. Soyez respectueux   Les membres de la communauté ont divers rôles, différents niveaux d'expertise, et sont issus de diverses industries mais tous méritent de se sentir à l'aise ici. Respectez le temps et l'attention des membres en posant des questions claires et en partageant ce que vous avez appris jusqu'à présent à travers votre expérience ou vos recherches antérieures. Offrez une aide honnête et gardez un ton positif, des commentaires constructifs et soyez patient avec les autres (certains d'entre nous ne sont pas aussi techniques que d'autres ! ).   2. Soyez pertinent   Assurez-vous que vos contributions sont pertinentes pour la Communauté, correspondent au style de discussion spécifique et au sujet que vous rejoignez. Veuillez ne pas publier de messages en double dans différentes sections de la communauté pour éviter de couper la discussion. Si vous avez une nouvelle question, démarrez un nouveau fil de discussion plutôt que d'interrompre une conversation. Assurez-vous de publier dans la même langue que celle employée par la communauté que vous visitez.   3. Appréciez les autres   Montrez votre gratitude envers ceux qui vous ont aidé ou inspiré ! Si vous trouvez une contribution utile, donner lui une étoile ou acceptez la comme une solution à votre problème. Les compliments aux solutions aident à dynamiser la valeur des contributions, ce qui les rendra plus faciles à être trouvées et améliorera la réputation de leurs auteurs.   4. Tenez votre parole   Ne publiez rien qui pourrait enfreindre les accords contractuels (droit d'auteur, secret commercial ou autre) ou les accords de non-divulgation auxquels vous êtes soumis.   5. Protégez la vie privée - la vôtre et celle des autres   Ne partagez rien à propos de vous-même ou de votre organisation que vous ne voudriez pas voir sur un panneau d'affichage. Partagez votre adresse e-mail d'affaires si vous le souhaitez, mais ne publiez pas d'informations personnelles - les vôtres ou celles des autres - y compris les informations de contact ou tout contenu que vous recevez en entretien privé sans le consentement de l'auteur.   6. Rappelez-vous, le contenu est généré par les utilisateurs Vous trouverez beaucoup de bons conseils ici, mais n'oubliez pas que la situation, la configuration ou la mise en œuvre peut varier de celle de la personne partageant une solution. Certains conseils que vous trouverez ici peuvent même être erronés. Appliquez le même bon sens ici que vous appliqueriez à toute information trouvée sur l'Internet.   7. Ne mélangez pas les affaires   Partagez des informations sur les produits et services que vous aimez lorsque cela est pertinent ! Mais s'il vous plaît, n'utilisez pas la Communauté Alteryx pour prospecter ou faire de la publicité. Nos modérateurs mettront le holà la dessus. S'il y a un événement auquel vous voulez que les membres participent ou quelque chose que les membres achètent, demandez-nous d'abord : @StephV    8. Droits des modérateurs   Alteryx réserve le droit à ses modérateurs d'éditer, déplacer, bloquer ou supprimer des discussions, des signatures ou des images qu'ils considèrent comme inappropriées ou dérangeantes pour notre communauté. Nous pouvons également expulser tout membre à notre seule discrétion. Nous communiquerons toujours avec vous via messages privés pour vous informer d'une décision. Nous vous demandons de faire de même si vous avez besoin de commenter une action de modération pour ne pas perturber le reste de la communauté. N'hésitez pas à nous envoyer un message privé.     Le logo Alteryx et employés Alteryx    Vous remarquerez que certains membres de la communauté ont un logo Alteryx à côté de leurs noms ce qui signifie que ce sont des employés d'Alteryx. Comme vous, ils sont membres de la communauté et passionnés par les produits Alteryx, nous les encourageons à partager leurs connaissances et leurs opinions ici. N’hésitez pas les solliciter !   Feedback et Idées   Nous voulons que ce soit la meilleure communauté qu'il puisse être, alors faites-nous savoir ce que vous pensez, ou comment nous pouvons aider à améliorer votre expérience au sein de la communauté Alteryx en partageant vos idées au sein du forum !   Problèmes   Si vous avez des questions qui ne peuvent pas être discutées dans la communauté : Écrivez-nous à Community@alteryx.com ou contactez le support clientèle. Nous serons heureux de vous aider !   Contenu inapproprié   Si vous remarquez des utilisateurs qui enfreignent ces règles, n'hésitez pas à leur donner des conseils. Si vous voyez des cas particuliers d'abus, de grossièreté ou d'autres violations, veuillez les signaler à l'équipe de la communauté en choisissant "signaler au modérateur" dans le menu des options du message et laissez-nous savoir pourquoi vous trouvez le contenu inapproprié. Si vous avez des questions au sujet de ces règles, termes ou politiques, faites-le nous savoir. Règles de la Communauté Alteryx  
Afficher l'article complet
Cet article fait partie de la série Maîtrise de l'outil, une compilation de contributions à la Base de connaissances visant à présenter divers exemples d'utilisation des outils Designer. Ici, nous allons vous introduire les ressources application et macro dans le cadre de notre apprentissage de la maîtrise d'Alteryx Designer.
Afficher l'article complet
Comment écrire à plusieurs onglets séparément sans erreurs Avez-vous déjà essayé d'écrire à plusieurs onglets dans le même workflow et ont reçu une erreur comme ceci: "erreur: données de sortie: impossible d'ouvrir le fichier pour écrire: FULL_FILE_PATH fichier d'ouverture d'erreur .xlsx: FULL_FILE_PATH .xlsx: le processus ne peut pas accéder au fichier parce qu'il est utilisé par un autre processus."? Cela se produit parce que Excel, comme de nombreuses applications, sera confus si plusieurs processus sont en train de se produire à la fois, ce qui explique pourquoi vous ne pouvez pas avoir le même fichier Excel ouvert pendant que vous le lisez à Alteryx. Pour éviter l'écriture simultanée, il y a un outil impressionnant appelé le bloc jusqu'à l'outil fait qui empêchera ceci. Le bloc jusqu'à ce que l'outil Done attende jusqu'à ce que tous les processus en amont soient finis avant d'envoyer le travail en aval. Cet outil a trois sorties. Ce qui est utile à notre sujet dans ce cas est chaque sortie sera traitée dans l'ordre séquentiel. Pour illustrer: Cela sera toujours erreur parce que les outils de sortie dans Alteryx sont utilisés en même temps ainsi Excel sera confus. En revanche, cela fonctionnera toujours parce que le deuxième flux ne sera pas coup de pied jusqu'à ce que le premier flux est terminé. Donc, tout ce que vous avez à faire lors de l'écriture dans le même fichier, mais différents onglets est Assurez-vous d'utiliser un bloc jusqu'à ce que fait pour l'empêcher d'écrire dans le fichier Excel simultanément. Pour plus d'informations sur le bloc jusqu'à ce que l'outil Done cliquez ici. Meilleures pratiques
Afficher l'article complet
Supposons que votre feuille de calcul a plusieurs feuilles avec la même structure et vous souhaitez lire plusieurs feuilles dans votre module à la fois. Votre première réaction pourrait être d'utiliser un outil d'entrée par feuille, suivi d'un outil de syndicat pour rassembler toutes les données. Dans ce cas, l'alternative préférée consiste à utiliser l'outil d'entrée dynamique. Dans cet exemple, nous avons des données démographiques pour 5 États, où les données d'un État sont dans chacune des cinq feuilles à l'intérieur d'un fichier Excel. Dans ce scénario, nous aimerions entrer les données de seulement 3 des cinq feuilles (Alaska, Arizona et Californie).     Nous pouvons utiliser l'outil d'entrée de texte pour spécifier les noms des trois feuilles, voir l'image suivante. Nous nous connectons ensuite à un outil d'entrée dynamique, que nous configurons pour utiliser les noms de feuille que nous avons spécifiés dans l'outil d'entrée de texte, comme moyen de mise à jour du «nom de fichier/table» que l'outil d'entrée dynamique sera l'importation.     Outil d'entrée dynamique configuration   From la configuration de l'outil d'entrée, accédez au fichier Excel et sélectionnez l'une des feuilles ou des onglets, cette sélection servira d'espace réservé. Cliquez sur le bouton "éditeur SQL" pour la table ou la requête, ceci doit indiquer: Select * from'Alabama $'lorsque le module s'exécute, le texte'Alabama $'sera remplacé par les noms de table spécifiés dans l'outil saisie de texte. Choisissez la case d'option "lire la liste des fichiers"; pour la liste déroulante "Field", sélectionnez le nom de champ qui a été créé dans l'outil d'entrée de texte (dans lequel les noms de feuille ont été tapés) et définissez l'action pour modifier le nom de fichier/table.           Après l'exécution du module, vous remarquerez que les enregistrements des trois différents les feuilles seront remplies dans la vue de table de votre navigation. Une excellente option pour profiter de ce processus est l'option #5 "nom de fichier de sortie comme champ", qui vous permet d'ajouter le chemin d'accès complet ou le nom de fichier comme un champ pour chaque enregistrement unique. Il s'agit d'un excellent moyen de vous permettre de rapidement regrouper et d'organiser vos données en fonction de la feuille à partir de laquelle il a été source.  
Afficher l'article complet
Créez et gérez vos connexions de base de données à partir d’un emplacement central est une fonctionnalité qui permet aux utilisateurs d’accéder à vos bases de données facilement et permet également à l’administrateur de la Galery plus de gouvernance.   Aujourd’hui, je vais vous présenter comment créer une connexion sur Alteryx Server et l’utiliser par la suite à partir d'Alteryx Designer.
Afficher l'article complet
La réalisation d'un outil, de son idée à son développement!
Afficher l'article complet
Envie de sortir de vos routines analytiques pour lesquelles les problématiques se ressemblent ? De sortir de votre zone de confort ?   Je partage avec vous chaque semaine la manière dont je relève les défis hebdomadaires💪🏼    
Afficher l'article complet
  Utiliser les fonctions de dates dans Alteryx mais dans d'autres outils pour ajouter du dynamisme à vos analyses
Afficher l'article complet
Envie de sortir de vos routines analytiques pour lesquelles les problématiques se ressemblent ? De sortir de votre zone de confort ?   Je partage avec vous chaque semaine la manière dont je relève les défis hebdomadaires💪🏼      
Afficher l'article complet
Cet article fait partie de la série Maîtrise des outils, une compilation de contributions à la Base de connaissances visant à présenter divers exemples d'utilisation des outils Designer. Ici, nous allons nous intéresser aux utilisations de l'outil Unique dans le cadre de notre apprentissage de la maîtrise d'Alteryx Designer  :    Contrairement aux flocons de neige, il peut y avoir des doublons lorsqu’il s’agit de données. Pour déterminer si un enregistrement de vos données est unique ou en double, nous avons mis au point le fantastique outil appelé Unique  qui transforme vos données en un flocon de neige unique.   L'outil Unique, en son noyau, est très simple à comprendre. Dans la configuration, sélectionnez les colonnes en fonction desquelles vous souhaitez que les enregistrements se distinguent de manière unique. Si vous sélectionnez un seul champ, l'outil recherche exclusivement l'instance des enregistrements uniques dans ce champ. Si vous sélectionnez deux colonnes ou davantage, le caractère unique du jeu de données se distinguera par la combinaison des enregistrements. La sortie U affiche une liste des enregistrements uniques en fonction des champs que vous avez sélectionnés, tandis que la sortie D vous donne la liste des doublons. Il est également utile de savoir que le premier enregistrement de chaque groupe unique est envoyé au flux de sortie U, tandis que les autres enregistrements sont envoyés au flux de sortie Doublon.     Imaginons, par exemple, que vous ayez un jeu de données comportant deux champs  : Prénom et Nom de famille. Et que vous ayez deux enregistrements  : Jacques Martin et Jacques Robin. En sélectionnant uniquement Prénom dans la configuration, suivant l'enregistrement venant en premier, vous verriez cet enregistrement apparaître dans le flux de sortie U, tandis que l'autre apparaîtrait dans le flux D. En sélectionnant à la fois le prénom et le nom de famille, Jacques Martin et Jacques Robin apparaîtraient tous les deux dans le flux de sortie Unique.    Un bon exemple pour consulter et apprendre cet outil est fourni dans Alteryx Designer lui-même. Cliquez sur l’outil Unique (catégorie Préparation) et sélectionnez « Ouvrir l'exemple » pour accéder au workflow.   Voici quelques situations courantes dans lesquelles l’outil Unique est utilisé :   préalablement à une jointure afin de vous assurer de ne pas avoir d'enregistrements en double . contrôle du caractère unique des enregistrements avant d'attribuer des clés primaires pour insérer des enregistrements dans une table de base de données avec des restrictions. Obtention de la première instance d'un enregistrement unique similaire à l'action « Premier » de l'outil Agréger. Étant donné que l'ordre des enregistrements compte, vous pouvez utiliser ceci à votre avantage pour trier les enregistrements comme vous le souhaitez avant d'utiliser l'outil Unique pour obtenir le premier enregistrement dans n'importe quel groupe de doublons.   Maintenant que vous avez vu à quoi sert l'outil Unique, vous pouvez avancer en découvrant tous les doublons cachés dans vos données. Et n'oubliez pas  :     Maintenant, vous devriez être un(e) expert(e) de l'outil Unique  ! Si vous pensez à un cas d'utilisation que nous avons oublié, n'hésitez pas à utiliser la section commentaires ci-dessous !    Vous souhaitez maintenant contribuer au blog de la communauté en partageant vos expériences et en apprenant à utiliser nos nouveaux outils dans votre vie quotidienne, envoyez moi un e-mail à Stephanie.jansen@alteryx.com.   Si vous avez des questions, la communauté est là pour y répondre sur le Forum.    Restez à l'écoute de nos dernières publications en vous abonnant aux notifications par email sur la Base de Connaissance.    *Cet article a été écrit par @Ozziesur la Communauté anglaise. 
Afficher l'article complet
Cet article fait partie de la série Maîtrise des outils, une compilation de contributions à la Base de connaissances visant à présenter divers exemples d'utilisation des outils Designer. Ici, nous allons nous intéresser aux utilisations de l'outil Rechercher et remplacer dans le cadre de notre apprentissage de la maîtrise d'Alteryx Designer  :       L'outil Rechercher et remplacer est l'un de ces outils relativement peu utilisés et passé sous silence jusqu'à ce que vous tombiez sur une technique de fusion de données difficilement exploitable sans lui, auquel cas, il devient votre outil favori dans Designer. Vous le trouverez dans la catégorie Jointure. Il facilite les substitutions de chaîne dans vos données, qui, sans lui, nécessiteraient un effort herculéen pour y parvenir. Aujourd'hui, nous élevons l'outil Rechercher et remplacer au rang des héros  :                                                                 L'outil Rechercher et remplacer vient à votre secours   Effectuez des substitutions HTML ou ASCII sans effort (voir comment configurer l’outil dans l'exemple de workflow ci-joint, Find Replace.yxzp)  :       Utilisez des tables de recherche pour standardiser vos données (voir comment configurer l’outil dans l'exemple de workflow ci-joint,  Find Replace.yxzp) :       Simplifiez l'analyse à l'aide de l'outil Rechercher et remplacer   Maintenant, vous devriez avoir une compétence de niveau expert avec l'outil Rechercher et remplacer ! Si vous pensez à un cas d'utilisation que nous avons oublié, n'hésitez pas à utiliser la section commentaires ci-dessous !    Vous souhaitez maintenant contribuer au blog de la communauté en partageant vos expériences et en apprenant à utiliser nos nouveaux outils dans votre vie quotidienne, envoyez moi un e-mail à Stephanie.jansen@alteryx.com.   Si vous avez des questions, la communauté est là pour y répondre sur le Forum.    Restez à l'écoute de nos dernières publications en vous abonnant aux notifications par email sur la Base de Connaissance.    *Cet article a été écrit par @MattD sur la Communauté anglaise. 
Afficher l'article complet
Leveling Up: Guide du débutant sur le SDK Python dans Alteryx En tant qu'associé d'Alteryx qui a grandi avec l'entreprise du côté de l'avant-vente technique, vous vous attendriez à ce que je sois très utile pour créer un flux de travail ou deux. Je me souviens encore d'avoir construit ma première macro et d'avoir un peu buzz quand j'ai réalisé que je pouvais la réutiliser et la partager avec d'autres, et ça a juste marché. Avance rapide de quelques mois, et un autre buzz quand j'ai découvert l'API Gallery - construire une application analytique dans Alteryx Designer et - hé presto! - un service analytique instantané qui pourrait s'appeler comme n'importe quel service Web. Nous avons eu du plaisir à jouer avec ces extrémités API-les mettre à l'intérieur des dispositifs intelligents comme le BTTN et Amazon Alexa! Aller à 2017, et comme Alteryx a acquis la technologie et les compétences de YHat, nous avons développé Alteryx Promote - me donnant accès à une API en temps quasi réel que je pourrais utiliser pour répondre aux réponses prédictives du modèle: du score rapide au meilleur l'action, à l'analyse de texte - tout au long d'un format REST / JSON simple à mettre en œuvre. Mais il y a toujours eu une partie du produit dont je me suis éloigné: Alteryx Engine et son kit de développement logiciel (SDK). Traditionnellement, cela a été le domaine de la meilleure et la plus brillante dans Alteryx et au-delà (James Dunkerley-je vous regarde ici!) et a exigé un certain niveau de maîtrise en C++ pour pouvoir parler la langue Alteryx. J'ai regardé le développement du SDK Python avec un grand intérêt parce que, en tant que codeur amateur auto-avoué, Python, R et SQL sont probablement les limites de mes aspirations de codage. (je suis en train d'apprendre «juste assez de JavaScript pour être dangereux»-parce que JavaScript/node semble être partout ces jours-ci, et qui ne veut pas être un peu dangereux....?) Connaissant juste assez de Python pour commencer, le SDK Python est ma passerelle vers cette dernière frontière - parler efficacement et directement à Alteryx Engine et construire de nouveaux outils partageables haute performance qui peuvent utiliser autant de grandes bibliothèques Python open-source comme un véritable complément aux outils R existants d'Alteryx. Donc, j'ai sauté dans la documentation du SDK Python avec une grande excitation... et presque immédiatement obtenu coincé. Quelle déception! J'ai trouvé la terminologie du moteur déroutante et je ne pouvais pas progresser au-delà des bases du «bonjour monde» des échantillons initiaux. Puis, il ya une semaine Neil Ryan a publié un guide très puissant dans le cadre de la communauté de science des données blog-ce rallumé mon désir de crack le SDK Python et ainsi (avec le code de Neil et de l'expertise personnelle), j'ai maintenant développé mon premier outil de SDK simple basé sur Python , et je voudrais partager avec vous dans ce blog. Je vais couvrir toutes les étapes que j'ai suivies pour que, espérons-le, vous puissiez reproduire ou améliorer le code, ou le prendre dans n'importe quelle direction! Que construisons-nous aujourd'hui? Un nouveau projet exige un défi! J'ai vraiment aimé l'exemple de Neil de l'analyse de texte dans le billet de blog, et je veux prendre cette fois un pas de plus (en termes de contenu) et un pas en arrière (en termes de simplicité)! Je voudrais utiliser un module Python appelé 'newspaper3k' pour exécuter la synthèse d'article sur une URL fournie, c'est-à-dire que je vous donne une URL et que vous analysez le texte derrière le lien, et renvoyez-moi les cinq phrases les plus importantes. article. J'adore les résumés d'articles - je peux obtenir l'essentiel d'une page sans avoir à lire le document entier, et j'aimerais avoir un outil de résumé d'article dans Alteryx pour que je puisse automatiser ce processus! Premiers pas Un bon point de départ est de télécharger les exemples SDK à partir de https://github.com/alteryx/python-sdk-samples - se concentrer d'abord sur l'exemple Python - Single Input Output: il contient tout ce dont nous avons besoin pour notre premier outil de base. Copiez ce répertoire sur votre machine locale et créez une structure de dossier comme suit: Renommez votre dossier copié avec le nom de votre outil (dans mon cas, article) Dans le dossier copié, renommez python-single input OutputConfig. XML en le nom de votre outil, avec'config'à la fin, tel que ArticleConfig. Xml Renommer python-entrée unique OutputGui. html à Article_GUI. html Supprimez le fichier Python - Single Input OutputIcon.png (nous obtiendrons le notre dans un instant) Supprimez le fichier Python - Single Input OutputEngine.py python - nous allons créer un nouveau fichier Python plus simple dans le reste de ce blog. Supprimez les fichiers de configuration spécifiques à la langue (à moins que vous ne souhaitiez les garder / les modifier) ​​- Python - Entrée unique OutputConfig.fr.yxlang, Python - Entrée unique OutputConfig.de.yxlang, Python - Entrée unique OutputConfig.xx.yxlang Va chercher une image pour ton nouvel outil. Il ya beaucoup de sites qui offrent des jeux d'icônes libres (personnellement, j'utilise http://iconapp.IO/et https://iconmonstr.com/)-Enregistrez votre icône choisie au format png dans le dossier de l'article avec le nom Article_Icon. png. Ensuite, créez un tout nouveau fichier vide dans un éditeur de votre choix (puisque nous écrivons du code Python, vous pouvez choisir un éditeur qui gère automatiquement le formatage du code python - Python choisit particulièrement l'indentation) et l'enregistre comme Article_Engine .py. C'est la première partie du processus terminée - nous sommes prêts à commencer à personnaliser notre outil! Configuration avant le codage Lançons-nous dans notre fichier ArticleConfig.xml - cela indique à Alteryx le but de tous les fichiers que nous venons de copier ou de créer. Nous allons apporter des modifications aux sections suivantes en jaune: changez simplement les noms de fichiers en ceux que nous avons créés dans la section précédente, et mettez à jour le MetaInfo pour qu'il contienne une bonne description de l'outil que nous construisons! Pour ceux d'entre vous qui veulent un copier-coller, voici le code XML ci-dessous: <metainfo> Python - Article Summary (Newspaper3k) Returns the most relevant sentences from a supplied URL. 1.1 Laboratory python, sdk, text analytics, text, nlp, python sdk Nick Jewell Alteryx, Inc. 2018 Concevoir l'interface Certains outils auront des interfaces utilisateur plus complexes que d'autres. Ce blog couvre une interface assez basique où l'utilisateur sélectionne un seul champ pour l'analyse de texte, de sorte que notre fichier GUI va être vraiment simple. (ce qui est bon pour nous que nous sommes en train d'apprendre!) Ouvrez le fichier Article_GUI.html et réduisez le code comme suit: <meta charset="utf-8" /> Article Summary <script type="text/javascript"> document.write(' '); </script> XMSG("Select a field containing a URL to analyze") <script type="text/javascript"> Alteryx.Gui.BeforeLoad = (manager, AlteryxDataItems, json) => { } Alteryx.Gui.AfterLoad = (manager) => { } </script> Tout ce que nous devons nous soucier dans ce code, c'est qu'il utilise le Alteryx JavaScript SDK pour créer une liste déroulante qui hérite des noms de champs à partir du flux de données et permet à l'utilisateur de choisir l'un de ces champs. Voir ci-dessous pour une capture d'écran d'action: Enregistrez ce fichier HTML et c'est notre configuration complète. Nous sommes maintenant prêts à commencer à aborder la partie python de notre projet! Prototypage de Python J'ai généralement constaté qu'un navigateur basé sur un environnement python tels que Jupyter Notebook Anaconda est le plus propice à l'itération rapide et le test de code-votre kilométrage peut varier, mais choisissez un environnement où vous pouvez tester votre code personnalisé avant de l'insérer dans le SDK Alteryx. Cette approche peut vous faire gagner beaucoup d'heures à résoudre des erreurs python! Par exemple, dans un cahier de Jupyter, j'ai esquissé les fonctionnalités suivantes en quelques lignes: La toute première commande! Pip install newspaper3k s'assure que la bibliothèque newspaper3k est installée dans mon environnement Python (ce n'est pas une partie standard des distributions Anaconda ou Alteryx). J'importe ensuite la fonctionnalité Article du module de journal (ligne 2), fournissez une URL (ligne 22) et procédez au téléchargement, à l'analyse et à l'analyse du texte derrière l'URL conformément à la documentation du module (lignes 23-26). Enfin, à la ligne 27, je produis un résumé de l'article en 5 phrases, délimité par le caractère de retour à la ligne (/ n). Ce sont les informations que j'aimerais apporter à Alteryx Designer pour une analyse plus poussée et un mélange. Une fois que vous êtes satisfait d'avoir du code de travail, entrons dans un éditeur de texte / éditeur python et commençons à apporter des modifications à notre fichier Article_Engine.py - le cœur de notre travail Python SDK. Parler au moteur Alteryx en Python Dans cette section, je décompose le code section par section, en expliquant où je fais des ajouts (et pourquoi). Tout le code dans cette section réside dans le fichier Article_Engine.py. """ AyxPlugin (required) has-a IncomingInterface (optional). Although defining IncomingInterface is optional, the interface methods are needed if an upstream tool exists. """ import AlteryxPythonSDK as Sdk import xml.etree.ElementTree as Et import nltk nltk.download('punkt') from newspaper import Article Dans ces premières lignes, nous nous assurons que nous avons accès au Natural Language Toolkit de Python (NLTK), à un corpus de documents spécifique («punkt») et au module de journal que nous avons testé dans la section précédente. class AyxPlugin: """ Implements the plugin interface methods, to be utilized by the Alteryx engine to communicate with a plugin. Prefixed with "pi", the Alteryx engine will expect the below five interface methods to be defined. """ def __init__(self, n_tool_id: int, alteryx_engine: object, output_anchor_mgr: object): """ Constructor is called whenever the Alteryx engine wants to instantiate an instance of this plugin. :param n_tool_id: The assigned unique identification for a tool instance. :param alteryx_engine: Provides an interface into the Alteryx engine. :param output_anchor_mgr: A helper that wraps the outgoing connections for a plugin. """ # Default properties self.n_tool_id = n_tool_id self.alteryx_engine = alteryx_engine self.output_anchor_mgr = output_anchor_mgr # Custom properties self.summary = "article_summary" self.summary_type = Sdk.FieldType.string self.summary_size = 1000 Nos propriétés personnalisées incluent une référence à la propriété 'summary' qui représentera notre sortie de l'outil. Dans ces trois lignes, nous avons défini un champ de sortie appelé 'résumé de l'article' qui est une chaîne et qui a une taille maximale de 1000 caractères. def pi_init(self, str_xml: str): """ Handles building out the sort info, to pass into pre_sort() later on, from the user configuration. Called when the Alteryx engine is ready to provide the tool configuration from the GUI. :param str_xml: The raw XML from the GUI. """ if Et.fromstring(str_xml).find('FieldSelect') is not None: self.field_selection = Et.fromstring(str_xml).find('FieldSelect').text else: self.alteryx_engine.output_message(self.n_tool_id, Sdk.EngineMessageType.error, 'Please select field to analyze') self.alteryx_engine.output_message(self.n_tool_id, Sdk.EngineMessageType.info, self.field_selection) self.output_anchor = self.output_anchor_mgr.get_output_anchor('Output') # Getting the output anchor from the XML file. Dans cette section, nous demandons à l'interface du plugin ('pi') d'analyser le champ et de stocker la valeur dans la propriété field_selection pour une utilisation ultérieure. def pi_add_incoming_connection(self, str_type: str, str_name: str) -> object: """ The IncomingInterface objects are instantiated here, one object per incoming connection, also pre_sort() is called here. Called when the Alteryx engine is attempting to add an incoming data connection. :param str_type: The name of the input connection anchor, defined in the Config.xml file. :param str_name: The name of the wire, defined by the workflow author. :return: The IncomingInterface object(s). """ self.single_input = IncomingInterface(self) return self.single_input def pi_add_outgoing_connection(self, str_name: str) -> bool: """ Called when the Alteryx engine is attempting to add an outgoing data connection. :param str_name: The name of the output connection anchor, defined in the Config.xml file. :return: True signifies that the connection is accepted. """ return True def pi_push_all_records(self, n_record_limit: int) -> bool: """ Called when a tool has no incoming data connection. :param n_record_limit: Set it to <0 for no limit, 0 for no records, and >0 to specify the number of records. :return: True for success, False for failure. """ self.alteryx_engine.output_message(self.n_tool_id, Sdk.EngineMessageType.error, self.xmsg('Missing Incoming Connection')) return False def pi_close(self, b_has_errors: bool): """ Called after all records have been processed.. :param b_has_errors: Set to true to not do the final processing. """ self.output_anchor.assert_close() # Checks whether connections were properly closed. Cette section a été laissée selon le code GitHub par défaut pour les connexions entrantes/sortantes vers le plugin, et la gestion des erreurs/fermeture de la connexion au plugin. class IncomingInterface: """ This optional class is returned by pi_add_incoming_connection, and it implements the incoming interface methods, to be utilized by the Alteryx engine to communicate with a plugin when processing an incoming connection. Prefixed with "ii", the Alteryx engine will expect the below four interface methods to be defined. """ def __init__(self, parent: object): """ Constructor for IncomingInterface. :param parent: AyxPlugin """ # Default properties self.parent = parent # Custom properties self.record_copier = None self.record_creator = None La classe d'interface entrante gère les interactions du moteur Alteryx avec le plugin, et c'est là que la plupart de notre code sera placé. Nous devons apporter des modifications au code GitHub afin de spécifier les champs qui sont traités sur une base ligne par ligne. Nous définissons ces définitions dans la fonction ii_init (), ci-dessous: def ii_init(self, record_info_in: object) -> bool: """ Called to report changes of the incoming connection's record metadata to the Alteryx engine. :param record_info_in: A RecordInfo object for the incoming connection's fields. :return: True for success, otherwise False. """ # Returns a new, empty RecordCreator object that is identical to record_info_in. record_info_out = record_info_in.clone() # Adds field to record with specified name and output type. #record_info_out.add_field(self.parent.out_name, self.parent.out_type, self.parent.out_size) record_info_out.add_field(self.parent.summary, self.parent.summary_type, self.parent.summary_size) # Lets the downstream tools know what the outgoing record metadata will look like, based on record_info_out. self.parent.output_anchor.init(record_info_out) # Creating a new, empty record creator based on record_info_out's record layout. self.record_creator = record_info_out.construct_record_creator() # Instantiate a new instance of the RecordCopier class. self.record_copier = Sdk.RecordCopier(record_info_out, record_info_in) # Map each column of the input to where we want in the output. for index in range(record_info_in.num_fields): # Adding a field index mapping. self.record_copier.add(index, index) # Let record copier know that all field mappings have been added. self.record_copier.done_adding() # Grab the index of our new field in the record, so we don't have to do a string lookup on every push_record. #self.parent.out_field = record_info_out[record_info_out.get_field_num(self.parent.out_name)] self.parent.summary = record_info_out[record_info_out.get_field_num(self.parent.summary)] # Grab the index of our input field in the record, so we don't have to do a string lookup on every push_record. self.parent.input_field = record_info_out[record_info_out.get_field_num(self.parent.field_selection)] return True Dans les lignes surlignées en gras, nous créons un enregistrement basé sur un «clone» (copie) des champs entrants, puis nous ajoutons notre nouveau champ de résumé aux métadonnées à la fin de l'enregistrement. En termes d'Alteryx, c'est comme utiliser un outil de formule pour créer un nouveau champ dans un ensemble de données. Vers la fin de ce bloc de code, nous nous assurons que nos champs sont stockés efficacement afin que nous n'ayons pas à faire des recherches inutiles dans le cadre du traitement. def ii_push_record(self, in_record: object) -> bool: """ Responsible for pushing records out Called when an input record is being sent to the plugin. :param in_record: The data for the incoming record. :return: False if method calling limit (record_cnt) is hit. """ # Copy the data from the incoming record into the outgoing record. self.record_creator.reset() self.record_copier.copy(self.record_creator, in_record) if self.parent.input_field.get_as_string(in_record) is not None: url = self.parent.input_field.get_as_string(in_record) article = Article(url) article.download() article.parse() article.nlp() result = article.summary self.parent.summary.set_from_string(self.record_creator, result) out_record = self.record_creator.finalize_record() # Push the record downstream and quit if there's a downstream error. if not self.parent.output_anchor.push_record(out_record): return False return True La fonction ii_push_record () est où la majorité de notre codage personnalisé est placé. Notre code d'analyse de texte est situé dans une instruction if () qui vérifie une ligne de données. Nous exécutons ensuite la synthèse d'article et plaçons le résultat dans le champ de résumé que nous créons au début du code. Nous appelons la fonction finalize_record () pour renvoyer l'enregistrement à l'utilisateur dans Alteryx Designer. def ii_update_progress(self, d_percent: float): """ Called by the upstream tool to report what percentage of records have been pushed. :param d_percent: Value between 0.0 and 1.0. """ self.parent.alteryx_engine.output_tool_progress(self.parent.n_tool_id, d_percent) # Inform the Alteryx engine of the tool's progress. self.parent.output_anchor.update_progress(d_percent) # Inform the downstream tool of this tool's progress. def ii_close(self): """ Called when the incoming connection has finished passing all of its records. """ self.parent.output_anchor.output_record_count(True) # True: Let Alteryx engine know that all records have been sent downstream. self.parent.output_anchor.close() # Close outgoing connections. Ces deux dernières fonctions (ii_update_progress () et ii_close ()) sont des fonctions d'entretien qui n'ont pas été modifiées depuis le modèle github. Configuration d'environnements virtuels pour une distribution facile Depuis la version 2018.1.4 + de Alteryx, il ya eu un petit changement quant à la façon dont le code python peut être distribué entre les utilisateurs qui veulent partager ces types d'outils, et c'est un processus en deux étapes. Tout d'abord, créez un environnement virtuel pour Python en utilisant la commande suivante (ceci peut nécessiter un accès Admin pour écrire dans le dossier ProgramData): C:/Program Files/Alteryx/bin/Miniconda3>python -m venv C:/ProgramData/Alteryx/Tools/Article Ensuite, nous installons les modules nécessaires dans cet environnement virtuel: C:/ProgramData/Alteryx/Tools/Article/Scripts>pip install nltk C:/ProgramData/Alteryx/Tools/Article/Scripts>pip install newspaper3k (La seconde de ces commandes installera également un grand nombre de bibliothèques de support) Ensuite, nous listons tous les modules dans cet environnement virtuel et les capturons dans un fichier requirements.txt (qui sera utilisé par le SDK Python pour répliquer cette configuration pour tous les utilisateurs supplémentaires. C:/ProgramData/Alteryx/Tools/Article/Scripts>pip freeze > ../requirements.txt Copiez ce fichier requiremnts.txt dans votre dossier Article et il devrait ressembler à ceci: beautifulsoup4==4.6.0 certifi==2018.4.16 chardet==3.0.4 cssselect==1.0.3 feedfinder2==0.0.4 feedparser==5.2.1 idna==2.6 jieba3k==0.35.1 lxml==4.2.1 newspaper3k==0.2.6 nltk==3.2.5 Pillow==5.1.0 python-dateutil==2.7.2 PyYAML==3.12 requests==2.18.4 requests-file==1.4.3 six==1.11.0 tldextract==2.2.0 urllib3==1.22 Configuration finale Dans l'Explorateur Windows, naviguez dans un dossier au-dessus de votre dossier Article et créez un fichier appelé Config.xml. Ce sera le fichier de configuration principal pour votre outil d'installation. Utilisez le code suivant pour ce fichier: <metainfo> Article Summary Return a new-line delimted article summary from a supplied URL. 1.1 Laboratory Nick Jewell Article/Article_Icon.png Changez les éléments en gras si nécessaire, et enregistrez. Vous devriez maintenant avoir une structure de dossier qui ressemble à ceci: Config.xml Article ArticleConfig.xml Article_Engine.py Article_Gui.html Article_Icon.png requirements.txt La seule contrainte entourant le nommage que j'ai trouvé est que le fichier ArticleConfig.xml doit être nommé de manière cohérente avec le répertoire parent et doit inclure le mot Config sans aucun espace. Ainsi, un répertoire parent appelé 'foo' devrait avoir un fichier de configuration nommé FooConfig.xml à l'intérieur. Zipping à la ligne d'arrivée Zip le répertoire d'article et les fichiers Config. xml dans un fichier zip appelé'article. zip', puis utilisez la ligne de commande pour renommer l'extension. zip en. yxi (type de fichier Alteryx installer) comme suit: move Article.zip Article.yxi Vous devriez voir l'icône changer dans l'Explorateur Windows à partir d'un dossier compressé vers un installateur Alteryx. Exécution du programme d'installation Si vous double-cliquez sur le programme d'installation, vous devrez effectuer une action dans Alteryx Designer. La boîte de dialogue ressemblera à ceci: Cliquez sur Installer, accédez à l'onglet Laboratoire et déposez l'outil dans un flux de travail pour commencer les tests. Test de l'outil dans un flux de travail Dans le cadre du test de l'outil, créez un workflow simple qui utilise une URL de test et vérifiez qu'il retourne les résultats correctement – déposez un outil texte-à-colonnes après que l'outil personnalisé a été divisé en fonction du délimiteur de saut de ligne (/n) en lignes pour faciliter l'affichage: Avec ces données d'entrée, je reçois la sortie suivante de mon nouvel outil: (c'est à dire exactement le même que je reçois de mon portable Jupyter.) Toutefois, s'il y a des erreurs, vous devez recevoir des messages d'erreur raisonnablement bons du SDK Python, y compris la ligne de code qui lance l'erreur. Hou la la! Qu'est-ce qui vient de se passer? Dans ce tour de montagnes russes du SDK Python, nous avons relevé le défi d'améliorer notre outil d'analyse textuelle de la manière la plus simple possible - nous avons simplifié toutes les étapes pour produire un nouvel outil Alteryx au strict minimum, mais introduit: Comment scripter une interface utilisateur de plugin (pour qu'un utilisateur puisse interagir avec votre outil) Comment configurer les fichiers internes de l'outil Comment coder (et comprendre) un script Python SDK minimal Comment assurer la transférabilité avec un environnement virtuel/fichier de configuration Comment amener tout cela ensemble et installer! S'il vous plaît laissez-moi savoir via la section commentaires si toutes les étapes de ce processus ne sont pas claires, ou si vous trouvez des erreurs. Sinon, je vous souhaite à tous des sentiers heureux avec cette grande nouvelle fonctionnalité! Un grand Merci à Neil Ryan et à l'ensemble de la communauté des développeurs Alteryx (Developers.alteryx.com) pour m'avoir donné le soutien dont j'avais besoin pour réussir! Jamais demandé comment construire un nouvel outil analytique à partir de zéro en utilisant le SDK Python Alteryx, mais ne savait pas par où commencer? Ce blog vous emmène à travers les bases absolue pour vous mettre en place et en cours d'exécution-vous serez la création de nouveaux outils de marque, connecteurs et des analyses avancées en un rien de temps avec ce guide étape par étape débutants! Designer
Afficher l'article complet
Cet article fait partie de la série Maîtrise des outils, une compilation de contributions à la Base de connaissances visant à présenter divers exemples d'utilisation des outils Designer. Ici, nous allons nous pencher sur les utilisations de l'outil Formule à plusieurs lignes dans le cadre de notre apprentissage de la maîtrise d'Alteryx Designer  :   L'outil de formule à plusieurs lignes fonctionne comme l'outil de formule normal, mais ajoute la possibilité de référencer plusieurs lignes de données dans une expression. Disons, par exemple, quelqu'un était au rez-de-chaussée d'une maison et avait un outil de formule. Ils ne seraient en mesure de parler aux gens aussi au rez-de-chaussée. Si ils avaient un outil de formule à plusieurs lignes, cependant, ils seraient également en mesure de parler aux gens à l'étage, dans le grenier, et dans le sous-sol ainsi.         L'outil de formule à plusieurs lignes permet à l'utilisateur de mettre à jour un champ existant ou de créer un autre. Les deux options peuvent être très utiles, et il ya de nombreux cas d'utilisation pour chacun. Les cas d'utilisation que nous détaillons ci-dessous sont joints dans le yxmd de workflow v 11.0.       Mettre à jour le champ existant   "remplissage vers le bas" un champ : Souvent, les données peuvent être arrangées d'une manière qui semblerait bonne dans Excel mais n'est pas réaliste pour travailler avec dans Alteryx. Dans ces instances, vous pouvez souhaiter «remplir» une colonne qui a des valeurs manquantes.       Dans ce cas, seule la première personne dans chaque famille a son nom de famille peuplé. Par conséquent, nous aimerions modifier le champ famille où il est actuellement null (). Cela peut facilement être accompli comme ceci :         Pour obtenir facilement des variables et des fonctions dans la zone d'expression, il suffit de double-cliquer dessus à partir de leur onglet correspondant dans la configuration.     Créer un nouveau champ : Créer un ID unique pour chaque personne du groupe : Maintenant que les données sont nettoyées, nous voulons ajouter un ID unique à chaque personne en fonction de la famille à laquelle elles appartiennent. Afin d'y parvenir, nous allons configurer l'outil de formule multiligne comme suit :       Lors de la création d'un nouveau champ, l'utilisateur a la possibilité de sélectionner le type de champ à lui donner. Ici, int 16 a été choisi. Notez que nous regroupons par famille parce que nous voulons que l'ID soit unique au sein de chaque famille, mais il peut recommencer avec différentes familles. Ce nouveau champ ID peut être utilisé ultérieurement en tant qu'identificateur avec des outils tels que Filter, Resume et plus encore.     Effectuer des calculs : Qu'est-ce qu'un bon outil multiligne sans la possibilité de référencer plus que juste les lignes directement avant ou directement après? En modifiant la valeur des lignes num dans la configuration, vous pouvez augmenter le nombre de lignes que vous pourrez utiliser dans vos expressions.   Dans cet exemple, nous avons augmenté les lignes num sur 2. Remarquez comment il ya maintenant plus de variables à sélectionner dans la section du milieu sur la configuration. Parce que nous voulons le total de fonctionnement par famille, nous regroupons à nouveau par ce champ.       Cette méthode peut être étendue pour générer des totaux en cours d'exécution dans de nombreux scénarios différents, y compris les ventes monétaires, les comptes d'articles et plus encore.       Maintenant, nous voulons calculer la quantité moyenne de temps d'écran total par famille. Dans cette boîte d'expression de l'outil de formule multiligne, nous écrivons:   iif([ID]=3,average([Row-2:Total Screen Time],[Row-1:Total Screen Time],[Total Screen Time]),iif([ID]=2,average([Row-1:Total Screen Time],[Total Screen Time],[Row+1:Total Screen Time]),average([Row+2:Total Screen Time],[Row+1:Total Screen Time],[Total Screen Time])))     Cette méthode vérifie la valeur d'ID de chaque ligne et personnalise la formule pour générer une moyenne en utilisant les lignes correctes.     Différence par rapport au précédent : La dernière partie de la configuration de cet outil qui n'a pas encore été modifiée est les valeurs des lignes qui n'existent pas déroulantes. Cela indique à Alteryx ce qu'il faut utiliser lorsqu'une formule doit utiliser la valeur d'une ligne qui n'existe pas (d'où le nom de la liste déroulante). Cela se produirait, par exemple, lors du calcul d'une valeur pour la première ligne de données lorsque l'expression contient une variable Row-1. L'utilisateur peut choisir ce que la valeur de ligne inexistante est.   Dans cet exemple, la ligne qui n'existe pas est définie sur la ligne valide la plus proche. De cette façon, lorsque la formule tente d'utiliser [Row-1: temps total de l'écran] sur la ligne 1 et voit qu'elle n'existe pas, elle utilise à la place la valeur de la ligne 1. Cela se traduit par la différence de 0 que vous voyez dans la sortie.         Un tri a été placé avant cet outil de formule à plusieurs lignes pour trier le temps total de l'écran dans l'ordre décroissant. La formule ci-dessus a créé un champ qui est la différence entre la durée totale de l'écran de la ligne actuelle et la durée totale de l'écran de la ligne précédente. Cela rend facile de voir combien plus de temps d'écran chaque personne a besoin afin de rattraper la personne devant eux.         Plusieurs fois, l'outil de formule à plusieurs lignes sera utilisé en combinaison avec l'outil Cross Tab. Ceci est particulièrement utile si vous essayez de transformer quelques colonnes de données en une table. Un membre de la communauté Alteryx avait ce problème exact et a été en mesure de le faire résoudre dans ce post.   L'outil de formule à plusieurs lignes ne peut mettre à jour qu'un seul champ par instance d'outil. Si vous souhaitez mettre à jour plusieurs champs (et que vous vous sentez à l'aise avec l'outil de formule multiligne et l'outil de formule multichamp), essayez cette macro qui a été affichée dans la Galerie Alteryx publique.   Maintenant, vous devriez avoir une compétence de niveau expert avec l'outil de formule à plusieurs lignes ! Si vous pensez à un cas d'utilisation que nous avons oublié, n'hésitez pas à utiliser la section commentaires ci-dessous !    Vous souhaitez maintenant contribuer au blog de la communauté en partageant vos expériences et en apprenant à utiliser nos nouveaux outils dans votre vie quotidienne, envoyez moi un e-mail à Stephanie.jansen@alteryx.com.   Si vous avez des questions, la communauté est là pour y répondre sur le Forum.    Restez à l'écoute de nos dernières publications en vous abonnant aux notifications par email sur la Base de Connaissance.    *Cet article a été écrit par @Kenda sur la Communauté anglaise. 
Afficher l'article complet
Produit cartésien Join/cartésien Question Comment puis-je créer une jointure cartésienne de mes données? Réponse Une jointure cartésienne, également connue sous le nom de produit cartésien, est une jointure de chaque ligne d'une table à chaque ligne d'une autre table. Par exemple, si la table a a 100 lignes et est jointe à la table B, qui a 1 000 lignes, une jointure cartésienne se traduira par 100 000 lignes. Ce type de jointure peut être utile lorsque vous devez produire un DataSet qui contient toutes les combinaisons de deux tables ou plus. Vous pouvez continuer à ajouter à la jointure en ajoutant d'autres outils d'ajout. Il suffit de connecter la sortie du premier outil Append à l'entrée cible d'un deuxième outil Append et de connecter la troisième table à l'entrée source du deuxième outil Append. Poursuivez cette configuration pour autant de tables que nécessaire. Dans l'exemple ci-dessous, un concessionnaire de voiture avait besoin d'une liste de chaque combinaison de modèle, couleur extérieure, couleur intérieure et paquet d'options. Voici ce que les quatre table cartésienne Join ressemble à: Les tableaux contiennent les données suivantes: Un échantillon des résultats du workflow illustré ci-dessus ressemble à ceci: Important Par défaut, l'outil Append est défini sur erreur sur plus de 16 ajouts afin de protéger l'utilisateur de produire par inadvertance une quantité étendue d'enregistrements. Si vos données ont plus d'ajouts que cela, vous pouvez modifier ce paramètre comme indiqué ci-dessous pour autoriser tous les ajouts: Ce workflow, créé en 10,6, est joint. Merci! 10,6
Afficher l'article complet
Supprimer l'espace vide de tête / de fin / tout Question Comment puis-je supprimer des espaces vides de mes données?? Au secour! Réponse Il y'a un quelques situations différentes concernant les espaces vides que vous êtes probable de rencontrer, mais le schéma ci-dessous (à partir de l'annexe v 10.6 exemple) répondra à toutes vos questions. La plupart des approches utilisent la fonction (Trim) de l'outil de Formule qui, sans un deuxième argument, taille par defaut les espaces de vos chaînes. Post Designer version 10.5 vous pouvez également utiliser l'outil de Nettoyage de données pour vous "nettoyer" vos champs! Devenez un Maître ici. 10,5
Afficher l'article complet
Vous venez de terminer de faire un workflow, maintenant comment vous le Partagez afin que vos collègues peuvent également l'utiliser, mais avec leurs propres intrants? Faites une application analytique! Pour démarrer le processus, faites simplement glisser un outil d'interface sur le canevas.   Dans cet exemple, nous prendrons un workflow qui convertit un type de fichier en un autre. Pour modifier le workflow d'un workflow standard vers une application analytique, faites glisser un outil de navigation de fichier sur le canevas. C'est ainsi que les utilisateurs vont spécifier le fichier qu'ils aimeraient saisir:   Vous remarquerez qu'une fois qu'un outil d'interface est placé sur la toile, les petites ancres de boulon de foudre apparaissent au-dessus des outils. Cela vous permet de connecter un outil d'action à l'outil approprié dans le workflow; Seuls les outils d'interface peuvent se connecter à ces ancres. La connexion de l'ancre Q (question) à l'ancre du boulon de foudre (voir ci-dessus) ajoute automatiquement l'outil d'action nécessaire à la toile. L'outil d'interface et les outils d'action devront être configurés afin de dire au workflow ce qui doit être mis à jour. Voici une procédure pas à pas de ce que chaque outil fait pour notre exemple:         Pour plus de détails sur chacun des outils d'interface, veuillez vous référer à la documentation d'aide.   Configuration du concepteur d'interface: Maintenant que nous avons configuré tous nos outils d'interface et d'action, nous avons besoin de configurer ce que l'application ressemble à un utilisateur. Ouvrez le concepteur d'interface en naviguant pour afficher-> interface Designer (ou Ctrl + Alt + D).         Le concepteur d'interface contient 4 vues (celles-ci correspondent aux 4 petites icônes à gauche de la fenêtre): Vue de mise en page: ici vous pouvez ajouter des tabulations, grouper les entrées ensemble, ajouter du texte et renommer les entrées Vue de test: permet le test et le mode debug Arborescence: vue hiérarchique des outils et actions de l'interface Propriétés: permet la configuration des sorties, des vues et la possibilité de «chaîner» les applications ensemble Pour plus de détails sur le concepteur d'interface et les différentes vues, consultez la documentation d'aide.   Configuration des paramètres de workflow: Comme nous l'avons vu ci-dessus, l'ajout d'un outil d'interface à la toile change automatiquement le «type» de workflow d'un workflow standard à une application analytique. Si pour une raison quelconque vous avez besoin de faire manuellement cela, vous devrez entrer dans les paramètres de configuration de Workflow.   Pour arriver ici, cliquez sur n'importe quel espace vide sur la toile. Dans la fenêtre de configuration, sélectionnez Workflow-> type.       Publication dans la Galerie: Du concepteur, vous pouvez publier dans la galerie publique ou une galerie privée en allant dans le fichier-> enregistrer sous-> et en sélectionnant la Galerie de votre choix. Lorsqu'elles sont publiées dans la Galerie, les utilisateurs ne voient que l'interface de l'application de l'outil et non le Workflow sous-jacent.   Pour une procédure pas à pas détaillée, voir la partie 3 de la Alteryx Gallery Series: app Publishing %26; version Control 101   * Il n'est pas nécessaire que vous publiiez une application analytique à la Galerie. Il s'agit de workflows qui peuvent être partagés comme un workflow standard. Les utilisateurs peuvent utiliser l'interface App en sélectionnant l'icône baguette magique à côté de l'icône exécuter dans la barre d'outils.   Conseils Pro: Les applications analytiques sont enregistrées en tant que type de fichier yxwz Lorsque vous double-cliquez pour ouvrir une application analytique, l'interface de l'application s'ouvre automatiquement Vous pouvez crypter des applications analytiques afin que le Workflow sous-jacent ne soit pas visible pour les utilisateurs.
Afficher l'article complet
Étiquettes