Inleiding
Mise en œuvre du cas d'utilisation: fournir une application performante, en low code, élaborée à partir des composants de Microsoft Stack, facile à entretenir et suffisamment flexible pour répondre à la nature changeante des questions d'évaluation.
1. Gebruiksdoel: flexibiliteit en lage code in evenwicht brengen
Een van onze klanten wilde een applicatie om de antwoorden op zijn vragenlijsten in te voeren. L'uniformité des données sauvegardées a tout d'abord constitué la promesse principale. Les données étant conservées dans une base de données, il s'agit d'une grande évolution par rapport à l'utilisation de fichiers Excel à normaliser manuellement. La base de données permet également à notre client de tirer des conclusions sur l'ensemble de données plutôt qu'au cas par cas.
De gebruiksvriendelijkheid van de applicatie is een tweede voordeel. Enerzijds kunnen de eindgebruikers intuïtief navigeren via de schermen. Anderzijds heeft de interne medewerker die verantwoordelijk is voor het onderhoud van de applicatie de gewoonte om te werken met applicaties met een lage code. Daarom hoefde er geen nieuwe competentie te worden ontwikkeld.
Kortom, we moeten een krachtige applicatie leveren, met weinig code, ontwikkeld op basis van de Microsoft Stack-componenten, die tegelijkertijd eenvoudig te bedienen en flexibel genoeg is om te reageren op de veranderende aard van evaluatievragen.
2. De componenten van een krachtige oplossing: de voorgestelde architectuur
We hebben de volgende architectuur als oplossing voorgesteld:
Power Automate wordt gebruikt voor :
- laadt alle gegevens uit Excel-bestanden op in SharePoint-lijsten. Hierdoor kunnen grote hoeveelheden belangrijke gegevensbestanden worden opgeladen.
- b. de autorisaties van elementen in de SharePoint-lijst controleren.
- de gebruikers van bepaalde evenementen te voorkomen (bijvoorbeeld wanneer een vragenlijst wordt gepland of wanneer een evenement wordt toegevoegd aan de kalender van de revisor).
Power Apps wordt gebruikt voor het maken van de applicatie. Power Apps interageert onmiddellijk met de stromen en kan bijvoorbeeld de autorisatieflux activeren. Power Apps maakt ook verbinding met SharePoint-lijsten door middel van CRUD-opdrachten.
Enfin, les listes SharePoint seront utilisées pour stocker les données. Deze lijsten worden uiteindelijk gebruikt door Power BI, dat de gegevens in de vragenlijst visualiseert.
3. De benadering: van een uniform model voor gegevens naar dynamische grafieken
3.1 Un modèle de données uniforme
Omdat de lijsten in SharePoint worden gebruikt voor het opslaan van gegevens, is de integriteit van de referentielijst van groot belang. We hebben onze klant een schéma en étoile voorgesteld met dimensies voor vragen en mogelijke antwoorden (meerdere keuzes). We hebben ook een andere dimensie toegevoegd om de rollen van de gebruikers (revisor, partner, enz.) in het oog te houden. Er is een dimensie gecreëerd om de gegevens van alle vragenlijsten (evaluaties) te verzamelen en er is een tabel met afmetingen gecreëerd om de antwoorden per vragenlijst te verzamelen. Bekijk hieronder een voorbeeld.
3.2. Dynamische schermen
En ce qui concerne l'application, nous aurions pu opter pour un écran fixe par question, ce qui aurait considérablement facilité le développement. Maar deze oplossing werd gekenmerkt door een gebrek aan flexibiliteit, want als we bijvoorbeeld het aantal vragen hadden willen veranderen, hadden we de applicatie moeten aanpassen. Het is handig om deze interdépendance te vermijden. Daarom hebben we gekozen voor dynamische weergaven en een navigatie op basis van een code.
De volgende stappen zijn genomen om deze flexibiliteit te bereiken:
- Alle vragen zijn toegevoegd aan een verzameling en mémoire, triée et indexée.
- Er is één scherm gebruikt voor alle vragen. De filters zijn toegepast op basis van het nummer van de lijn. Als je bijvoorbeeld van ligne 1 naar ligne 2 gaat, blijf je op hetzelfde scherm, maar de inhoud past zich aan.
- Met de knoppen "précédent" en "suivant" kunt u de index vergroten en naar het volgende/vorige scherm gaan (bijvoorbeeld het scherm waarop de vragenlijst definitief wordt verzonden).
4. Priorité à la sécurité: accès selon le rôle
Onze klant heeft drie verschillende rollen gedefinieerd:
- De controleur, die in eerste instantie de vragenlijst uitvoert
- De partenaire, die ervoor kan kiezen het eens of oneens te zijn met de antwoorden van de revisor
- De verantwoordelijke, die alle vragen beantwoordt
4.1. Speel met de variabele "visibilité" in Power Apps
Les mêmes écrans ont été réutilisés au sein de l'application, mais en fonction du rôle de l'utilisateur (défini comme dim_userrole), l'esthétique diffère. Dit hergebruik van de schermen vormt een voordeel. Het heeft niet alleen de pagina uniform gemaakt, maar ook de code op elke pagina vereenvoudigd.
4.2. Autorisaties SharePoint: toegang tot elementen in plaats van tot lijsten
En règle générale, un utilisateur doit accéder aux éléments/listes corrects avant que ils ne s'affichent dans Power App. Même si l'utilisateur n'accès pas généralement à l'évaluation que par le biais de Power App, il est essentiel qu'il ne dispose pas d'un accès non autorisé lorsqu'il navigue directement sur les listes. Het is bijvoorbeeld niet mogelijk dat de corrector één keer het recht heeft om de vragenlijst in te vullen. De corrector heeft ook niet het recht om de onderdelen van een vragenlijst te raadplegen die hem niet zijn toegewezen.
Voor een betere controle van de autorisaties hebben we ervoor gekozen om meerdere flux Power Automate te starten vanaf de applicatie. Deze geven het recht op specifieke elementen en niet op het definiëren van autorisaties voor het geheel van de lijst. Bekijk hieronder een voorbeeld.
4.3. Opstellen van rapporten over eerdere vragenlijsten met behulp van Power BI
Le rapport Power BI génère un aperçu des questionnaires antérieurs, y compris plusieurs chiffres pour agréger les données. Ici aussi, il convenait de ne montrer que les questionsnaires appartenant à un certain utilisateur. Hiervoor is een beveiliging op niveau van de ligne ingesteld, gebaseerd op een groep in Power BI (deze groep is toegevoegd aan de beveiligingsfuncties van het ensemble van données) en op de rol van de gebruiker in de dimensie Dim_userrole. Retrouvez un tutoriel détaillé de Tringuyenminh92 sur la façon dont adopter une sécurité dynamique au niveau de la ligne dans cet article(11 août 2017).
5. De voordelen benutten
Vous vous demandez peut-être pourquoi notre client a opté pour une application en low code plutôt que d'en créer une de zéro. Naast de lagere installatiekosten heeft deze oplossing nog meer voordelen.
5.1 SharePoint lijsten om gegevens in alle gezelligheid op te slaan
Hoewel de SharePoint-lijsten niet perfect zijn (zie de ongemakken), zijn ze eenvoudig te gebruiken en te manipuleren. De gebruikersinterface is intuïtief en kan worden gebruikt door lambdas-medewerkers. Tandis qu'une base de données véritablement relationnelle fournit davantage de cohérence, des connaissances de SQL sont nécessaires ou une autre application doit être créée pour interagir directement avec les données.
5.2 Aucun déploiement nécessaire de la Power App
L'application peut directement être publiée ; un espace d'hébergement, une procédure de déploiement ou des mesures de sécurité supplémentaires ne sont donc pas nécessaires. Dankzij Power Apps kan een ervaren gebruiker zijn applicatie zelfstandig ontwikkelen, is de versiecontrole geïntegreerd en zijn alle benodigde onderdelen beschikbaar in Microsoft Stack.
5.3 Eenvoudige formules zoals bonjour
Gebruikers die gewend zijn formules te schrijven in Excel of DAX in Power BI raken gemakkelijk vertrouwd met de codering in Power Apps. Bovendien kan de code direct worden toegepast op elementen van het type glisser-déposer waarmee het eenvoudig samenwerken is.
5.4 Integratiebevordering
Zoals voor alle producten van Microsoft geldt, zijn de gebruikte componenten perfect geïntegreerd.
6. Inconvénients des composants utilisés
6.1. Weinig controle over de prestaties
Dans Power App, les recherches doivent être effectuées fréquemment afin de récupérer des éléments spécifiques tels que la bonne question en fonction de l'index (voir écrans dynamiques). Ces recherches sont sensiblement moins performantes sur de grands ensembles de données, comme des listes de milliers de lignes.
Er bestaan echter meerdere oplossingen om de prestaties van de applicatie te garanderen.
- Des filtres peuvent être appliqués une fois la collection chargée en mémoire afin de réduire le nombre de lignes qu'il convient d'analyser. Om deze correctie uit te voeren, kunt u eerst de collectie in het geheugen corrigeren voordat u de SharePoint-lijst corrigeert.
- Meerdere indexen kunnen worden toegevoegd aan SharePoint-lijsten. Als zoekopdrachten regelmatig op een bepaald veld worden uitgevoerd, is het verstandig om dit veld (of deze velden) als index te gebruiken.
- Om het aantal lijnen te verminderen, kunt u de eerdere evaluaties archiveren die niet meer nodig zijn dankzij een flux Power Automate.
6.2. Aucun modèle de mise en page
De onmogelijkheid om een modèle de mise en page op te zetten, zoals je kunt doen door gebruik te maken van front-end modèles zoals React, is een van de meest frustrerende aspecten van de glisser-déposer parameters. De meeste elementen moeten ook handmatig worden gekopieerd, zowel in Power BI als in Power Apps. Er bestaan meerdere oplossingen om dit proces te vereenvoudigen, maar ze volstaan niet.
- Utilisation de variables : les couleurs, les polices, etc., peuvent être stockées dans des variables afin que chaque élément ne doive pas être modifié en cas de changement du style interne, par exemple.
- Utilisation de composants : il s'agit d'un paramètre premium uniquement disponible pour les formules payantes de Power Apps. Deze parameter is echter niet geschikt voor bepaalde dingen, want u kunt met name een complete composant maken als een menubalk. Deze composant kan vervolgens worden geïntegreerd in alle pagina's en wordt automatisch aangepast bij verandering van de pagina-instelling.
6.3. Beperkt gebruik van de code
Het grote ongemak van Power Apps is ook een van de sterke punten: je kunt de code direct op de elementen opslaan, wat de intuïtiviteit ten goede komt. Het is echter onmogelijk om de code in verschillende variabelen op te slaan om deze op meerdere elementen te kunnen toepassen. Nog een keer, dit leidt tot veel kopieerders.
Bovendien bestaat er geen recherchefunctie om de code te zoeken. Het is dus nodig om elk element afzonderlijk aan te klikken, met het risico op een menselijke fout. Cet inconvénient peut être mis de côté pour les petites applications, mais pour les applications comportant plusieurs milliers de lignes de code, une fonction d'évaluation constitue une nécessité absolue afin de stocker le code de manière centrale dans des variables.
Conclusie
Kortom, de architectuur die aan het begin van dit artikel wordt voorgesteld, is geschikt voor bedrijven met een kleine omvang die het geheel van controle over de gegevens en het ontwerp van de toepassing willen uitbesteden aan hun ervaren gebruikers. Naast de noodzakelijke abonnementen is de installatie relatief eenvoudig en zijn de onderhoudswerkzaamheden zeer eenvoudig. Wilt u meer flexibiliteit? Andere oplossingen moeten worden overwogen.
Meer weten?
Aarzel niet om contact met ons op te nemen voor meer informatie over dit project. Het is ons een genoegen u ook andere goede praktijken te laten zien, zoals :
- Hoe gebruik je een index op een SharePoint-lijst?
- Hoe parametreer je een archiveringsstroom Power Automate?
- Hoe kan ik eenvoudig de integriteit van de SharePoint-lijst controleren?
- Hoe kunt u prestatietests uitvoeren om de prestaties van uw Power App te testen?