Einführung in den App Builder - Lektion 7: Mehr über Regeln
Dies ist die siebte Lektion der Einführung in den App Builder Tutorialreihe.
Wir haben seit Lektion 3 Regeln verwendet, um unsere Northwinds-Anwendung zu entwickeln, aber jetzt werden wir unser Verständnis dafür vertiefen, indem wir uns mit einigen weiteren Konzepten rund um Regeln und deren Verwendung vertraut machen.
Standardregeln
Wenn Sie möchten, dass bestimmte Daten standardmäßig zu neuen Datensätzen hinzugefügt werden, sobald sie erstellt werden, müssen Sie das verwenden, was wir eine Standardregel nennen. Zum Beispiel, wenn Sie ein neues Produkt hinzufügen, muss es einen Standardpreis geben.
Standardregeln werden im selben Bereich des App Builders erstellt, in dem Sie andere Regeln erstellen, aber bevor wir unsere erste Standardregel erstellen, werfen wir einen Blick auf ein weiteres wichtiges Konzept: Joins.
Joins
Wenn wir Regeln erstellen, ist es manchmal notwendig, Daten aus zwei separaten Tabellen zu ziehen. Dazu verbinden wir die Tabellen miteinander, indem wir das verwenden, was wir einen Join nennen. Es gibt drei Arten von Joins: inner, left outer und right outer.

-
Inner Join: Ein Inner Join gibt nur die Werte zurück, die in beiden Tabellen existieren.
-
Left Outer Join: Ein Left Outer Join gibt alle Werte aus der linken Tabelle zurück, unabhängig davon, ob sie auch in der rechten Tabelle erscheinen oder nicht.
-
Right Outer Join: Ein Right Outer Join gibt alle Werte aus der rechten Tabelle zurück, unabhängig davon, ob sie auch in der linken Tabelle erscheinen oder nicht.
Erstellen einer Standardregel
Lassen Sie uns eine Standardregel für das Beispiel erstellen, das wir oben verwendet haben: Wir möchten nicht, dass die Endbenutzer unserer Northwinds-Anwendung einen Stückpreis festlegen. Daher werden wir eine Regel erstellen, die die Stückpreise aus der Datenquelle abruft.
In Lektion 6 haben wir bereits die Stückpreis-Steuerelemente in der Benutzeroberfläche der Anwendung auf schreibgeschützt gesetzt, also werden wir jetzt eine Regel erstellen, die diesen Wert speziell festlegt.
-
Gehe zu App Workbench > Regeln und klicke auf + Regel.
-
Gib gemäß den Namenskonventionen von App Builder den Namen
OrderDetail (Standard Einheitspreis). -
Wähle im Feld Zweck Standard aus.
-
Wähle im Feld Ziel die Tabelle OrderDetail aus.
-
Klicke auf Erstellen.
-
Sobald App Builder die Regel erstellt hat, siehst du die Tabelle OrderDetail im Tab Tabellen. Wir benötigen die Spalten OrderID und ProductID.
-
Klicke im Tab Tabellen auf + Tabellen und wähle ebenfalls die Tabelle Produkt aus. Sie wird mit der Tabelle OrderDetail verknüpft erscheinen, da sie durch eine Fremdschlüsselbeziehung verbunden sind.
-
Wähle die Spalte Einheitspreis in der Tabelle Produkt aus.
-
App Builder wird automatisch den Join schreiben, aber klicke auf den Tab Joins, um sicherzustellen, dass keine Fehler vorhanden sind:

-
Wie bei allen Regeln ist es immer eine gute Praxis, sie zu validieren, indem du auf die Schaltfläche Ergebnisse klickst. Du solltest drei Spalten sehen, wobei eine den Einheitspreis für ein bestimmtes Produkt anzeigt.
Füge eine Standardregel zu einem Panel hinzu
Die Standardregeln müssen mit einem Panel verbunden sein, um eine Wirkung zu haben. Lass uns also zum Bearbeitungsbildschirm der Bestellungen-Seite zurückkehren und das Panel Bestelldetails auswählen.
-
Klicke auf Mehr > Standards. Der Dialog Standards öffnet sich.
-
Klicke auf Registrieren, und ein weiterer Dialog öffnet sich mit einigen Optionen:
-
Wähle im Feld Typ Regel aus.
-
Wähle im Feld Regel OrderDetail (Standard Einheitspreis) aus.
-
Wähle im Feld Bindung Implizit aus.
Hinweis
Um mehr über die beiden Bindungsoptionen zu erfahren, siehe Implizite und explizite Bindung.
-
Klicke auf Speichern.
-
Wenn du jetzt zur Vorschau der Bestellungen-Seite zurückkehrst und versuchst, einen neuen Eintrag im Panel Bestelldetails hinzuzufügen, wirst du sehen, dass der Einheitspreis jetzt automatisch ausgefüllt wird, wenn du eine Auswahl im Feld Produkt triffst, was bedeutet, dass deine Standardregel funktioniert.
List retrieves
List retrieves sind eine Möglichkeit, die Funktionalität von Listensteuerelementen zu erweitern. Ein reguläres Listensteuerelement ermöglicht es Ihnen, den ID-Wert eines bestimmten Datensatzes abzurufen. Ein List Retrieve ermöglicht es Ihnen auch, andere Werte abzurufen. Wir werden demonstrieren, wie List Retrieves funktionieren, indem wir unsere bestehende Produkt (Liste)-Regel verbessern.
-
Navigieren Sie zur Produkt (Liste)-Regel, indem Sie sie in App Workbench > Regeln finden.
-
Klicken Sie im Tab Spalten auf + Spalte.
-
Geben Sie im Feld Spalte oder Ausdruck
P.UnitPriceein. -
Wählen Sie im Feld Ziel UnitPrice aus.
-
Klicken Sie auf Speichern.
-
Lassen Sie uns nun das Steuerelement aktualisieren, das diese Regel verwendet. Navigieren Sie zum Bearbeitungsbildschirm der Bestellungen-Seite, indem Sie sie in App Workbench > Seiten finden.
-
Wählen Sie im Panel Bestelldetails Steuerelemente aus, um die Liste der im Panel vorhandenen Steuerelemente anzuzeigen.
-
Doppelklicken Sie auf die Zeile des Produkt-Steuerelements.
Hinweis
Sie können auch auf dieselben Optionen zugreifen, indem Sie die Bestellungen-Seite mit der Schaltfläche Seite anzeigen in der Vorschau anzeigen und dann den Live-Designer im Aktionsmenü öffnen und das Produkt-Steuerelement auswählen.
-
Klicken Sie im Tab Listenoptionen auf die Schaltfläche Abrufe.
-
Klicken Sie im Dialogfeld Abrufe auf + Abruf hinzufügen.
-
Wählen Sie im Feld Panelspalte UnitPrice aus. Wählen Sie im Feld (Listenquelle) Spalte UnitPrice aus.
-
Klicken Sie auf das Bestätigungsicon, um zu speichern und das Dialogfeld zu schließen.
Der App Builder benötigt einen Moment, um zu speichern. Nachdem dies geschehen ist, kehren Sie zur Vorschau der Bestellungen-Seite zurück und versuchen Sie, eines der Produkte auf der Seite Bestelldetails zu bearbeiten. Sie werden sehen, dass das Steuerelement Einheitspreis automatisch basierend auf Ihrer Auswahl aktualisiert wird.
Validation rules
Eine weitere Art von Regel, die Sie nutzen können, sind Validierungsregeln. Wie der Name andeutet, können sie auf bestimmte Spalten angewendet werden, um sicherzustellen, dass nur Daten eines bestimmten Typs in ihnen gespeichert werden können. Validierungsregeln können direkt auf Tabellen in der Datenschicht oder auf Geschäftsobjekte in der Geschäftsschicht angewendet werden.
Wir werden demonstrieren, wie Validierungsregeln funktionieren, indem wir eine erstellen, die Rabatte über 10 % ablehnt. Dazu verwenden wir eine WHERE-Klausel.
-
Gehe zu App Workbench > Regeln.
-
Klicke auf + Regel, um eine neue Regel zu erstellen.
-
Befolge die Namenskonventionen von App Builder und gib ihr den Namen
OrderDetail (Rabattvalidierung). -
Wähle im Feld Zweck Validierung aus.
-
Wähle im Feld Ziel OrderDetail aus.
-
Klicke auf Erstellen.
-
Klicke im Tab Where auf + Where-Klausel. Ein Dialog öffnet sich, in dem du
WHERE-Klauseln erstellen kannst:
-
Gib im Feld Linke Ausdruck
OD.Discountein. -
Wähle im Feld Operator > aus.
-
Gib im Feld Rechter Ausdruck
.1ein. -
Klicke auf Speichern und verlasse den Dialog. App Builder hat die Validierungsregel erstellt.
Jetzt, da die Validierungsregel erstellt wurde, lass uns sicherstellen, dass sie auf das Geschäftobjekt angewendet wird, für das wir sie erstellt haben.
-
Gehe zu App Workbench > Regeln.
-
Wähle OrderDetail (Quelle), das Geschäftobjekt, das Rabattwerte enthält.
-
Klicke auf Ereignisse. Ein Dialog namens Alle Ereignisse öffnet sich.
-
In der Zeile Speichern kannst du sehen, welche Vorgänge stattfinden, wenn der Endbenutzer einen neuen Datensatz speichert. Dort müssen wir die Validierungsregel anwenden, die wir gerade erstellt haben. Klicke in dieser Zeile auf Regelereignisdetails.
-
Klicke im Panel Validierungen auf Registrieren. Der Validierungs-Dialog öffnet sich:

-
Wähle im Feld Typ Regel aus.
-
Wähle im Feld Regel OrderDetail (Rabattvalidierung), die Validierungsregel, die wir gerade erstellt haben.
-
Wähle im Feld Bindung Implizit aus.
Hinweis
Um mehr über die beiden Bindungsoptionen zu erfahren, siehe Implizite und explizite Bindung.
-
Geben Sie im Message-Feld an, welche Nachricht den Endbenutzern angezeigt wird, wenn sie versuchen, ungültige Daten einzugeben. Dieses Feld ist erforderlich.
-
Lassen Sie die anderen Felder mit ihren Standardwerten und klicken Sie auf Speichern, um den Dialog zu verlassen.
Kehrt zur Vorschau der Bestellungen-Seite zurück und versucht, ein neues Produkt im Bestelldetails-Panel mit einem Rabatt von mehr als 10 % hinzuzufügen. Wenn Sie versuchen zu speichern, sollte eine Fehlermeldung angezeigt werden, zusammen mit der Fehlermeldung, die Sie eingegeben haben.
Anwendungsparameter
Anstatt den Rabatt, den Benutzer direkt über eine Regel anwenden können, wie wir es gerade getan haben, zu begrenzen, können wir den Rabatt auch als einen Wert festlegen, den Benutzer ändern können. Der Weg, dies zu tun, besteht darin, ihn als Anwendungsparameter hinzuzufügen und in der Parameter-Tabelle zu speichern.
-
Navigieren Sie in App Workbench > Seiten zur Parameter-Seite, die wir in Lektion 4 erstellt haben.
-
Suchen Sie im Panel-Tab das Feld Panel Source und klicken Sie auf das Tabellen-Symbol. Dies bringt Sie zum Bearbeitungsbildschirm der Parameter-Tabelle.
-
Fügen Sie im Columns-Tab eine neue Spalte hinzu, indem Sie auf + Spalte klicken.
-
Geben Sie ihr den Namen
DiscountMaximum. -
Wählen Sie im Logical-Feld Number aus.
-
Wählen Sie im Physical-Feld Decimal aus.
-
Klicken Sie auf Speichern.
-
Jetzt fügen wir die neue Spalte zum Geschäftsobjekt hinzu, das auf dem Parameter-Tab basiert. Sie können es entweder in App Workbench > Regeln finden oder indem Sie zum vorherigen Bildschirm zurückkehren und dann auf das Symbol für Geschäftslogik neben dem Feld Panel Source klicken.
-
Sobald Sie sich im Bearbeitungsbildschirm der Parameter (Source)-Regel befinden, gehen Sie zum Tables-Tab und suchen Sie die neue DiscountMaximum-Spalte in der Liste der Spalten aus der Parameter-Tabelle. Klicken Sie auf das Häkchen, um sie auszuwählen.
-
Kehren Sie jetzt zur Parameter-Seite zurück, entweder indem Sie sie in App Workbench > Seiten finden oder indem Sie zum vorherigen Bildschirm zurückkehren. Fügen Sie die neue DiscountMaximum-Spalte zur Liste der Steuerelemente im Parameter-Panel hinzu.
-
Jetzt im Parameter-Seitenvorschau verwenden Sie die Bearbeiten-Schaltfläche, um den gewünschten maximalen Rabatt auszuwählen. Geben Sie beispielsweise
.3ein, um Rabatte von bis zu 30 % zu ermöglichen.
Bearbeiten Sie die Validierungsregel, um den neuen Parameterwert zu verwenden
Obwohl wir unseren Benutzern erlauben möchten, den maximalen Rabatt zu bestimmen, verwendet die zuvor erstellte Validierungsregel einen festen, hartcodierten maximalen Rabatt, sodass sie immer noch keine Rabatte über 10 % toleriert. Lassen Sie uns diese bearbeiten, um den Wert zu verwenden, den wir auf der Parameter-Seite eingeben. Befolgen Sie diese Schritte:
-
Gehen Sie zu App Workbench > Regeln und öffnen Sie die Regel OrderDetail (Rabattvalidierung).
-
Klicken Sie im Tab Tabellen auf + Tabellen.
-
Klicken Sie auf Hinzufügen für die Parameter-Tabelle.
-
Jetzt, da die Parameter-Tabelle auch im Tab Tabellen angezeigt wird, wählen Sie die Spalte DiscountMaximum aus.
-
Gehen Sie zum Tab Wo. Wir müssen die
WHERE-Klausel bearbeiten, die wir erstellt haben, da wir hier keinen hartcodierten Wert mehr verwenden möchten. Klicken Sie auf das Stiftsymbol, um sie zu bearbeiten. -
Geben Sie im Feld Rechter Ausdruck
P.DiscountMaximumein. Der App Builder benötigt einen Moment, um zu speichern. -
Besuchen Sie nun erneut die Vorschau der Bestellungen-Seite. Wenn Sie versuchen, ein neues Produkt im Panel Bestelldetails hinzuzufügen, werden Sie sehen, dass Sie jetzt Rabatte von bis zu 30 % gewähren dürfen.
Wenn Sie jetzt versuchen, einen Rabatt über 30 % zu gewähren, wird Ihnen dies nicht erlaubt. Die Fehlermeldung sagt jedoch immer noch das vorherige Limit von 10 %, da wir das auch hartcodiert haben, als wir die Validierungsregel zuerst erstellt haben. Um zu vermeiden, dass wir die Nachricht jedes Mal bearbeiten müssen, wenn sich das Limit ändert, werden wir dynamische Substitution verwenden, um die Nachricht automatisch zusammen mit dem Limit zu aktualisieren.
-
Navigieren Sie in App Workbench > Regeln zur Regel OrderDetail (Quelle).
-
Diese Regel zieht derzeit nur Daten aus der OrderDetail-Tabelle, also klicken Sie im Tab Tabellen auf + Tabelle und wählen Sie die Parameter-Tabelle aus. Wenn sie erscheint, wählen Sie die Spalte DiscountMaximum aus.
-
Jetzt hat die Regel Zugriff auf den neuesten maximalen Rabatt und kann "sehen", wenn sich dieser ändert. Es ist eine gute Praxis, ihm einen Alias zu geben, den wir in der Nachricht verwenden werden, also geben Sie
MaxDiscountin dieses Feld ein. Um sicherzustellen, dass die Zahl korrekt in der Benutzeroberfläche angezeigt wird, gehen Sie zum Columns-Tab und casten Sie sie als Percent. -
Navigieren Sie als Nächstes zurück zur Fehlermeldung, die wir zuvor geschrieben haben, indem Sie zum Rule-Panel gehen und auf Events klicken. Wenn der Dialog geöffnet wird, suchen Sie die Zeile Save und klicken Sie auf Rule Event Detail. Die Validierung, die wir implementiert haben, wird im Validations-Panel angezeigt. Klicken Sie, um sie zu bearbeiten.
-
Schließlich ersetzen Sie im Message-Feld den fest codierten
10%durch{{ MaxDiscount }}. Das Umgeben des Alias mit den doppelten geschweiften Klammern bewirkt, dass App Builder eine dynamische Substitution anwendet, um den aktuellen maximalen Rabatt anzuzeigen, anstatt einen festen, unveränderlichen Wert.
CRUD-Regeln
Die letzte Art von Regel, die wir besprechen werden, sind CRUD-Regeln, die verwendet werden, um Daten in großen Mengen zu aktualisieren. CRUD-Regeln können verwendet werden, um Datensätze zu erstellen, einzufügen, zu aktualisieren oder zu löschen, und oft müssen Sie dies in Ihren App Builder-Anwendungen tun. Wir werden uns ansehen, wie man mit CRUD-Regeln arbeitet, und dabei werden wir zwei wichtige Funktionen kennenlernen. Diesmal arbeiten wir an der Employees-Seite.
Erstellen Sie eine obere CRUD-Regel
-
Gehen Sie zu App Workbench > Rules.
-
Klicken Sie auf + Rule.
-
Geben Sie den Namen
Employee (FirstName Upper Update)ein. -
Wählen Sie im Purpose-Feld CRUD aus.
-
Ein neues Feld, Action, erscheint. Wählen Sie Update.
-
Wählen Sie im Target Layer-Feld Data Layer aus.
-
Wählen Sie im Target-Feld Employee aus.
-
Klicken Sie auf Create.
-
Im Tables-Tab wählt App Builder automatisch die EmployeeID-Spalte aus, die der Primärschlüssel der Employee-Tabelle ist. Wir benötigen keine weiteren, also klicken Sie einfach auf + Column.
-
Wenn der Dialog Add Column geöffnet wird, geben Sie die folgende Syntax im Feld Column or Expression ein:
Upper(E.FirstName).Hinweis
Diese Syntax ruft die Upper() Datenbankfunktion auf, die einen String als Argument entgegennimmt, um ihn in Großbuchstaben zu konvertieren und dann zurückzugeben. Mehrere andere Datenbankfunktionen stehen zur Verwendung mit dem App Builder zur Verfügung.
-
Geben Sie im Feld Alias
UpperFirstNameein. -
Wählen Sie im Feld Target FirstName aus.
-
Klicken Sie auf Speichern.
Sobald der App Builder die neue Regel gespeichert hat, überprüfen Sie, ob sie funktioniert, indem Sie im Regel-Panel auf Ergebnisse klicken. Die Upper-Funktion nimmt den Namen jedes Mitarbeiters und schreibt ihn in Großbuchstaben um.
Fügen Sie die neue Upper CRUD-Regel einem Ereignis hinzu
Es ist immer am besten, Ihre CRUD-Regeln auf den Tabellen zu platzieren, da dies hilft, die Ereignisse zu optimieren und zu organisieren, insbesondere wenn Sie in Zukunft Aktualisierungen oder Änderungen vornehmen müssen.
-
Suchen Sie die Regel Employee (Source) in App Workbench > Regeln und öffnen Sie sie.
-
Klicken Sie auf Ereignisse.
-
Wenn das Dialogfeld Alle Ereignisse geöffnet wird, klicken Sie auf + Regelereignis.
-
Geben Sie den Namen
Upper First Nameein. Sie können die anderen Felder mit ihren Standardwerten belassen. Klicken Sie auf Speichern. -
Wenn Sie zurück zum Dialogfeld Alle Ereignisse geleitet werden, sollte das neue Ereignis, das Sie gerade erstellt haben, verfügbar sein. Klicken Sie auf die Schaltfläche Regelereignisdetails.
-
Klicken Sie im Aktionen-Panel auf Registrieren.
-
Wenn das Dialogfeld Aktion geöffnet wird, verwenden Sie das Feld Regel, um Employee (FirstName Upper Update) auszuwählen, die CRUD-Regel, die wir zuvor erstellt haben. Klicken Sie auf Speichern.
-
Sie sehen dann die Bestätigungsseite, die Details zum neuen Ereignis anzeigt:

Beachten Sie das Bindings-Panel. Es zeigt, welche Spalten wir verwendet haben, um die Datensätze in der UI-Schicht (das Feld Source Column) mit den Datensätzen in der Regel (das Feld Rule Column) zu verknüpfen. Mit dieser Bindung wird die Regel nur gegen Datensätze in der UI ausgeführt, die entsprechende Werte haben. Ohne Bindung würde die Regel alle Zeilen betreffen, die in der CRUD-Regel zurückgegeben werden.
Jetzt, da wir ein Ereignis erstellt haben, fügen wir einen Button hinzu, der es auf unserer Seite ausführt.
-
Navigieren Sie zum Bearbeitungsbildschirm der Mitarbeiter-Seite und greifen Sie auf die Liste der Steuerelemente im Mitarbeiter-Panel zu.
-
Klicken Sie auf + Steuerelement, um ein neues Steuerelement hinzuzufügen.
-
Wählen Sie im Feld Steuerelementtyp Button aus.
-
Geben Sie im Feld Name
First Name Upperein. Klicken Sie auf Weiter. -
Wählen Sie im Feld Ereignis ausführen UpperFirstName aus, unser neu erstelltes Ereignis.
-
Klicken Sie auf Weiter und dann auf Fertigstellen.
Jetzt greifen Sie auf die Vorschau der Mitarbeiter-Seite zu und testen Sie den neuen Button. Wenn Sie darauf klicken, sollte der Vorname eines Mitarbeiters in Großbuchstaben angezeigt werden.
Übungszeit: Erstellen Sie eine Lower CRUD-Regel
Versuchen Sie zur Übung, diese Schritte, die wir gerade befolgt haben, zu wiederholen, aber diesmal einen Button zu erstellen, der den gegenteiligen Prozess ausführt. Verwenden Sie die Lower() Datenbankfunktion, um einen Button zu erstellen, der die Namen der Mitarbeiter in Kleinbuchstaben ändert.
Überprüfung und Abschluss
In dieser Lektion haben wir unser Wissen über Regeln im App Builder erheblich erweitert und dabei über Standard-, Validierungs- und CRUD-Regeln sowie Anwendungsparameter und Listenabrufe gelernt. Damit endet diese Tutorialreihe.
Ihre Northwinds-Anwendung ist jetzt funktionsfähig! Sie zeigt Informationen über Kunden, die von ihnen aufgegebenen Bestellungen, Mitarbeiter, Lieferanten und Versender auf organisierte und effiziente Weise an. Die Konzepte und Techniken, die Sie während des Aufbaus gelernt haben, können angewendet werden, um jede andere Anwendung zu erstellen.