Power Platform: App Maker Challenge, deel 3

Ingediend door Dirk Hornstra op 05-jun-2022 17:02

Het derde blok, verwachte tijd 1 uur en een kwartier.

We beginnen weer even met de model-driven vs. cavas-apps. Met model-driven apps focus je op dashboards, formulieren, views en grafieken in je apps. Met weinig of geen code kun je de boel "in elkaar klikken".

We zijn nu bezig met model-driven design, dus de te volgen stappen:

  • maak een model van je business data
  • definieer je business processen
  • bouw de app


Het bouwen van een model van je business data is de juiste structuur met tabellen opzetten, zodat het weergeeft wat je bedrijf doet.

De business processen is om ervoor te zorgen dat gebruikers geen handmatige acties hoeven uit te voeren, maar je app dit automatisch voor je in de juiste banen leidt.

Bouw de app. Hier stel je de componenten in die gebruikt gaan worden.

We gaan vervolgens de componenten bekijken.

Data (Table designer)

  • Tabel, items met eigenschappen. De voorbeelden zijn Accounts en Contacten.
  • Kolom, eigenschappen van een tabel, data type (tekst, nummer).
  • Relationship, hoe verhouden tabellen zich tot elkaar.
  • Choice column, gebruiker kan uit één of meerdere waardes kiezen.


User interface (verschillende designers)

  • App, hierin beheer je de componenten, eigenschappen, client type, URL (app designer).
  • Site map, site map voor navigatie door je app (site map designer).
  • Form, toont kolommen van een tabel om data toe te voegen/wijzigen (form designer).
  • View, hoe wordt een lijst van records getoond (view designer).


Logic (verschillende designers)

  • Business process flow, zorgen voor consistente afhandeling van processen (business process flow designer).
  • Workflow, automatiseren van processen zonder user interface (workflow designer).
  • Actions, soort processen die vanuit een workflow aangeroepen kunnen worden (process designer).
  • Business rule, kolom vereisten, kolommen verbergen, data valideren (business rule designer).
  • Flows, Power Automate is een cloud-gebaseerde service die je de mogelijkheid biedt om automatische workflows tussen apps en services uit te voeren om notificaties te ontvangen, bestanden te synchroniseren, data verzamelen en meer (power automate).


Visualisation (meerdere designers)

  • Chart, grafische weergave, toe te voegen in view, form of dashboard (chart designer).
  • Dashboard, tonen 1 of meer grafische visualisaties die een overzicht tonen van active business data (dashboard designer).
  • Embedded Microsoft Power BI, je kunt zaken uit Power BI (tiles, dashboards) importeren (combi chart designer, dashboard designer en Power BI).


Door in de solution te klikken op "Switch to classic" kun je in het linker deel in een boom-weergave alle app componenten zien.

We gaan door met het ontwerp-proces.

We zien het voorbeeld van een app "Fundraiser", dus een app om voor een goed doel geld binnen te halen.

Je ziet hoe de configuratie ingesteld staat en hoe in "Play Mode" je kunt zien hoe het dashboard er echt uit ziet.
Het draait er niet zo zeer om "hoe alles er uit ziet", maar meer: wat heeft de gebruiker nodig en toon ik die informatie?

Je gaat dus met de gebruikers afstemmen wat de benodigdheden zijn. Security, toegankelijkheid, data en ontwerpbehoeftes.

Business Requirements

Starten met security, er is veel mogelijk. Hierarchy security, rows-level security. Voor meer informatie kun je hier kijken: link

Ook kijk je of er regels zijn in het land waar de app draait en of er authenticatie/authorisatie verplichtingen zijn. Mogelijk moet er MFA geïmplementeerd worden.

En dan de vraag: als iemand de app gebruikt, maar geen internet-verbinding heeft, moet de app nog steeds gebruikt kunnen worden? Offline Mode dus. Wordt ondersteund door Dataverse en Model-driven apps als je iOS of Android gebruikt. Maar hier zitten nog wel wat haken en ogen aan, meer informatie kun je hier bekijken: link

Data Model

Stel jezelf de vraag:

  • wat voor type data ga ik opslaan en/of verzamelen?
  • hoe verhoudt zich dit met andere data?


Bedenk goed welk data-type een kolom krijgt, het bepaalt ook hoe de gebruiker deze te zien krijgt.
Dus heb je een veld waar valuta in komt, dan is het niet slim om er een tekst-veld van te maken.
En erger: moet je na de tijd het type aanpassen, dan kun je alleen de kolom verwijderen en een nieuwe correcte aanmaken. Je bent de data dus kwijt!

Business Logica

Als je business logica toevoegt, dan heb je 2 opties: Business Rules op je Dataverse tabellen of in je Business Process Flows.

Op de tabel, dan kun je instellen dat als bij kostentype "auto" gekozen wordt, het veld "afstand in kilometers" verplicht is (anders is het optioneel).

En er zijn partijen die componenten aan bieden, kijk eens op de Industry accelerators overview: link
Meer info: link
 

We gaan weer naar een voorbeeld (en lezen dus alleen de tekst door).
Een blanco app, met een staafdiagram van Accounts gegroepeerd bij type industrie.

De volgende oefening is met controle op de veiligheid.
In het voorbeeld wordt gewerkt met een eigen tabel. Daar moeten privileges expliciet op ingesteld worden voor mensen ermee kunnen werken.
Je kunt een bestaande rol aanpassen, of een nieuwe rol aanmaken. Omdat er meerdere apps in deze omgeving zitten wordt besloten om een nieuwe rol aan te maken.

Als je in de app zit, kiest voor "Share" en dan voor "manage security role", daar kun je dit beheren.

Er volgt nog een overzicht met de standaard rollen die altijd beschikbaar zijn;

  • Environment maker, privileges: geen, deze personen kunnen nieuwe resources aanmaken, API's, gateways, Microsoft Flow. Maar kunnen niet de data zelf bekijken. Meer info: link
  • System Administrator, privileges: create, read, write, delete, customize, mag en kan alles. Meer info over rollen voor "op maat maken": link
  • System Customizer, privileges: create (self), read (self), write (self), delete (self), customizations. Kunnen omgevingen aanpassen, maar alleen eigen data verwerken.
  • Basic User: privileges: read, create (self), write (self), delete (self), kan een app uitvoeren en eigen data bewerken.
  • Delegate: privileges: acties van gebruiker waar dit een representatie van is, meer info over impersonificatie: link


Business process flow

Een flow gebruik je bijvoorbeeld voor facturen, deze moet altijd eerst door iemand met een bepaalde rol geaccordeerd worden.
Meer informatie over business flows: link

Je hebt verschillende system business process flows:

  • lead to opportunity sales process
  • opportunity sales process
  • phone to case process


Dit proces kan betrekking hebben op 1 of meerdere tabellen. Let op, je kunt in 1 proces maximaal 5 tabellen gebruiken.

Een tabel kan deelnemen aan meerdere business flows. Dat kunnen maximaal 10 per tabel zijn.

Er volgt weer een voorbeeld, met maken van een model-driven app.

En dan de vragenlijst, allemaal goed. #bam