Anhänge nach Datentyp in PowerApps einschränken

Anhänge nach Datentyp in PowerApps einschränken

Eine immer wieder auftauchende Anfrage bei digitalen Prozessen ist die Beschränkbarkeit von Anhangsdokumenten. Bei der Bewerbung sollen beispielsweise nur PDFs angehängt werden können; das IT-Ticket darf nur mit Bildern ergänzt werden.

Das “Attachments”-Steuerelement in PowerApps-Formularen bringt (Stand: Oktober 2019) leider keine Filterung für Datentypen mit. Doch glücklicherweise lässt sich diese Funktionalität relativ unkompliziert mit weniger kleinen Formeln nachbauen.

Zwischenablage erstellen

Als erstes benötigen wir eine Zwischenablage für die Validierung. Dazu erzeugen wir einen neuen Screen und fügen dort ein Label ein.

Der zusätzliche Screen ist nicht zwingend notwendig, aber so hat das Label einen ordentlichen Platz, an dem es nicht stört.

Für den Text-Wert des Labels fügen wir jetzt folgende Funktion ein:

Concat(DataCardValueXX.Attachments.Name,
    If(
       Or(
           Lower(Right(Name,Len(Name)-Find(“.”,Name)))=”pdf”,
           Lower(Right(Name,Len(Name)-Find(“.”,Name)))=”doc”,
           Lower(Right(Name,Len(Name)-Find(“.”,Name)))=”docx”
       ),
    “1”,”0″))

DataCardValueXX wird durch den Namen des Attachment-Steuerelements ersetzt – Wichtig: NICHT der Name der DataCard selbst, sondern der Name des Attachment-Steuerelements in der DataCard.

Erklärung zur Funktion

Die Funktion liest alle angefügten Dateinamen, extrahiert die Endungen und fügt für erlaubte Endungen eine “1” und für nicht erlaubte Endungen eine “0” an.

  • Concat
    • Baut eine Zeichenkette aus einer Sammlung von Werten zusammen. In diesem Falle ist die Sammlung der Werte die Eigenschaft “Attachments.Name” unseres Attachment-Steuerelements.
  • Or-Block
    • Für jeden erlaubten Datentyp gibt es eine Abfrage im “Or”-Block.
  • Right(Name,Len(Name)-Find(“.”,Name))
    • Mit Hilfe der “Right”- und “Len”-Funktionen wird der Text nach dem “.” im jeweiligen Datennamen, also die Dateiendung, extrahiert.
  • Lower([…])=”pdf”
    • Die “Lower”-Funktion wird verwendet, um die Dateiendung in Kleinbuchstaben zu erhalten. Da Textabgleiche in PowerApps case-sensitive sind, sparen wir uns so die Abfrage der Dateitypen in mehreren Schreibweisen.

Abfrage beim Senden des Formulars

Wenn alles funktioniert hat, zeigt das Label jetzt einen Binärwert, der anzeigt, ob sich ungültige Dateitypen unter den Anhängen befinden. Auf diesen Wert können wir jetzt beim Abschicken des Formulars prüfen.

In meinem Beispiel wird das Formular – wie i.d.R. üblich – über einen Button abgeschickt. Die “OnSelect”-Funktion des Buttons wird jetzt wie folgt ergänzt:

If(
    IsMatch(lbl_attachmentValidation.Text,”0″,Contains),
    Notify(“Ungültiger Datentyp angehängt.”,NotificationType.Error),
    [… BISHERIGE FUNKTION …]
)

Erklärung zur Funktion

Wie beschrieben, prüft die Funktion auf 0-Werte innerhalb unseres Validierungstextes. Sind 0-Werte vorhanden, wird ein Fehler ausgegeben. Sind keine vorhanden, wird die bereits bestehende Funktion des Buttons – in diesem Fall “SubmitForm()” – ausgeführt.

  • IsMatch
    • Prüft, ob es eine Übereinstimmung mit einem regulären Ausdruck im Text gibt. In diesem Fall ist der reguläre Ausdruck einfach “0”. Wichtig ist hier die zusätzliche Angabe der Option “Contains”, da “IsMatch” sonst den vollständigen Text vergleichen würde.
  • Notify
    • Gibt eine Meldung aus. Der NotificationType bestimmt die Farbe und das Icon der Meldung. Die Funktion lässt sich wohl als White- als auch als Black-List nutzen. Dafür einfach auf “1” statt auf “0” prüfen lassen.

Fazit

Die Prüfung auf verschiedene Datentypen im Anhang von PowerApps-Formularen lässt sich relativ unproblematisch hinzufügen und nachträglich anpassen. Durch das Label auf dem gesonderten Screen gibt es darüber hinaus eine einfache Möglichkeit die Funktion zu testen und nachzuvollziehen.

Es ist auch möglich, die Funktionen so anzupassen, dass der Ergebnistext die unerlaubten Dateinamen enthält. Diese können dann z.B. in der Meldung ausgegeben werden.

Viel Spaß beim Ausprobieren.

Weitere Blogbeiträge

Umfragen in Teams mit Microsoft Forms
novaCapta
novaCapta

Umfragen in Teams mit Microsoft Forms

Umfragen bieten die Möglichkeit, bei der Planung von beispielsweise Events schnell zu einem Termin/Ergebnis zu kommen oder aber auch Feedback zu vergangenen Ere...

PDF-Konverter in Power Automate
novaCapta
novaCapta

PDF-Konverter in Power Automate

Kann ich mittels Microsoft Power Automate und einer SPFx-Anwendung ohne größere Probleme einen PDF-Konverter erstellen? Die einfache Antwort: Ja. Und auch die A...

6 Tipps für bessere Web-Meetings
novaCapta
novaCapta

6 Tipps für bessere Web-Meetings

Unsere Arbeitswelt steht Kopf: Da jede Art persönlicher Termine nicht mehr stattfindet, wird auf Videokonferenzen via Teams oder Zoom ausgewichen. Nicht wenige ...

Migration SharePoint 2013 zu 2019
novaCapta
novaCapta

Migration SharePoint 2013 zu 2019

Auch wenn die Cloud und allen voran O365 von vielen Unternehmen forciert wird, gibt es immer noch viele Organisationen, wie beispielsweise Banken und Behörden, ...

pnpm: eine Alternative zu npm
novaCapta
novaCapta

pnpm: eine Alternative zu npm

pnpm ist eine Alternative zu den Paket-Managern npm oder yarn. Wie bei diesen Anbietern werden von pnpm die verwendeten Pakete von der npm-Registry gezogen. Der...

Testen von Angular Anwendungen mit Cypress
novaCapta
novaCapta

Testen von Angular Anwendungen mit Cypress

Cypress ist ein End-to-End Testing Framework, mit dem man einfache Tests erstellen kann, die in Echtzeit ausgeführt werden. Mit Cypress kann man auch Snapshots ...

GraphQL – Die Alternative zu REST
novaCapta
novaCapta

GraphQL – Die Alternative zu REST

GraphQL ist eine Abfragesprache für APIs zur Ausführung von Abfragen mit Hilfe eines für die Daten definierten Typensystems. In dieser kleinen Blog-Serie schaue...

Cloud Metadaten
Drei Tipps für mehr SharePoint-Begeisterung
novaCapta
novaCapta

Drei Tipps für mehr SharePoint-Begeisterung

Wir geben Tipps zur der Microsoft Serverplattform für Content Management, (Social)-Collaboration, Portalfunktion, Business Intelligence und Enterprise Search.

Azure Functions: Der Webservice ohne Webserver
novaCapta
novaCapta

Azure Functions: Der Webservice ohne Webserver

Azure Functions als Authentifizierungs-Helfer für clientseitige Lösungen mit 3rd Party APIs

Teams Extensions – Erstellen von Erweiterungen für Teams
novaCapta
novaCapta

Teams Extensions – Erstellen von Erweiterungen für Teams

Mit der Entwicklung von Extensions kann Teams einfach erweitert werden. Hierfür gibt es das App Studio, welches über den Teams Store installiert werden kann.

.NET-Anwendung hinter Proxy-Servern, Kommunikation mit Azure
novaCapta
novaCapta

.NET-Anwendung hinter Proxy-Servern, Kommunikation mit Azure

Praktische Beispiele für die Anwendung von Proxy-Servern bei .NET-Apps und -Websites sowie die Kommunikation über den Azure Service Bus.

DevOps und „The Phoenix Project“
novaCapta
novaCapta

DevOps und „The Phoenix Project“

Buchvorstellung "Projekt Phoenix: Der Roman über IT und DevOps - Neue Erfolgsstrategien für Ihre Firma" von Gene Kim.

Ich bin im Flow! – Eine Übersicht zu Microsoft Flow
novaCapta
novaCapta

Ich bin im Flow! – Eine Übersicht zu Microsoft Flow

Die Power Platform wird aktuell von Microsoft sehr stark gepusht. Zeit, sich mit dem Potenzial der einzelnen Komponenten zu beschäftigen. Heute: Flow.

DevOps und Container
novaCapta
novaCapta

DevOps und Container

DevOps an sich ist nicht an eine Technologie gebunden, jedoch haben sich Container-Technologien und DevOps als Verwandte im Geiste gefunden.

Paket Dependency Manager für .NET
novaCapta
novaCapta

Paket Dependency Manager für .NET

Paket ist ein Dependency Manager für .NET, welcher es sich zum Ziel gesetzt hat einige Probleme von NuGet zu beheben.

Tipps und Tricks mit Entity Framework
novaCapta
novaCapta

Tipps und Tricks mit Entity Framework

In diesem Blogbeitrag möchte ich einige Tipps und Tricks rund um Entity Framework mit euch teilen. In allen Beispielen gehen wir vom Code-First Ansatz aus.

SharePoint Framework Client-Side Webparts mit React
novaCapta
novaCapta

SharePoint Framework Client-Side Webparts mit React

React ist ein Framework zur Erstellen von Benutzeroberflächen. In der SharePoint Online Entwicklung bietet es sich für die Entwicklung von Client-Side Webparts...

Sprechen Sie LUIS? – Der intelligente Chat-Bot im Praxistest
novaCapta
novaCapta

Sprechen Sie LUIS? – Der intelligente Chat-Bot im Praxistest

Mit LUIS, der Sprach- und Texterkennungssoftware von Microsoft, und dem Bot Framework von Azure haben wir eine Lösung für den IT-Support entwickelt.

Grundlagen der Gestaltung
novaCapta
novaCapta

Grundlagen der Gestaltung

Die Gestaltgesetze der Wahrnehmungspsychologie

PowerApps – Neuigkeiten, Übersicht, Tipps & Tricks
novaCapta
novaCapta

PowerApps – Neuigkeiten, Übersicht, Tipps & Tricks

Neues aus der Welt von PowerApps

Cloud Metadaten
SharePoint Suche – FirstSpirit Website Crawl
novaCapta
novaCapta

SharePoint Suche – FirstSpirit Website Crawl

Die Einbindung von Inhaltsquellen in die SharePoint Enterprise Suche kann den Administrator vor unvorhersehbare Herausforderungen stellen. Tipps dazu.

Microservices automatisiert in Azure betreiben
novaCapta
novaCapta

Microservices automatisiert in Azure betreiben

VSTS, Docker Swarm Mode, Traefik und Azure IaaS

Zentralisiertes Logging – Simpler Logging-Stack mit Graylog
novaCapta
novaCapta

Zentralisiertes Logging – Simpler Logging-Stack mit Graylog

Logging ist ein komplexes und doch essenzielles Thema. Gute Logs vereinfachen einem Supporter die Arbeit und ermöglichen es, Probleme schneller einzugrenzen.

Lasttests für Microsoft SharePoint 2013/2016
novaCapta
novaCapta

Lasttests für Microsoft SharePoint 2013/2016

Der Artikel beschreibt eine einfache Methode zur Durchführung von Belastungstests mit Hilfe des Webserver Stress Tools des deutschen Unternehmens Paessler.

Cloud Metadaten
Nutzung der SharePoint REST API mit Microsoft Flow
novaCapta
novaCapta

Nutzung der SharePoint REST API mit Microsoft Flow

Durch Zugriffe über die REST API lassen sich viele Vorgänge mit Microsoft Flow automatisieren.

Traceability in agilen Projekten – RTM im Jahr 2018
novaCapta
novaCapta

Traceability in agilen Projekten – RTM im Jahr 2018

Ein wichtiges Ergebnis des Requirements Engineering in einem Wasserfallprojekt ist die Traceability Matrix. Sie bildet das Bindeglied zwischen den Anforderungen...

Angular Route-Guards
novaCapta
novaCapta

Angular Route-Guards

Was versteht man eigentlich unter Angular Route-Guards?

Cloud Metadaten
Spaltenformatierung in SharePoint: Column formatting vs. JS
novaCapta
novaCapta

Spaltenformatierung in SharePoint: Column formatting vs. JS

Eine Gegenüberstellung der Spaltenformatierung von JSLink zu der neueren Methode Column formating in Office 365.

Struktureller Aufbau eines Angular Modules
novaCapta
novaCapta

Struktureller Aufbau eines Angular Modules

Dieser Blogbeitrag beschäftigt sich mit dem strukturellen Aufbau eines Angular Modules und der Kommunikation der einzelnen Komponenten.

Hub Sites – Neues Level der Vernetzung
novaCapta
novaCapta

Hub Sites – Neues Level der Vernetzung

Mit der Einführung der Modern Sites auf SharePoint Online hielt ein komplett neues Bedienungs-, Oberflächen- und Nutzungskonzept Einzug. Microsoft führt diese O...

Cloud Metadaten
Hybride Metadaten und Inhaltstypen
novaCapta
novaCapta

Hybride Metadaten und Inhaltstypen

Dies sollten Sie bei der Verwaltung von Metadaten in hybriden SharePoint-Umgebungen beachten, um eine reibungslose Synchronisation zu sichern.

Entwicklung von Webparts mit SharePoint Framework
novaCapta
novaCapta

Entwicklung von Webparts mit SharePoint Framework

Teil 1 – Solution Struktur

Sliding to heaven – A short story of a SPFx Slider Webpart
novaCapta
novaCapta

Sliding to heaven – A short story of a SPFx Slider Webpart

SharePoint Framework, kurz SPFx, ist eine zukunftsträchtige Technologie zur Erstellung von Webparts oder Extensions auf der Basis von TypeScript.

Angular 5 Custom Filter in Angular Material Data-Table
novaCapta
novaCapta

Angular 5 Custom Filter in Angular Material Data-Table

In diesem Blogbeitrag will ich euch darlegen, wie man einen Custom Filter für das Angular Material Data-Table Modul erstellt.

Grundlagen der Datenmodellierung – Teil 1
novaCapta
novaCapta

Grundlagen der Datenmodellierung – Teil 1

Fachliches Modell mit ER-Diagrammen (auch ERM – Entity Relationship Model)

Aus Zwei mach Eins – Das kann das neue Sharegate Update
novaCapta
novaCapta

Aus Zwei mach Eins – Das kann das neue Sharegate Update

In diesem Beitrag zu Sharegate gebe ich Einblicke in die Neuerungen und Veränderungen als auch persönlichen Erfahrungen weiter.

PayPal-Zahlung in einer MVC Anwendung
novaCapta
novaCapta

PayPal-Zahlung in einer MVC Anwendung

In diesem Blogbeitrag möchte ich demonstrieren, wie eine Einbindung von PayPal in eine MVC Applikation funktioniert.

Der wiederholte Bereich in Nintex Forms
novaCapta
novaCapta

Der wiederholte Bereich in Nintex Forms

Nintex für Fortgeschrittene

HoloLens Hackathon
novaCapta
novaCapta

HoloLens Hackathon

Virtual-, Augmented- und Mixed Reality sind Begriffe, die man evtl. schon einmal gehört oder indirekt damit zu tun gehabt hat. Doch was steckt dahinter?

Part 1 – Alexa Custom Skill: Amazon
novaCapta
novaCapta

Part 1 – Alexa Custom Skill: Amazon

In diesem Beitrag liegt der Schwerpunkt vor allem auf dem Erstellen eines Custom Skills im Amazon Developer Portal, dem Anlegen eines Interaction Models und der...

Part 2 – Alexa Custom Skill: Azure Function
novaCapta
novaCapta

Part 2 – Alexa Custom Skill: Azure Function

In diesem Blogbeitrag geht es um die von Alexa gesendeten Anfragen, Anfragen an SharePoint Online sowie die Verarbeitung dieser mithilfe von C#.

Cloud Metadaten
SharePoint-Migration unter Einhaltung der BITV 2
novaCapta
novaCapta

SharePoint-Migration unter Einhaltung der BITV 2

Einhaltung aller Vorgaben durch die BITV 2 bei einer Migration von SharePoint Server 2013 zu 2016.

Cloud Metadaten
Real-time Web mit SharePoint (SignalR)
novaCapta
novaCapta

Real-time Web mit SharePoint (SignalR)

Was ist Real-time Web?

Handlebars.js – Semantische Template Library
novaCapta
novaCapta

Handlebars.js – Semantische Template Library

Handlebars.js ist eine Template-Engine für JavaScript. Sie ermöglicht dem Entwickler, mit Hilfe von semantischen Templates Business-Logik und HTML zu trennen.

SharePoint vs. TYPO3 – Sechs Gründe für SharePoint-Intranet
novaCapta
novaCapta

SharePoint vs. TYPO3 – Sechs Gründe für SharePoint-Intranet

Hier lesen Sie die sechs wichtigsten Argumente, warum Sie Office 365 mit SharePoint für Ihre Intranetlösung gegenüber TYPO3 bevorzugen sollten.

Cloud Metadaten
SPFx: Lohnt der Einsatz des SharePoint-Frameworks?
novaCapta
novaCapta

SPFx: Lohnt der Einsatz des SharePoint-Frameworks?

Im Rahmen der Planung von Lösungen für Unternehmen mit Bezug auf das SharePoint-Framework sollte man klären: Lohnt es sich, SPFx bereits produktiv einzusetzen?

Corporate News – Das zentrale Medium interner Kommunikation
novaCapta
novaCapta

Corporate News – Das zentrale Medium interner Kommunikation

Um die Akzeptanz des unternehmenseigenen Intranets zu steigern, sind Corporate News ein erster Schritt, um Neuigkeiten, Strategie und Strukturen gleichmäßig zu ...

Entwicklung mit Xamarin – Quick Start
novaCapta
novaCapta

Entwicklung mit Xamarin – Quick Start

Xamarin ermöglicht die Entwicklung von nativen mobilen Applikationen mit Hilfe einer gemeinsamen Codebasis.

Cloud Metadaten
SharePoint Hosted Add-in mit AngularJS 2
novaCapta
novaCapta

SharePoint Hosted Add-in mit AngularJS 2

Voraussetzungen und Umsetzung eines SharePoint Hosted Add-in mit AngularJS 2.

End of Life – Eine Applikation wird abgelöst
novaCapta
novaCapta

End of Life – Eine Applikation wird abgelöst

Die Stilllegung einer Applikation im Application Lifecycle Management nicht beachtet. Dennoch sollten sie in einem ganzheitlichen Ansatz beachtet werden.