Adresse als Kontakt einer Firma hinzufügen
Ereignisaktion - Kurzfassung
Zweck: Ordnet eine als Bezugsobjekt vorliegende Adresse einem Firmenkonto als Adresskontakt mit einem bestimmten Kontakttyp zu.
Siehe auch: Adressen, Kontakttyp, Adresse (Ereignisse), Button "Als Kontakt der Firma hinzufügen"
Die Ereignisaktion Adresse als Kontakt einer Firma hinzufügen kann mit einer Entität des Typs "Adresse" als Bezugsobjekt ausgeführt werden, um die Adresse einem Firmenkonto (s. Firmen) als Adresskontakt mit einem bestimmten Kontakttyp zuzuordnen.
Dabei gelten folgende Regeln:
Eine Adresse wird nur dann hinzugefügt, wenn sie innerhalb der Adresse des Firmenkontos bisher noch nicht als Adresskontakt für denselben Kontakttyp zugeordnet ist.
Sofern der Kontakttyp in der Dynamischen Aufzählung nicht als "plural" qualifiziert ist, ersetzt ein hinzugefügter Adresskontakt einen bestehenden für denselben Kontakttyp.
►HINWEISE◄
Das Hinzufügen einer Adresse als Adresskontakt der Zielfirma impliziert das Speichern des betreffenden Firmenkontos, sofern dessen Adresse die Kombination aus Adress-ID und Kontakttyp noch nicht enthält (s. Regel Nr. 1 oben).
Für das Firmenkonto der Zielfirma wird beim Speichern entweder das Ereignis "Ändern" (existierende Firmenkonto) oder "Erstellen" (neues Firmenkonto) ausgelöst.
Fehlt das betreffenden Zugriffsrecht ("Ändern" bzw. "Erstellen") für das Firmenkonto der Zielfirma, bricht die Ereignisbehandlung mit Fehler (inkl. Rollback) ab.
Falls für mindestens einen der Parameter Kontakttyp oder Zielfirma (s. "Konfiguration") zur Laufzeit kein geeigneter Wert anliegt, bricht die Ereignisbehandlung mit Fehler (inkl. Rollback) ab.
Besonderer Anwendungsfall:
In Erfassungsmasken kann der Button "Als Kontakt der Firma hinzufügen" verwendet werden, um im Kontext einer Adress-Suche (s. Formularelement "Adresse") für ein "Firmen-und Adressattribut" das Ereignis "Adresse hinzufügen" (s. Adresse (Ereignisse)) auszulösen.
Dieser Button kann dann sinnvoll eingesetzt werden, wenn sich die Adresssuche per Auswahlfeld/Combobox abweichend vom Standard nicht auf Adressbucheinträge sondern auf Adresskontakte einer bestimmten Firma bezieht. Die Verknüpfung zur Firma muss zur Laufzeit über die Aktion Kontakte dieser Firma verwenden hergestellt werden. In der Regel geschieht das als Reaktion auf die Auswahl der Firma in einem anderen Auswahlfeld/Combobox-Element (Details s. Button "Als Kontakt der Firma hinzufügen").
Das Ereignis übergibt primär die betreffende Adresse als Eingabewert. Zusätzlich werden weitere Daten aus dem Aufrufkontext in Variablen bereitgestellt:
Variablenname |
Datentyp |
Inhalt |
contactCompanyId |
Long |
ID der Firma, deren Adresskontakte im Formular im Auswahlfeld/Combobox für die Adress-Suche angeboten wurden. |
contactTypes |
Liste von Kontakttyp |
Liste aller Kontakttypen, die in der Service-Konfiguration für dieses Auswahlfeld/Combobox als relevant ausgewählt sind. |
contactType |
Kontakttyp (ContactType) |
Der erste Eintrag (Kontakttyp) der Liste in der Variablen contactTypes. |
Sofern in der Adress-Suche genau ein Kontakttyp als relevant ausgewählt ist, können die Variablen contactType und contactCompanyId in der Ereignisaktion Adresse als Kontakt einer Firma hinzufügen direkt in die Parameter Kontakttyp und Zielfirma übertragen werden.
Bezieht sich die Adress-Suche auf mehr als einen Kontakttyp, muss die Ereignisbehandlung eine Festlegung treffen oder - ggf. unter Berücksichtigung der Liste in der Variablen contactTypes - vom Benutzer abfragen (s. Beispiel "Besonderer Anwendungsfall" unten).
Hintergrund zum "Adresskontakt"
Ein Adresskontakt (addressContact) ist ein typisiertes Attribut, das nur für Adressen angeboten wird (s. a. Formularelement "Adresskontakt"). Jedem Adresskontakt muss ein (Sub-)Typ aus der Dynamischen Aufzählung Kontakttyp zugewiesen werden. Abhängig von der Option "Plural" für den Kontakttyp in der Dynamischen Aufzählung kann dieser in derselben Adresse nur einmal oder mehrfach vorkommen. Als Wert eines Adresskontakt-Attributs gilt die im gleichnamigen Feld eingebettete "Adresse" (address).
►WICHTIG◄ Es Adressen werden in Lobster Data Platform / Orchestration als Referenzierte Objekte gehandhabt, deren ID sich ändert, wenn sich Adressmerkmale ändern. Ein über die Ereignisaktion Adresse als Kontakt einer Firma hinzufügen hinzugefügter Adresskontakt bezieht sich auf eine bestimmte Adress-ID und damit eine bestimmte Merkmalskombination für Adressdaten. Wird die hinzuzufügende Adresse aus einem bestehenden Datenobjekt "gelesen", entsteht keine Verknüpfung zu diesem Herkunftsobjekt. Änderungen an den Adressdaten im Herkunftsobjekt wirken sich also nicht auf einen erstellten Adresskontakt aus, sondern verändern die Adress-ID im Herkunftsobjekt, während der Adresskontakt solange weiter auf die ursprüngliche Adress-ID verweist, bis durch Zugriff auf das Adressfeld im Adresskontakt Adressdetails verändert werden. Operativ wirkt die Ereignisaktion .Adresse als Kontakt einer Firma hinzufügen v4.12.0 also ähnlich, als würde ein Schnappschuss der Adresse aus dem Herkunftsobjekt als Adresskontakt hinzugefügt.
Konfiguration
►WICHTIG◄ Die Adresse, die einem Firmenkonto als Adresskontakt hinzugefügt werden soll, muss als Bezugsobjekt für die Ereignisaktion vorliegen. Sofern die Ereignisbehandlung nicht insgesamt mit einer Entität des Typs "Adresse" als Eingabewert ausgeführt wird, muss für die Ausführung der Ereignisaktion zunächst ein Kontext mit einem geeigneten Bezugsobjekt definiert werden. Dies ermöglichen z. B. Ereignisaktionen wie Ausführen mit oder ggf. eine Für jeden Eintrag wiederholen (Schleife) über eine Liste von Adressen.
►HINWEIS◄ Liegt für mindestens einen dieser Parameter zur Laufzeit keiner oder ein ungeeigneter Wert an, bricht die Ereignisbehandlung mit einer Fehlermeldung (und ggf. Rollback) ab. |
|
Beispiele
Allgemeiner Anwendungsfall
In einem mit Lobster Data Platform / Orchestration realisierten B2B-Portal möchte der Betreiber für seine Business-Kunden Firmenkonten für die Anmeldung am Portal anlegen und verwalten. Die Administration dieser Firmenkonten ist die Aufgaben von sogenannten "Kundenbetreuern" beim Betreiber, für die zu diesem Zweck eine eigene Rolle "CustomerAccountManager" eingerichtet ist.
Beim Speichern (Erstellen oder Ändern) eines Firmenkontos durch einen Benutzer, der die Rolle "CustomerAccountManager" verwendet, soll im betreffenden Firmenkonto automatisch die Adresse aus dessen Benutzerkonto als Adresskontakt hinzugefügt werden. Dabei soll der Kontakttyp "Kundenbetreuer" (mit dem internen Namen ACCOUNT_MANAGER) angegeben werden, der speziell für diesen Zweck angelegt wurde. Dabei soll für jeden Kunden immer genau ein "Kundenbetreuer" zuständig sein. Ein bestehender Adresskontakt für den Kontakttyp "Kundenbetreuer" soll daher immer ersetzt werden, wenn für denselben Kontakttyp eine abweichende Adresse hinzugefügt wird.
►ANMERKUNG◄ Für eine praktische Anwendung ist es wichtig zu berücksichtigen, dass die Adresse im hinzugefügten Adresskontakt nur solange mit der Adresse im Benutzerkonto übereinstimmt, bis an einer der beiden Positionen ein Adressmerkmal geändert wird (s. Inbfobox "Hintergrund" oben). Wir die Adresse im Benutzerkonto geändert nachdem der Adresskontakt hinzugefügt wurde, ändert sich die Adress-ID auf die das Benutzerkonto verweist, während der Adresskontakt noch auf die ursprüngliche Adress-ID verweist und unverändert deren Daten anzeigt. Eine Aktualisierung bzw. Synchronisation würde zusätzliche Vorkehrungen erfordern.
Laufzeitbeispiel:
Die Benutzerin "Karola Mustermann" ist für den Portalbetreiber (Xflow AG) als "CustomerAccountManager" angemeldet und greift über die "Firmenübersicht" auf das Firmenkonto einer Kundenfirma zu:
|
|
Sobald die Bearbeitung des Firmenkontos der "fast-or-furious Ltd." per "Speichern" (im Ribbon) abgeschlossen wird, erscheint im Firmenkonto ein Adresskontakt vom Typ "Kundenbetreuer", der die Adresse des Benutzerkontos (s. Benutzer) von "Karola Mustermann" wiedergibt. Sichtbar angezeigt werden hier nur die Name-Felder, allerdings bietet der Adresskontakt Zugriff auf die gesamte Adresse, so dass z. B. die hier nur angedeutete E-Mail-Funktion die ggf. enthaltenen Kommunikationsinformationen verwenden kann. |
|
Konfiguration:
Für die "Registrierung" des Benutzers, der die letzte Änderung an einem Firmenkonto ausführt, wird eine Ereignisbehandlung angelegt und wie rechts gezeigt konfiguriert:
|
|
►ANMERKUNG◄ Dass die Zielfirma hier auch als Eingabewert der Ereignisbehandlung gilt ist eher Zufall. Falls die Adresse von "Frau Mustermann" in unserem Beispiel noch nicht als Adresskontakt vom Typ "Kundenbetreuer" eingetragen ist, wird das "Ändern" Ereignis für das Firmenkonto doppelt ausgelöst, weil das Hinzufügen des Adresskontakts wiederum als Änderung gilt. |
|
Besonderer Anwendungsfall
Das folgende Beispiel demonstriert den Einsatz der Ereignisbehandlung Adresse als Kontakt einer Firma hinzufügen in Verbindung mit dem per Button "Als Kontakt der Firma hinzufügen" ausgelösten Ereignis "Adresse hinzufügen" (s. Adresse (Ereignisse)).
Im Zuge der Adressierung einer Sendung soll für das Firmen- und Adressattribut "Abholadresse" (Firmentyp DPA) im ersten Schritt ein Firmenkonto ausgewählt werden, um dann im zweiten Schritt ggf. eine präzise Abholposition (hier: "Abholadresse Adresse") angeben zu können, die in die Adresse desselben Firmen- und Adressattributs gespeichert wird. Beim Auswählen der Firma für die "Abholadresse", wird in der Erfassungsmaske die Aktion Kontakte dieser Firma verwenden für das Auswahlfeld/Combobox der "Abholadresse Adresse" ausgeführt. Im Beispiel soll dieses dann alle Adresskontakte mit Kontakttyp "Zufahrt/Tor" oder "Gebäude" zur Auswahl anbieten, die im Firmenkonto der ausgewählten Firma gefunden werden. Alternativ kann auch eine komplett neue "Abholadresse Adresse" eingegeben werden. Über den Button "Als Kontakt der Firma hinzufügen" soll eine neu eingegebene oder auch geänderte Adresse der Firma als Kontakt hinzugefügt werden können. Dabei soll der Benutzer den dabei zugewiesenen Kontakttyp für den Adresskontakt per Kontextmenü (s. Screenshot rechts) aus den für die Abholadresse relevanten Optionen festlegen können. |
|
Konfiguration:
Die Konfiguration der Erfassungsmaske wird hier nicht im Detail beschrieben. Für das Verständnis der unten beschriebene Konfiguration der Ereignisbehandlung ist nur relevant, dass die Service-Konfiguration für das Auswahlfeld/Combobox-Element innerhalb der "Abholadresse Adresse" die Kontakttypen "Zufahrt/Tor" und "Gebäude" benennt. Im Dropdown erscheinen daher nur Adressen zur Auswahl, auf die sich Adresskontakte der ausgewählten Firma beziehen, die einem dieser beiden Typen angehören.
Wenn über den Button "Als Kontakt der Firma hinzufügen" das Ereignis "Adresse hinzufügen" für die "Abholadresse Adresse" ausgelöst wird, enthält die Variable contactTypes demnach eine Liste mit diesen zwei Kontakttypen.
Für das Auslösende Ereignis "Adresse hinzufügen" (s. Adresse (Ereignisse)) wird die rechts abgebildete Ereignisbehandlung konfiguriert:
►ANMERKUNG◄ Die bereits vorbelegte Variable contactType wird hier gezielt auch als Ziel für das Rückgabeobjekt des Kontextmenüs ausgewählt, damit innerhalb der Ereignisaktion Adresse als Kontakt einer Firma hinzufügen für den Parameter Kontakttyp immer der Wert der Variablen contactType übernommen werden kann. Im Sonderfall eines Abbruchs bzw. Timeouts nach dem Öffnen des Kontextmenüs sollte dann aber verhindert werden, dass die Ereignisaktion Adresse als Kontakt einer Firma hinzufügen überhaupt ausgeführt wird, sonst wird "kein Wert" als Kontakttyp übergeben, was zu einem Abbruch mit Fehlmeldung (inkl. Rollback) führt. |
|
Nach dem Abschluss der Ausführen mit-Ereignisaktion, die nur relevant ist, wenn der Kontakttyp nicht eindeutig vorbestimmt ist, gilt wieder die hinzuzufügende Adresse als Bezugsobjekt. In diesem Kontext soll die Ereignisaktion Adresse als Kontakt einer Firma hinzufügen ausgeführt werden:
|
|