Sustainable Power Apps through smart data filtering and loading

Die deutsche Version findet ihr hier: https://wp.me/p3Vyfd-p4

This article is part of my series on sustainable power platform solutions.

Essentially, sustainable software development – regardless of whether it is ProCode, LowCode or NoCode – is about using as few resources as possible and at the same time using as many advantages of mobile working as possible.

Less network load through fewer requests

A key point in reducing Carbon emissions is to minimize the network load, i.e. the data traffic.

What is the best way to reduce the network load when developing Power Apps?

Weiterlesen

Nachhaltige Power Apps durch geschicktes Filtern und Laden von Daten

English translation can be found here: https://wp.me/p3Vyfd-qf

Dieser Artikel ist Teil meiner Serie über nachhaltige Power Platform Lösungen.

Im Wesentlichen geht es bei nachhaltiger Softwareentwicklung – egal, ob ProCode, LowCode oder NoCode – darum, möglichst wenige Ressourcen zu verbrauchen und gleichzeitig möglichst viele Vorteile des mobilen Arbeitens zu nutzen.

Weniger Netzlast durch weniger Requests

Ein wesentlicher Punkt bei der Reduzierung von CO2-Emissionen ist es, die Netzlast, also den Datenverkehr, zu minimieren.

Wie reduziere ich die Netzlast bei der Entwicklung von Power Apps am besten?

Weiterlesen

Power Automate: Teile eines Flows deaktivieren / ausschalten

English translation is comming soon!

Während der Entwicklung und beim Debugging von Prozessen mit Power Automate Flow hilft es mir, wenn ich Teile eines Prozesses deaktivieren kann.

Gründe dafür können sein:

  • Vermeiden des Auslösens von Kind-Prozessen während des Debuggings
  • Simulation verschiedener Antworten der Gegenstelle und damit Stabilisierung des Flows
  • Sparen von Kosten, da die Gegenstelle auch ein kostenpflichtiger Dienst sein kann.
  • Sparen von Zeit / Netzlast, wenn es sich um umfangreiche Anfragen mit großen Ergebnisse handelt
  • Sparen von CO2-Emissionen, da jeder unnötige Aufruf CO2 emittiert.

Achtung: Dieser Artikel ist keine Diskussion über Sinn und Unsinn von Childflow oder ähnliches. Es gibt immer wieder Gründe für die unglaublichsten Dinge und unglaubliche Rahmenbedingungen.

Weiterlesen

Power Apps: JSON-Daten in Gallery anzeigen

This is the german version of this topic. The english translation is comming soon!

Ein Problem auf das jeder irgendwann einmal stößt ist, dass man Daten im JSON-Format in seiner Power App verarbeiten muss. Zumeist kommen sie aus externen Datenquellen, wie SharePoint, Azure BLOB Storage oder einfach als Rückgabe aus einem Cloud Flow.

Hab ich Problem gesagt? Japp, das habe ich.

Aufgabenstellung

Ich möchte Daten im JSON-Format einfach an eine Gallery binden um darin zu Filtern zu Sortieren etc. Die Daten kommen in meinem Fall aus einem Cloud Flow, den ich aus der App heraus aufgerufen habe.

Und nun die härteste aller Einschränkungen: STANDARD Only!

Weiterlesen

Power Apps File Upload

Das ist die englische Version des Artikels. Die deutsche Version findet ihr hier: https://wp.me/p3Vyfd-kY!

In this article I summarize my experiences and network research on the subject of file uploads in Power Apps Canvas Apps. You can get a little crazy, but in the end it works ;-).

we will have a look on

  • Attachments at SharePoint ListItems / DataVerse Tables,
  • File upload without SharePoint / DataVerse Forms,
  • and the best of two worlds
Weiterlesen

Power Apps File Upload

This is the german version of this topic. The english translation can be found here: https://wp.me/p3Vyfd-nn!

In diesem Artikel fasse ich meine Erfahrungen und Netz-Recherchen zum Thema File-Upload in Power Apps Canvas Apps zusammen. Man kann dabei ein bissl wahnsinnig werden, am Ende geht es aber doch ;-).

Wir schauen auf

  • Attachments an SharePoint Listeneinträgen / DataVerse Tabellen,
  • Datei-Upload ohne SharePoint Formular,
  • und das Beste aus zwei Welten
Weiterlesen

Deploying SharePoint Lists and Fields with Power Automate Flow

Das ist die englische Version. Die deutsche Übersetzung findet ihr hier:
https://stefanriedel.wordpress.com/2021/04/11/de-deploy-sharepoint-lists-and-fields-with-flow/

The requirement

For a current community project based on Power Platform, I am using SharePoint as the data source so that everyone can use the software without premium licenses.

Dataverse for Teams does not play a role yet, because the distribution options do not seem mature yet, but I did not want to wait any longer and get started with the project.

In principle, the requirement is very simple. The solution is based on a handful of SharePoint lists that I want to deliver with a Power Platform Solution. That means I need to be able to package the necessary SharePoint infrastructure into a data format and have the customer create it without any additional scripts. With Dataverse, this is quite easy, which is why I started to search.

Weiterlesen

Verteilen von SharePoint-Listen und Feldern mit Power Automate Flow

This is the german version of this topic. The english translation can be found here: https://stefanriedel.wordpress.com/2021/04/11/en-deploy-sharepoint-lists-and-fields-with-flow/

Die Anforderung

Für ein aktuelles Community Projekt, das auf der Power Platform basiert, nutze ich SharePoint als Datenquelle, damit jeder Interessierte die Software ohne Premium-Lizenzen nutzen kann.

Dataverse for Teams spielt noch keine Rolle, da mir die Verteilmöglichkeiten noch nicht ausgereift erscheinen, ich aber auch nicht mehr warten, sondern mit dem Projekt loslegen wollte.

Die Anforderung ist im Prinzip sehr einfach. Die Lösung basiert auf einer Handvoll SharePoint-Listen, die ich mit einer Power Platform Solution ausliefern will. Das heißt, ich muss die notwendige SharePoint-Infrastruktur in ein Datenformat verpacken und dieses beim Kunden ohne weitere Skripte erstellen lassen können. Bei Dataverse ist das recht einfach, weshalb ich auf die Suche ging.

Weiterlesen

Loops / Schleifen: Von JavaScript zu Power Apps

Dieser Artikel dient als Hilfe, wenn Du als JavaScript-Developer Code-Schnipsel in Power Apps erstellen musst.

In Kürze:
Ein Schleifenkonstrukt wie es aus fast allen Programmiersprachen bekannt ist, sucht man in Power Apps vergeblich. Aber es gibt etwas ähnliches, nämlich ForAll() in Verbindung mit Sequences.

Zur Dokumentation: https://docs.microsoft.com/de-de/powerapps/maker/canvas-apps/functions/function-forall

for (i=0; i<10; i++)
{
//dosomething
}


wird in PowerApps zu

ForAll( Sequence(10), //dosomething )

for (i=10; i>0; i--)
{
//dosomething
}


wird zu

ForAll( Sequence(10,10,-1), //dosomething )

Der Zugriff auf das aktuell prozessierte Element erfolgt mittels ThisRecord.
UpdateContext, Clear und ClearCollect können innerhalb von ForAll nicht verwendet werden.

Sequences sind auf 50.000 Einträge begrenzt.

Weiterlesen

Arrays: Von JavaScript zu Power Apps

Dieser Artikel dient als Hilfe, wenn Du als JavaScript-Developer Code-Schnipsel in Power Apps erstellen musst.

In Kürze:
Die Arrays in JavaScript entsprechen in PowerApps den Collections.

Zur Dokumentation: https://docs.microsoft.com/de-de/powerapps/maker/canvas-apps/functions/function-clear-collect-clearcollect

Elemente einer Collections lassen sich nicht direkt per Index ansprechen.
Eine Collection ist global verfügbar, also nicht wie eine Kontextvariable auf einen Bildschirm beschränkt.
Die Einträge einer Collection sind nicht eindeutig. Es kann also Doubletten geben.
Collect(glbCars,{manufacturer:“Opel“,model:“Admiral“}) fügt Datensatz der Collection hinzu. Existiert die Collection noch nicht, so wird sie angelegt.
Eine Array of String: Collect(glbCars,[„BMW“,“Volvo“,“Opel“])
Clear(Name) leert eine Collection.
ClearCollec(Name,“…“) leert zunächst eine Collection und fügt dann ein Element hinzu.

Element an einer bestimmten Position auslesen:
Last(FirstN(Name,x)) liest das N-te Element einer Collection

Teilmengen einer Collection
Last(Name) liest das letzte Element einer Collection
First(Name) liest das erste Element einer Collection
LastN(Name,3) liest die letzten 3 Elemente einer Collection
FirstN(Name,3) liest die ersten Elemente einer Collection

Löschen eines Elements
Remove(Name,Last(glbCars)) löscht das letzte Element des Arrays von Autos, was in JavaSCript einem Pop() entspricht.

Aktualisieren
Update(Name,oldRecord,newRecord,[All]) aktualisiert einen Datensatz, wobei der Datensatz des ersetzenden Eintrags als kompletter Datensatz angegeben werden muss. Wenn [All]=true, werden alle gleichen Datensätze aktualisiert.

Anzahl Elemente
CountRows(Name)

Weiterlesen