In meinem Beitrag vergangene Woche bin ich zunächst nur auf die Verfügbarkeit der Multi-Table Lookups eingegangen und habe sehr oberflächlich erwähnt, dass ich mich über die schnelle Verfügbarkeit des XrmToolBox Plugins gefreut habe. Dabei bin ich jedoch nicht weiter auf die Funktionen des Plugins eingegangen und wie ich dieses aktuell einsetze. Darauf werde ich im Folgenden detaillierter eingehen.

Um das Polymorphic Lookup Creator Plugin verwenden zu können müsst ihr erstmal die XrmToolBox einsetzen. Beides, das Plugin sowie die Toolbox, wurde vom mehrjährigen Dynamics 365 MVP Tanguy Touzard entwickelt. Die offizielle Seite der XrrmToolBox findet ihr hier. Falls ihr die XrmToolBox bereits einsetzt, vergweissert euch, dass ihr die aktuelle Version bereits installiert habt, da diese für das Plugin benötigt wird. (Stand der XrmToolBox bei der Veröffentlichung des Blogbeitrages: v1.2021.6.51)

Wenn die XrmToolBox und das Polymorphic Lookup Creator Plugin installiert sind, ist von dieser Seite fast alles vorbereitet. Es fehlt eigentlich nur noch die Umgebung, um die Multi-Table Lookups auszuprobieren.
Bevor wir mit dem Erstellen eines Multi-Table Lookups beginnen, empfehle ich in der Umgebung eine neue Solution für diesen Zweck anzulegen und falls noch nicht geschehen, solltest du zunächst einen Publisher anlegen, den du für die Solution benötigst.

Nachdem die Solution angelegt ist und du dir hoffentlich bereits Gedanken darüber gemacht hast, welche Tabellen dein Multi-Table Lookup umfassen soll, empfehle ich dir, genau diese Tabellen entweder in deiner Solution neu anzulegen, falls es deine eigenen sind, oder falls du bereits existierende Tabellen verwenden möchtest, diese über die Schaltfläche „Add existing“ -> „Table“ zu importieren.

In meinem Fall wähle ich die drei Standard Sales Tabellen Quote, Order und Invoice aus. Aus meiner Sicht wichtig, um nachher möglichst keine ungewollten Abhängigkeiten zu haben, lasse ich die Option „Include all components“ deaktiviert und wähle, wenn nur die Komponenten aus, die ich wirklich benötige. Hierzu aber gleich mehr.

Nachdem diese Vorbereitung getroffen ist, wechsle ich wieder in die XrmToolBox, und verbinde mich mit der Umgebung, in der ich die Solution angelegt habe und starte das Polymorphic Lookup Creator Plugin.

Wenn der Polymorphic Lookup Creator gestartet ist, stehen mir ein paar Konfigurationsmöglichkeiten zur Verfügung:

Zunächst wähle ich die soeben erstellte Solution aus, in der auch mein neu erstelltes Multi-Table Lookup erstellt werden soll. Im 2. Schritt soll ich die Referencing Entity auswählen, also die Tabelle, in der das neue Multi-Table Lookup erstellt wird und später auf der Form veröffentlicht werden soll. Für diesen Test habe ich mich wieder für den Account entschieden. Im 3. Schritt unter Attribute solltet ihr beim ersten Einsatz des Plugins nur die Option <Create new polymorphic lookup> auswählen können. Dies wird sich im Laufe dieser Anleitung aber auch noch ändern.

Unter Referenced Entities wähle ich dann die Tabellen aus, die ich als Quelle für das Lookup verwenden möchte und die ich bereits der Solution hinzugefügt habe – Quote, Order und Invoice. Im 5. und letzten Schritt vergebe ich dann noch den Namen des Lookups, der beim Anlegen des Feldes verwendet werden soll. Der Schema Name wird automatisch mit befüllt und ich kann diesen noch abändern, wenn ich möchte. Durch die Verwendung der Solution und das Anlegen eines Publishers greift das Plugin auf diese Informationen zurück und verwendet das Prefix auch für die Anlage des neuen Feldes.

Wenn alles vorbereitet ist, kann über die Schaltfläche „Create Polymorphic Lookup“ das Erstellen gestartet werden.

Nach erfolgreichem Abschluss der Erstellung des Multi-Table Lookups können wir in der Solution sehen, dass die Account Tabelle, falls ihr diese vorher nicht hinzugefügt hattet, jetzt ebenfalls in der Solution ist und sich dort unter Relationships die Relationships zu den drei ausgewählten Tabellen befinden. In den drei anderen Tabellen finden wir dann jeweils eine Relationship zum Account.

Ich teste das neue Lookup, indem ich mir in der Account Tabelle ein Formular hinzufüge und das neu erstellte Feld auf das Formular ziehe und dieses Veröffentliche.

Das Lookup ist auf dem Formular eingebettet und beim Öffnen werden mir wie erwartet die drei eingefügten Tabellen angezeigt, die ich auch verwenden kann und entweder bestehende Datensätze auswählen oder neue anlegen kann. Um die Sales Tabellen aber Vollständig zu haben, fehlt mir eigentlich noch die Opportunity. Ich muss die Schritte aber nicht wiederholen, um diese in das bestehende Lookup zu integrieren. Es reicht aus, in das XrmToolBox Plugin zu wechseln, wieder meine Solution und die Account Tabelle auszuwählen und dann unter Attribute diesmal das bereits existierende Lookup auszuwählen, dass ich gerade angelegt habe.

Jetzt kann ich entweder existierende Relationships entfernen, indem ich den Haken vor der Checkbox unter „Referenced Entities“ entferne – oder wie in meinem Fall eine weitere Relationship zu einer neuen Tabelle hinzufügen, indem ich wieder den Haken setze. Bei der Auswahl eines bestehenden Lookups ist die Option „Create Polymorphic Lookup“ ausgegraut. Stattdessen stehen mir die Optionen Apply Changes oder Delete zur Verfügung.

In meinem Fall entscheide ich mich für „Apply Changes“. Tests zeigen, das gleichzeitige Hinzufügen von neuen Relationships und das Entfernen von bereits bestehenden im selben Schritt ist durchaus möglich und funktioniert zuverlässig. Dabei werden zunächst die neuen Relationships hinzugefügt und danach die existierenden wieder entfernt.

Bei dem Hinzufügen der Opportunity zum Multi-Table Lookup habe ich jetzt bewusst darauf verzichtet, die Tabelle zunächst in die Solution hinzuzufügen. Werfen wir jetzt einmal einen Blick in die Solution, sehen wir, dass die Tabelle automatisch hinzugefügt wurde, aber im Gegensatz zu den Referencing Entities, bei denen anscheinend keine existierenden Attribute der Tabelle mit in die Solution übernommen werden, verhält es sich bei den Referenced Entities anders und die Option „Add all components“ scheint hier verwendet zu werden, so dass alle Felder Relationships, Views und Forms zur Solution hinzugefügt werden.
Daher an dieser Stelle nochmal der Hinweis: nehmt euch die Zeit und fügt die Tabellen zunächst zur Solution hinzu, um keine ungewollten Abhängigkeiten zu erstellen.

Abschließend jetzt noch das Entfernen eines Multi-Table Lookups. Im letzten Post zu diesem Thema hatte ich auf die Möglichkeit des klassischen Editors verwiesen. Dabei hatte ich jedoch komplett die Möglichkeit unterschlagen, dass dies auch über das Plugin selber sehr einfach und ohne Fehlermeldung möglich ist.

Bevor jedoch das soeben veröffentlichte und ausprobierte Lookup entfernt werden kann, müssen natürlich alle Abhängigkeiten entfernt werden, d.h. in meinem Beispiel muss ich das Feld zunächst wieder von der Form entfernen und diese veröffentlichen.

Nach dem Ausführen des Delete Befehls im Plugin, ist das entsprechende Lookup auf dem Account, sowie alle dazugehörigen Relationships unter Account, Invoice, Opportunity, Order und Quote entfernt.

No responses yet

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.