Terug naar lijst

Microsoft maakt het met Power Apps nog makkelijker om eigen apps te maken die snel gedeeld kunnen worden met gebruikers binnen de eigen organisatie.

Power Apps maakt het mogelijk om nog sneller en directer met de data te werken zonder dat er langlopende software ontwikkeltrajecten moeten worden doorlopen. Power Apps is daarmee een mooie uitbreiding in elk software landschap.

In deze blog laat ik zien hoe een Power App gemaakt wordt die gegevens uit een SQL database laat zien en waar de gebruiker de gegevens kan aanpassen en nieuwe gegevens kan invoeren.

Voorbereiding

In deze blog maken we gebruik van een SQL tabel met orders. Het SQL script met een voorbeeld data is hieronder opgenomen:


CREATE TABLE [dbo].[FactOrders](
[iOrderKey] [int] IDENTITY(1,1) NOT NULL,
[Klant] [varchar](50) NULL,
[FactuurDatum] [date] NULL,
[Ordernummer] [varchar](50) NULL,
[Product] [varchar](50) NULL,
[Aantal] [decimal](18, 2) NULL,
[OmzetBedrag] [decimal](18, 2) NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[iOrderKey] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[FactOrders] ON
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (9, N'Klant A', CAST(N'2019-01-01' AS Date), N'Ordernummer: 2019-001', N'Product I', CAST(50.00 AS Decimal(18, 2)), CAST(100.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (10, N'Klant A', CAST(N'2019-02-05' AS Date), N'Ordernummer: 2019-002', N'Produc II', CAST(100.00 AS Decimal(18, 2)), CAST(300.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (11, N'Klant A', CAST(N'2019-03-28' AS Date), N'Ordernummer: 2019-003', N'Produc II', CAST(200.00 AS Decimal(18, 2)), CAST(450.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (12, N'Klant B', CAST(N'2019-01-05' AS Date), N'Ordernummer: 2019-004', N'Product I', CAST(250.00 AS Decimal(18, 2)), CAST(500.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (13, N'Klant B', CAST(N'2019-02-16' AS Date), N'Ordernummer: 2019-005', N'Product III', CAST(30.00 AS Decimal(18, 2)), CAST(900.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (14, N'Klant B', CAST(N'2019-03-23' AS Date), N'Ordernummer: 2019-006', N'Product I', CAST(65.00 AS Decimal(18, 2)), CAST(130.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (15, N'Klant C', CAST(N'2019-01-15' AS Date), N'Ordernummer: 2019-007', N'Produc II', CAST(90.00 AS Decimal(18, 2)), CAST(270.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (16, N'Klant C', CAST(N'2019-02-28' AS Date), N'Ordernummer: 2019-008', N'Product I', CAST(91.00 AS Decimal(18, 2)), CAST(182.00 AS Decimal(18, 2)))
GO
INSERT [dbo].[FactOrders] ([iOrderKey], [Klant], [FactuurDatum], [Ordernummer], [Product], [Aantal], [OmzetBedrag]) VALUES (17, N'Klant C', CAST(N'2019-03-13' AS Date), N'Ordernummer: 2019-009', N'Produc II', CAST(52.00 AS Decimal(18, 2)), CAST(156.00 AS Decimal(18, 2)))
GO
SET IDENTITY_INSERT [dbo].[FactOrders] OFF
GO

Aanmaken nieuwe app

Power Apps is heel flexibel en de app kun je helemaal zelf vanaf de grond opbouwen. Power Apps biedt echter ook de mogelijkheid om een groot deel van de app voor te bereiden op basis van een connectie met een gegevensbron.

Ga in Power Apps naar Apps,

en kies vervolgens voor App maken.

Kies in het volgende scherm voor Telefoonindeling onder SQL server.

Maak een nieuwe verbinding aan met de SQL server en de database waar de Order tabel in is opgenomen.

Selecteer de verbinding met de SQL tabel en kies voor de tabel FactOrders.

Power Apps heeft nu automatisch drie nieuwe pagina’s aangemaakt:

  1. Een pagina met een lijst van alle orders
  2. Een edit pagina voor het aanpassen van een order
  3. Een pagina om een nieuwe order toe te voegen

Als je een van de schermen open klikt, zie je welke elementen er allemaal zijn aangemaakt op deze pagina

Wanneer je een element aanklikt krijg je aan de rechterkant van het scherm de mogelijkheid om alle eigenschappen van dat element aan te passen. Elk element heeft heel veel mogelijkheden om deze precies naar eigen wensen aan te passen.

Op het canvas in het midden van het scherm zie je hoe de pagina eruit komt te zien. Hier kun je nog elementen toevoegen, verplaatsen of bijvoorbeeld de titel aanpassen.

‘Out of the box’ is de app al redelijk compleet. Om de app te testen, kun je rechts bovenin op de play button klikken.

De app opent in een nieuwe tab en je ziet dat alle functies werken.

De search box bovenin filtert alle rijen op basis van de zoekterm.

Je kunt een nieuwe order aanmaken door op het plusje te klikken,

en je kunt een bestaande rij aanpassen door op een rij te klikken en vervolgens voor het potloodje rechts bovenin te klikken.

App publiceren

De volgende stap is om de app te publiceren en te delen met andere gebruikers.
Sla de app eerst op via Bestand > Opslaan als en geef de app een mooie naam. In het volgende scherm krijg je de mogelijkheid om de app te delen met andere gebruikers. Deze gebruikers krijgen vervolgens een mailtje met een link naar de app en zij kunnen de app openen in de mobiele app op hun telefoon.

Afsluiting

Met Power Apps is het heel eenvoudig om snel en eenvoudig nieuwe apps te maken en aan de gebruikers ter beschikking te stellen. In deze blog is een eenvoudig voorbeeld gemaakt, maar de mogelijkheden in Power Apps zijn zeer uitgebreid. Voor bijna elke vraag is er wel een oplossing te bedenken.