Réponses céées sur le Forum

Page 1 sur 3
  • Sylvain

    Membre
    13 septembre 2024 à 16h50 en réponse à: Bonnes pratiques création données HEADER / DETAIL

    😆 merci, ça me touche, mais c’est un peu la base je crois 😅🤣 t’as déjà entendu parler d’un mec qui s’apelle : Young, Shane Young 😎🤣

  • Sylvain

    Membre
    10 septembre 2024 à 10h01 en réponse à: API – Rafraichissement des données à la demande

    Hello, voici un enchainement de bloc qui marche de mon côté pour faire cela via Power Automate :

  • Sylvain

    Membre
    9 septembre 2024 à 12h56 en réponse à: API – Rafraichissement des données à la demande

    Bonjour Sarah,

    Est ce que vous ête susceptible d’utiliser l’application Power Automate ?

    Avec Power Automate il est possible d’effectuer une MAJ d’un dataflow et d’un dataset à la demande, tu peux ensuite mettre un bouton dans le rapport Power BI qui enclenche cet automate à la demande.

    Pas sûr d’avoir répondu à ta question je te laisse nous dire :-).

    Bien cordialement

    Sylvain CHARLETY pour DIGITALWAKEN – Transformation digitale Power Platform

  • Sylvain

    Membre
    8 septembre 2024 à 13h39 en réponse à: Bonnes pratiques création données HEADER / DETAIL

    Haha, bonne rentrée Annie 🙂

    Il me semble Jeremy que le fait d’avoir besoin d’enregistrement questions par question ou bien pas besoin d’enregistrement question par question mais plutôt à la fin de la manipulation devrait conditionner ton approche 😉

  • Sylvain

    Membre
    7 septembre 2024 à 12h01 en réponse à: Bonnes pratiques création données HEADER / DETAIL

    Hello Jeremy,

    Comme on est en train de le voir il y a plusieurs manières de répondre à ce besoin et le fait d’en discuter sur un exemple concret comme celui là est vachement interessant :-).

    Je vais te dire comment j’aurai fait pour répondre à ce besoin par contre j’ai pas spécialement focalisé sur le sujet, disons que j’ai appri à faire des PowerApps sur le tas et que cette méthode fonctionne assez bien de mon côté pour que je n’ai pas eu à la remettre en question jusqu’à présent, mais très intéressé pour la confronter à d’autres méthodes :-). La réponse de Quentin a l’air très interessante à creuser dailleurs.

    Dans les grandes lignes voici mon approche :
    -> déjà je n’utilise JAMAIS les objets de type formulaire, je les trouve trop contraignant vis à vis de la customisation.

    -> Je travaille à l’intérieur d’une gallerie ou bien d’un conteneur à l’intérieur duquel je place l’ensemble des contrôles qui vont permettre de remplir la table detail

    -> j’ai tout le temps en // des collections tampons qui gèrent l’affichage et qui reflêtent les bases de données, et dès que j’agis sur un contrôle qui affecte la base de données j’ai en // :

    • le tampon sur la base de donnée (via patch)
    • la MAJ de la collection tampon d’affichage (via UPDATEIF)

    de fait lorsque l’utilisateur remplit des champs ils sont patchés en temps réel dans la BDD.

    La structure de mes tables seraient comme tu l’entends de ce que j’en ai compris :
    -> une table avec une ligne par formulaire, genre tableFormulaire

    -> une table pivot avec une ligne par réponse qui se réfèrent au formulaire, genre tablePivotReponseDansTableFormulaire

    Lorsque je génère un nouveau formulaire, donc une nouvelle ligne dans tableFormulaire, je génère la table et je récupère son ID directement sur une action de type :

    Creation de la nouvelle ligne et récupération de l’ID :

    Set(
    varIdTableFormulaire;
    Patch(
    tableFormulaire;
    Defaults(tableFormulaire);
    {
    date:Today()
    }
    ).ID

    );;

    Intégration de la nouvelle ligne dans la collection tampon :

    Collect(
    collTamponTableFormulaire;
    Filter(tableFormulaire;ID=varIdTableFormulaire)
    )

    -> il me semble qu’avec cette méthode si le patch ne marche pas alors je ne peut pas récupérer d’ID donc ça bloque, mais à ma connaissance ça marche toujours 🙂

    Je te laisse me dire ce que tu en penses 😉

  • Sylvain

    Membre
    2 septembre 2024 à 8h29 en réponse à: Patcher en bloc une table mySql par un fichier CSV

    Bonjour Yvan,

    Merci beaucoup pour ta réponse, le fait d’utiliser des scripts enclenchés en automatique et impactant la db mySql sont en effet les pistes vers lesquelles je me tourne aujourd’hui.

    Dans les semaines qui arrivent je vais plancher sur les axes suivants :
    -> tester le patchage de la table mySql via Power Automate ou bien Power Automate desktop :
    -> avec un script en Python ou php ou PowerShell

    -> si ça ne marche pas voir ce qu’il est possible de faire dans le style avec une BDD plus Microsoft friendly genre AZURE SQL SERVER ou bien DATAVERSE

    -> le sujet des mots de passe dans le script j’y avait pas pensé et en effet c’est un point majeur à traiter merci beaucoup pour cette indication 🙂

    Je vous tiens au jus sur mon avancement sur le sujet 🙂

  • Salut David,

    Merci beaucoup de ta participation au sujet :-).

    Je viens de passer à peu près 2h à essayer de déterminer ce qui dans l’application implique une non détection des champs à faire remonter lors du ClearCollect() mais sans succès 😅.

    Suite à mes tests :

    • l’implémentation du conteneur horizontal ou vertical ne joue pas
    • l’implémentation des conteneurs à l’intérieur des conteneurs jusqu’à 6 niveaux d’imbrication ne joue pas
    • le fait que l’appel des champs dépendent d’une condition IF ne joue pas
    • si je mets dans mon application un objet type “table” avec X appel de champs fait systèmatiquement remonter les champs appelés lors du ClearCollect()

    Je sèche, that’s it low code no code 🤓

    Merci pour votre contribution en tout cas !

  • Salut Quentin,

    Merci beaucoup pour ta réponse c’est très sympathique de ta part et en plus cela fonctionne c’est à dire qu’en employant ShowColumns() sur la table à filtrer et à importer dans le ClearCollect j’arrive bien à importer mes colonnes :-).

    C’est déjà bien que ça fonctionne néanmoins ce n’est pas pratique du tout car lorsque j’ai besoin d’importer toute une table il faut que je me colle toutes les colonnes à la main dans la ShowColumns.

    Comme je trouvais ça bizarre j’ai fait une nouvelle série de tests et voici mes conclusions :

    Scénario 1 :
    – je suis en fonctionnement paramètres par défaut (j’ai pas touché aux paramètres de colonnes explicites cités dans mon premier post)
    – j’ai une galerie au premier niveau d’un écran, dans la galerie j’appelle (via un control text) une colonne ou plusieurs colonnes sur une collection tampon issues d’une vue Sql
    -> dans ce scénario tout fonctionne bien, pas besoin de showcolumns(), le système détecte bien l’appel des champs et les colonnes sont importés. Je ne rencontre pas le problème cité dans mon post

    Scénario 2 :
    – je suis en fonctionnement paramètres par défaut (j’ai pas touché aux paramètres de colonnes explicites cités dans mon premier post)
    – j’ai une galerie vachement imbriqué dans l’arborescence (voir image ci dessous), dans la galerie j’appelle (via un control text) une colonne ou plusieurs colonnes sur une collection tampon issues d’une vue Sql
    -> dans ce scénario je n’ai rien qui remonte par défaut, il me faut utiliser la fonction Showcolumns lors de la génération de la table tampon :

    Bon, ça me semble bien fucké et destabilisant comme problème, soit c’est une forme de bug soit j’ai raté autre chose à un autre endroit ^^, en tout cas j’ai une parade via ShowColumns.

    Affaire à suivre.

  • Sylvain

    Membre
    25 février 2024 à 12h57 en réponse à: Sécurisation liste SharePoint

    Bonjour Guillaume,

    Il me semble que tout est là justement :-), l’utilisation des listes SP en BDD sur les PowerApps est incluse dans les licences M365 et te permet de faire déjà beaucoup de choses néanmoins si tu cherches à implémenter une application avec :

    • de la sécurité à un niveau de production
    • des vues inter-tables exploitant ton modèle sémantique
    • des requêtes implémentés en back end par ta base de données pour élargir ton champs de possibilités techniques et décharger ta PowerApps

      -> là il te faut les licences PREMIUM, en gros pour faire du bricolage, découvrir PowerApps et faire des applications métiers non critiques, tu as Sharepoint, mais si tu veux aller plus loin avec les éléments cités çi dessus il te faut passer en premium.

      Je reste néansmoins abonné au sujet car c’est toujours bon d’avoir les trucs et astuces permettant d’aller le plus loin possible avec les licences M365.

  • Sylvain

    Membre
    21 février 2024 à 8h33 en réponse à: Méthodologie pour identification d’un scénario optimal

    Bonjour Philippe,

    Merci beaucoup pour ta réponse 🙂

    Il est en effet possible de faire des diagrammes de VENN dans Power BI néanmoins il me semble que c’est un visuel qui ne réponds pas complètement à mon besoin étant donné qu’à partir d’un trop grand nombre de groupes on y voit plus grand chose :-).

    Je suis en train d’immaginer une méthodologie avec plusieurs graphiques :
    -> voir quels sont les marques les plus couvrantes

    -> sélectionner une des marques les plus couvrantes

    -> faire ressortir les marques qui couvrent le plus de dimensions en dehors de la sélection afin d’identifier quels marques ajouter pour la couverture …

    … en itérant un peu ça devrait me permettre d’avoir un rendu optimisé.

    Néansmoins très friand d’idée sur le sujet !

  • Sylvain

    Membre
    12 février 2024 à 18h31 en réponse à: Calcul entre 2 Dates/heures

    Hello Stevanns,

    Dans ton dataset est ce que tu as bien deux colonnes avec un datetime, genre dateTimeDebut et dateTimeFin ? Ou bien 2 colonnes dates et 2 colonnes temps ?

    Est ce que tu ne peux pas implémenter une colonne calculée qui différentie deux cas de figures par un IF :
    -> cas A ou tu fais un calcul entre deux dates distinctes
    -> cas B ou tu fais un calcul sur le même jour

    et adapter ton calcul en fonction, genre :
    -> cas A tu ajoutes le nb d’heure entre les jours + le nb d’heure entre les temps ?
    -> cas B tu ne t’occupes pas des jours tu prends juste le nb d’heures entre les temps ?

    Je pense que je testerais un truc dans le genre…

  • Sylvain

    Membre
    12 février 2024 à 8h51 en réponse à: Exporter un pdf en local

    Salut Thomas !

    Merci beaucoup pour l’update c’est un sujet intéressant ! Il me semble que vous souhaitiez mettre l’interface à disposition sans login Microsoft, genre via une publication web du rapport, est ce que c’est toujours le cas ? La PowerApps ne devrait pas se lancer dans ce contexte je me trompe ? L’API semble être une bonne piste de même mais il me semble que tu auras toujours le problème des licences car tu dois passer par Power Automate à minima non ?

    • Cette réponse a été modifiée Il y a 9 mois, 2 semaines par  Sylvain.
  • 🙂 ça me permet de faire un tableau récapitulatif, sur des dimensions de pneus, afin de savoir quelles marques couvrent la dimension ou pas par rapport à une sélection de marques VS toutes les marques :

    C’est AU TOP !

  • Hello,

    Merci pour tous vos retours qui m’ont permis de bien cerner le sujet afin d’y apporter une solution optimisée.

    Voici ce que j’ai fait in fine :

    1/ Création d’une table calculée article “déconnectée” dans mon dataset qui est une copie de la table article du dataset : DIM_ARTICLE_DECO = DISTINCT(DIM_ARTICLE[ID_ARTICLE])

    2/ Insertion dans le rapport d’un visuel type table avec en tant que première colonne mon listing d’article déconnectés DIM_ARTICLE_DECO[ID_ARTICLES]

    3/ Création et insertion dans mon visuel table d’une mesure qui utilise les fonctions ISEMPTY et SELECTEDVALUE pour comparer si mes ID articles de la table déconnectés sont ou ne sont pas dans le filtrage de la table DIM_ARTICLES du dataset :

    ISEMPTY(
    FILTER(
    DIM_ARTICLES,
    SELECTEDVALUE(DIM_ARTICLE_DECO[ID_ARTICLES]) = DIM_ARTICLE[ID_ARTICLES]
    )
    )

    -> à partir de là je peux afficher en gros ce que j’ai envie d’afficher, les articles existants dans le filtrage OU les articles non existants dans le filtrage, en filtrant sur ma mesure.

    En tout cas merci beaucoup pour votre accompagnement.

    Bien cordialement.

    Sylvain CHARLETY pour DIGITALWAKEN

  • Exactement ! Je l’ai aussi enrobé d’un CALCULATE histoire d’ajuster les conditions de filtrages 🙂

Page 1 sur 3