Forum Replies Created

Page 3 of 4
  • Jeremy

    Member
    27 février 2023 at 8h22 en réponse à: Problème accès fichier Excel pour mise a jour

    Bonjour Laurent,

    J’espère qu’il n’est pas trop tard pour répondre. Il doit sans doute y avoir un problème au niveau des accès mais difficile de dire. En revanche, je vois que le fichier Excel est dans un OneDrive. Pourquoi ne pas directement utiliser une source de type Internet ou mieux encore dossier SharePoint (https://<SITE>-my.sharepoint.com/personal/<Nom>) qui correspond à l’adresse du OneDrive ?

    Cela permettrait une actualisation sans aucun problème.

    CommentID=iTVaEh2j01oMyDw, PostID=mPhvAADYN6OnQBi

  • Jeremy

    Member
    27 février 2023 at 8h16 en réponse à: Requête OData / pagination

    Bonjour Xavier,

    J’ai déjà eu cela avec des limitation à 500 enr par appel. J’ai dû créer des fonctions en M pour gérer cela.

    Voici mes fonctions :

    importTablenletn    Source = (tableImport) =>n    letn        firstPageUrl = "https://<NomDuSite>/api/" & tableImport,nn        output = @GenerateByPage(n            (lastPage) =>n                letn                    next = if lastPage <> null then Value.Metadata(lastPage)[Next] else null,n                    urlToUse = if (next <> null) then next else firstPageUrl,n                    current = if (lastPage <> null and next = null) then null else getJson(urlToUse),n                    dataset = if (current <> null) then getDataset(current) else null,n                    link = if (current <> null) then current[next_page_url] else nulln                inn                    dataset meta [Next=link]n        ),nn        getDataset = (json) =>n            letn                ConvertirEnTable = Table.FromRecords({json}),n                Developper = Table.ExpandListColumn(ConvertirEnTable, "data"),n                GarderData = Table.SelectColumns(Developper,{"data"})n            in GarderData,n            n        getJson = (url) =>n            letn                waitForResult = WaitFor(n                    (iteration) =>n                        letn                            Source = Web.Contents(url, [Headers=[Authorization="Bearer " & ApiToken], ManualStatusHandling = {500}, IsRetry = iteration > 0]),n                            contentType = Value.Metadata(Source)[Content.Type],n                            actualResult = if contentType = "application/json" then Json.Document(Source) else nulln                        in actualResult,n                    (iteration)=> #duration(0, 0, 0, Number.Power(2, iteration)),n                    5n                )n            inn                if waitForResult = nulln                then error "Wait for gave up after too many retry"n                else waitForResultn    inn        outputninn    Source

    A noter que le Token est dans un paramètre que j’ai appelé “ApiToken”.

    Ensuite, j’ai une fonction qui permet de générer par page :

    GenerateByPagenletn    Source = (getNextPage as function) as table =>n    letn        listOfPages = List.Generate(n            () => getNextPage(null),            // get the first page of datan            (lastPage) => lastPage <> null,     // stop when the function returns nulln            (lastPage) => getNextPage(lastPage) // pass the previous page to the next function calln        ),n        // concatenate the pages togethern        tableOfPages = Table.FromList(listOfPages, Splitter.SplitByNothing(), {"Column1"}),n        firstRow = tableOfPages{0}?n    inn        // if we didn't get back any pages of data, return an empty tablen        // otherwise set the table type based on the columns of the first pagen        if (firstRow = null) thenn            Table.FromRows({})nt    // check for empty first tablen        else if (Table.IsEmpty(firstRow[Column1])) thenn            firstRow[Column1]n        elsen            Value.ReplaceType(n                Table.ExpandTableColumn(tableOfPages, "Column1", Table.ColumnNames(firstRow[Column1])),n                Value.Type(firstRow[Column1])n            )ninn    Source

    Enfin, parce qu’il y a une limite de nombre de transactions par minute, j’avais dû créer une fonction d’attente :

    WaitFornletn    Source = (producer as function, interval as function, optional count as number) as any =>n    letn        list = List.Generate(n            () => {0, null},n            (state) => state{0} <> null and (count = null or state{0} < count),n            (state) => if state{1} <> null then {null, state{1}} else {1 + state{0}, Function.InvokeAfter(() => producer(state{0}), interval(state{0}))},n            (state) => state{1})n    inn        List.Last(list)ninn    Source

    J’espère que cela pourra t’aider. Peut-être une idée d’article à faire dès que je pourrais car c’est une vraie problématique.

    ATTENTION : j’ai eu des problèmes avec ce genre de code car la source devient dynamique et elle ne peut pas être utilisée dans Power BI Services. En effet l’actualisation automatique des sources dynamiques ne fonctionne pas.

    CommentID=rPOfMdeNFioAZOK, PostID=IT9iFywp9PBDbYs

  • Jeremy

    Member
    27 février 2023 at 8h06 en réponse à: Direct Query / Mode importer

    Bonjour Alexandre,

    En général, le message arrive lorsqu’on perd le Query Folding, lorsqu’une action ne peut pas être interprétée dans la requête SQL correspondante.

    Dans le cas que je vois, il faut récupérer le numéro de mois sur deux caractère sur une colonne de type DateTime. La solution est d’ajouter une colonne avec la fonction Date.Month. (ou aller dans : Ajouter une colonne > Date > Mois > Mois).

    En faisant un clic droit sur l’étape puis en cliquant sur “Afficher la requête native”, tu peux voir la requête SQL qui correspond.

    Ce qui donne : datepart(“m”, [_].[neo_date]) as [Mois]

    Dans ton cas, l’option “Requête native” était grisée, ce qui signifie que tu avais perdu le “Query Folding” (correspondance automatique avec le langage SQL).

    Enfin, si tu veux garder les 2 caractères du mois, une autre solution pourrait être (liste d’étapes) :

    • Modifier le type en Date

    • Modifier le type en Texte (en ajoutant une étape)

    • Extraire la plage de texte (index de départ : 5, nb caractères : 2)

    Voici le code (avec mes données) :

    // Extraire les deux caractères du mois d'une colonne date
        #"Mettre au format date" = Table.TransformColumnTypes(#"Mois inséré",{{"neo_date", type date}}),
        #"Mettre au format texte" = Table.TransformColumnTypes(#"Mettre au format date",{{"neo_date", type text}}),
        #"Extraire les 2 caract." = Table.TransformColumns(#"Mettre au format texte1", {{"neo_date", each Text.Middle(_, 5, 2), type text}})

    Le tout est de toujours trouver le moyen de contourner quand cela est possible.

    CommentID=vCmanl2Wk0tzmgP, PostID=UlP9q03yqXjmsbh

  • Jeremy

    Member
    27 février 2023 at 7h38 en réponse à: Exporter un visuel sur excel

    Bonjour Fred,

    Malheureusement il n’y a de possibilité de gérer ces autorisations au niveau d’un rapport. Toutefois, il est possible de le faire au niveau du tenant si cela peut aider. Dans le centre d’administration (Paramètres du client > Paramètres d’exportation et de partage > Exporter vers Excel), tu peux gérer ces autorisations par groupes de sécurité ou par personnes (en ajout ou par exception).

    A défaut, il est également de gérer le niveau d’information de l’export grâce au RLS (Row Level Security) ou aux étiquettes de sensibilité avec Purview.

    Pour les rôles au niveau de l’espace de travail, voici un lien qui explique l’ensemble des droits en fonction des rôles.

    https://learn.microsoft.com/fr-fr/power-bi/collaborate-share/service-roles-new-workspaces#workspace-roles

    Même si la réponse ne répond pas à ton besoin, j’espère que cela aura au moins éclairé.

    CommentID=5XoKFJiApyHzdjC, PostID=19JfvtMcbTH0TZH

  • Jeremy

    Member
    10 juin 2022 at 12h02 en réponse à: Export pdf dynamique avec les filtres des slicers

    En fait, je n’ai jamais testé de filtrer avec Power Automate intégré dans un Power BI. Je ne pourrais donc pas en dire plus à ce sujet.

    En revanche une autre méthode consisterait à utiliser la toute dernière nouveauté (annoncée durant Microsoft Build) : Power BI intégré dans Power Point. et ensuite, il peut être enregistré en PDF sans problème après avoir appliqué les filtres. Je viens de tester et cela fonctionne parfaitement.

    CommentID=750TY70qBQKY4rc, PostID=msgocCatfMGFIAn

  • Jeremy

    Member
    18 mai 2022 at 5h21 en réponse à: Hierarchie date

    Bonjour @Kevin P ,

    Normalement, le format va se mettre à jour en fonction des paramètres de ton PC si tu utilises bien la hiérarchie date classique. Si tu utilises une table date, tu peux prévoir la traduction dans cette table.

    Il existe aussi une fonction DAX :

    = FORMAT( Table[Date], “mm/dd/yyyy”, “fr-FR” )

    Afin de répondre au mieux, peux-tu envoyer un exemple de ta hiérarchie via un fichier PBIX ?

    CommentID=PVu3B9ynqbNokdE, PostID=53qLgZS6Ki2LOux

  • Jeremy

    Member
    13 mai 2022 at 7h07 en réponse à: Mise à jour automatique Power BI

    Bonjour @Romain,

    As-tu la possibilité de me partager le code M de la connexion à ta liste ou ton fichier SharePoint ? Et peux-tu pme communiquer le message d’erreur que tu as lorsque tu actualises ?

    CommentID=3AOTO8PvXFf7s1f, PostID=Olexgm4VWRdlwVe

  • Jeremy

    Member
    10 mai 2022 at 5h14 en réponse à: Mise à jour automatique Power BI

    Où sont stockées tes données ?

    CommentID=HPDx5vc3Kskgu3Z, PostID=Olexgm4VWRdlwVe

  • Jeremy

    Member
    9 mai 2022 at 12h06 en réponse à: Mise à jour automatique Power BI

    Bonjour @Romain,

    Je vois que l’actualisation doit être fait qu’une seule fois par jour. Ensuite, il s’agit d’un espace de travail personnel. Mais as-tu une licence Power BI Pro pour lancer l’actualisation ? En effet, cela est indispensable. Il est possible de prendre une licence d’essai pour 60 jours pour tester.

    Il faut savoir qu’avec une licence Power BI Pro, tu seras limité à 8 actualisations par jour mais cela ne posera pas de problème car le flux est lancé une fois par jour.

    Enfin, l’actualisation ne fonctionnera que sur un espace de travail et non sur Power BI Desktop qui est en local sur ton PC. L’actualisation mettra à jour les données. Aussi, as-tu essayé d’actualiser manuellement depuis Power BI Service pour vérifier que les credentials ont bien été saisis et que l’actualisation fonctionne déjà bien manuellement ?

    CommentID=MTVN0Bi8rGOfYyd, PostID=Olexgm4VWRdlwVe

  • Jeremy

    Member
    28 avril 2022 at 13h45 en réponse à: Fusion de deux listes

    Hello @Romain

    Voici un article que j’ai ecrit en 2016 qui explique les fusions pas à pas.

    Si tu as des questions, n’hésite pas

    CommentID=1SWMbYehogYrYFN, PostID=NmOd5tXoleV4zs5

  • Jeremy

    Member
    25 mars 2022 at 14h22 en réponse à: Architecture DataFlow et Modélisation

    Bonjour @Iheb

    L’architecture me semble intéressante. Je me pose tout de même la question de l’actualisation du Dataset qui va lire toutes ces données. Va t-il être actualisé toutes les heures (en décalage de 30 min avec le Dataflow >= -7j) ?

    Pour les dimensions, je suis en accord avec vous.

    Pour les autres Dataflows, est-ce qu’une actualisation hebdomadaire suffirait pour les dates < -7j du fait que nous parlions de 7 jours ?

    Et pour le dernier, si c’est la version Pro, ils vont être limités à 8 actualisations par jour du coup.

    Les solutions vont également dépendre du volume de données, de la durée des actualisations et des besoins métier. Et bien sûr comment vont ensuite être utilisés les dataflows ?

    CommentID=hyMN2VuqDUcKbs0, PostID=gufJx6VanZquIwx

  • Jeremy

    Member
    25 mars 2022 at 14h12 en réponse à: Actualisation planifiée vs Sur Demande

    Bonjour @Iheb

    Lorsque l’actualisation doit démarrer, la demande est faite mais elle ne commence par forcément de suite. L’actualisation est mise dans une queue et se lancera dès que ce sera possible. Pour les demandes, comme ce n’est pas à une heure précise (au niveau des minutes, nous ne sommes ni à 00 ou à 30 comme pour les planifications), il est plus rare d’avoir des actualisations en parallèle.

    Après cela est encore plus accentué si vous utilisez une capacité premium car la capacité est limitée. Par exemple, pour la P1, il n’est pas possible d’avoir plus de 6 actualisations en simultanée. Du coup, les actualisations se déclenchent dès que la place est disponible.

    Sinon, je ne vois pas d’autre raison particulière.

    Bonne journée.

    CommentID=96bSdTFE8nAsAWT, PostID=hENVVx6KePpERuI

  • Jeremy

    Member
    18 mai 2022 at 5h17 en réponse à: Mise à jour automatique Power BI

    @Romain, tu peux actualiser manuellement dans ton espace de travail sans avoir besoin de licence. En revanche, il faut que tu ailles dans la partie paramètres de ton jeu de données pour mettre à jour les éléments de connexion.

    Lorsque tu actualises, quelle erreur as-tu ? Et peux-tu me montrer ton code Power Query ? (dans Power Query, depuis Power BI Desktop, cliquer sur Accueil puis Editeur avancé après avoir sélectionner la requête qui se connecte à tes données SharePoint).

    SubCommentID=aCoZ4XBiFHIoUVQ, CommentID=WlZJBclqUQKMMN4, PostID=Olexgm4VWRdlwVe

  • Jeremy

    Member
    9 mai 2022 at 12h42 en réponse à: Mise à jour automatique Power BI

    En les fractionnant, cela fonctionne ?

    SubCommentID=9QDKz0G9FalJZCO, CommentID=kevH2RDTqpEzBle, PostID=Olexgm4VWRdlwVe

  • Jeremy

    Member
    9 mai 2022 at 12h42 en réponse à: Mise à jour automatique Power BI

    Pour la licence, elle n’est pas obligatoire en utilisant l’espace de travail perso.

    En revanche, si l’actualisation manuelle ne fonctionne pas, il est impossible de le faire avec Power Automate.

    SubCommentID=3XvEH6iMrVOtg3d, CommentID=kevH2RDTqpEzBle, PostID=Olexgm4VWRdlwVe

Page 3 of 4