Mikroapps

Erstellen von tiefen Integrationsdatenstrukturen

Beim Erstellen von Mikroapps müssen Sie möglicherweise auf Tabellen in Ihrem Ziel-SoR zugreifen, die mehr als zwei Relationen von der übergeordneten Tabelle entfernt sind. Dafür gelten aktuell Einschränkungen in der HTTP-Integration, die jedoch umgangen werden können.

Dieser Artikel erläutert den Zugriff auf Tabellen in Ihrem Ziel-SoR, wenn dieser Anwendungsfall auftritt. Diese Lösung ist nicht ganz einfach, die folgende Schrittfolge zeigt Ihnen jedoch, wie Sie tiefere Datenstrukturen erstellen können.

Anwendungsfall

Sie möchten eine Mikroapp erstellen, die es einem Benutzer ermöglicht, eine Anforderung auf ServiceNow zu genehmigen. Um diese Mikroapp zu verwenden, muss der Benutzer folgende Schritte ausführen können:

  • Empfang und Öffnen einer Benachrichtigung
  • Empfang einer Seite mit einer Liste der zu genehmigenden Elemente
  • Anzeige der Details zu jedem Element
  • Anzeige des Absenders einer Anforderung
  • Genehmigung der Anforderung

Die erforderlichen Details zum Erstellen einer Aktion oder Seite für die einzelnen Schritte sind in Tabellen gespeichert, die über Endpunkte abgerufen werden. Die Tabelle mit den Daten zum Genehmiger (die Tabelle mit den Daten, die die Elementliste enthalten) ist jedoch weiter als zwei Tabellen von anderen Datenspeicherorten entfernt.

Voraussetzungen für die Lösung

Für diesen Workaround benötigen Sie eine Kombination aus untergeordneter API-Aufrufverkettung und Tabellenzusammenführung, wie unter Konfigurieren der Integration beschrieben.

Voraussetzungen:

  • Bei der Definition Ihres End-to-End-Anwendungsfalls haben Sie berücksichtigt, was in Ihrer Mikroapp auszuführen ist und welche Informationen Ihre Endbenutzer zur Ansicht und für Aktionen benötigen.
  • Sie haben den Endpunkt für die Rückgabe der benötigten Tabellendaten aus Ihrem Ziel-SoR erstellt.

    Hinweis! Konfigurierte Tabellen und Primärschlüssel können nach der Ersteinrichtung nicht bearbeitet werden.

  • Sie haben sich mit den Funktionen zum Hinzufügen zusätzlicher API-Aufrufe und Zusammenführen von Tabellen in der HTTP-Integration vertraut gemacht.

Anzeigen und Erstellen Ihrer Datenstruktur

Wenn Sie Ihre Mikroapps erstellen, besagt das herkömmliche Modell, das von der Mikroappsplattform unterstützt wird, das Tabellen jeweils nur einen Schritt voneinander entfernt sind dürfen (N+1-Modell).

Sie können dies in Ihrer Integrationskonfiguration sehen, die während der HTTP-Integration eingerichtet wurde. Sie können beispielsweise sehen, dass Ticket einen Schritt von tagsentfernt ist und keines der beiden Elemente direkt mit comments_w_users verbunden ist.

N+2

Einige Beziehungen werden bei der Endpunktkonfiguration automatisch erstellt, und Sie sehen sie in der Tabellenreferenz der Integration. Für diesen speziellen Anwendungsfall müssen Sie jedoch einige manuelle Definitionen erstellen, um die Beziehungen zwischen Tabellen zu erstellen.

Strategie zur Zusammenführung von Datenstrukturen

In diesem Szenario sind bei der Gestaltung der Datenstruktur für Ihre Mikroapps folgende Faktoren zu berücksichtigen:

  • Wählen Sie den übergeordneten API-Aufruf abhängig von der Datenstruktur, die Sie zum Erstellen Ihrer Mikroapp erreichen müssen. Überlegen Sie, wie Sie mit inkrementeller Synchronisierung für Ihren Datensatz und die API nur die aktualisierte Datenstruktur zurückgeben. Diese API muss als übergeordnetes Element festgelegt werden.
  • Wenn möglich, konfigurieren Sie nur Zuordnungen vom Typ 1:n statt n:1. Konfigurationen vom Typ n:1 führen zu wiederholten API-Aufrufen und beeinträchtigen so die Effizienz der Datensynchronisierung.
  • Berücksichtigen Sie die Quelle der Benachrichtigung, die Sie benötigen, und wie sie konfiguriert ist. Der Benutzer soll nur eine Benachrichtigung erhalten, falls das Zusammenführen von Tabellen konfiguriert ist und Daten dupliziert werden können.
  • Die übergeordnete API muss stets das flüchtigste Objekt sein.

Verwenden Sie die folgenden Methoden zum Zusammenführen von Tabellen für die spezifischen Fälle:

  • 1:1 - Verwenden Sie Als Details zusammenführen. Es wird nur ein Datensatz in der Datenbank gespeichert, der alle Attribute der übergeordneten und untergeordneten APIs enthält. Die untergeordneten Werte werden verwendet, wenn das Attribut im übergeordneten und untergeordneten API-Aufruf vorhanden ist.
  • 1:n - Verwenden Sie Als Unterliste zusammenführen. Alle übergeordneten Attribute werden mit jedem untergeordneten Datensatz gespeichert.
  • n:1 - n:1 ist in der Regel kein Szenario für untergeordnete API-Aufrufe. Sie müssen überlegen, welches die am besten geeignete Methode ist – das Zusammenführen von Tabellen oder die manuelle Einrichtung der Entitätsbeziehung (ohne Zusammenführung). Wenn Sie keine Zusammenführung verwenden, wird nur das erste untergeordnete Element gespeichert. Andere untergeordnete Elemente werden aufgrund der duplizierten Primärschlüsselerkennung ignoriert.

Definieren von manuellen Beziehungen

Um Beziehungen manuell zu definieren, müssen beide Tabellen eine gemeinsame Spalte besitzen, die zum Erstellen einer Beziehung verwendet werden soll. Sie können dies in der Datenintegration im Abschnitt zu Tabellen und Beziehungen prüfen. Wenn zwei separate Tabellen eine gemeinsame Spalte haben, können Sie manuell eine Beziehung zwischen ihnen erstellen. Wenn keine gemeinsame Spalte vorhanden ist, müssen Sie Beziehungen wie im folgenden Beispiel beschrieben erstellen.

Erweiterter Anwendungsfall

Wenn Sie keine Datenstrukturen über n+1 hinaus mittels gemeinsamer Spaltenbeziehung erstellen können, können Sie durch Kombination aus untergeordneten API-Aufrufen und Tabellenzusammenführung eine abgeflachte Datenstruktur erstellen. Der allgemeine “erweiterte Anwendungsfall” folgt folgendem Grundprinzip:

  1. Richten Sie Ihre Integration ein.
  2. Bearbeiten Sie die Tabellenstruktur.
  3. Erstellen Sie Ihre API-Aufrufketten von Ihrer primären Tabelle zur Tabelle, zu der Sie kombinieren möchten.
  4. Führen Sie Tabellen von oben nach unten zusammen (z. B. übergeordnetes zu untergeordnetes Element).
  5. Nach dem Erstellen dieser großen Tabelle kehren Sie zur übergeordneten Tabelle zurück und legen für alle Tabellenentitäten “Ignorieren” fest.

Wenn Sie beispielsweise eine Mikroapp mit request-list>item list>item details>approver erstellen, muss die Mikroapp die Anforderung und Details für den Genehmiger anzeigen. Dies ist jedoch aufgrund der aktuellen Beschränkung auf ausschließlich n+1-Beziehungen nicht möglich. Dieses Problem können Sie mit der Funktion zum Zusammenführen von Tabellen beheben.

Übertragen Sie beim Erstellen des Datenendpunkts die Tabellenstruktur vom übergeordneten Datenendpunkt (request-list) auf den untergeordneten Endpunkt (approver) innerhalb der Elementliste.

Sie können dann festlegen, dass alles vom übergeordneten Datenendpunkt auf diese untergeordnete API mithilfe einer Tabellenzusammenführungsstrategie zusammengeführt wird. Der gesamte Inhalt der übergeordneten Tabelle wird dann in der Datenstruktur der untergeordneten API (item-list) angezeigt.

Durch diese Art der Konfiguration sind Daten aus drei Relationen in einer großen Datenbanktabelle enthalten. Diese neue Tabelle kann dann zum Erstellen der Seite verwendet werden, gemäß dem anfangs beim Erstellen der Mikroapps definierten Anwendungsfall. Diese Methode kann für so viele Relationen wie erforderlich verwendet werden.

Beispiel für untergeordneten API-Aufruf und Tabellenzusammenführung

Das folgende Beispiel zeigt den allgemeinen Workflow zum Erstellen einer Tabellenstruktur, die Daten jenseits einer n+1-Beziehung abrufen kann. Jede einzelne Nutzung muss auf dem individuellen Anwendungsfall basieren, den Sie für Ihre Mikroapp erstellen möchten. Stellen Sie sicher, dass Sie mit dem System of Record (SoR) Ihrer Zielintegration vertraut sind und das Resultat Ihrer Struktur verstehen, wenn Sie diese Methode verwenden.

Erstellen der API-Aufrufkette

  1. Navigieren Sie zur Seite Daten laden für Ihre Integration: Daten laden
  2. Fügen Sie die benötigten untergeordneten API-Aufrufe vom Stammendpunkt zum untergeordneten Zielendpunkt hinzu: Untergeordnete API hinzufügen Anschließend können Sie Ihre Datenstruktur auf der Hauptseite von “Daten laden” anzeigen.

Zusammenführen von über- und untergeordneten API-Aufrufen

Führen Sie nun die übergeordnete (Stamm-)Tabelle mit den untergeordneten Endpunkten der Reihe nach zusammen, bis Sie die Zieltabelle erhalten:

  1. Wählen Sie im Menü (…) der Integration Bearbeiten.
  2. Wählen Sie im Menü (…) des untergeordneten Endpunkts Ihrer Stammintegration Bearbeiten.
  3. Navigieren Sie auf der Seite Datenendpunkt bearbeiten nach unten und wählen Sie Bearbeiten, um das Zusammenführen von Tabellen zu konfigurieren: Zusammenführen-Bearbeiten Wiederholen Sie diesen Vorgang der Reihe nach für jede untergeordnete Tabelle, bis Sie die Zieltabelle erhalten, mit der Sie Ihre Mikroapp erstellen können.

Ignorieren wiederholter API-Aufrufe

Wenn Sie die Zusammenführungskette beendet haben, kehren Sie zum Stammendpunkt zurück. Führen Sie die folgenden Schritte aus:

  1. Wählen Sie Bearbeiten.
  2. Aktivieren Sie für alle Tabellen den Status Ignoriert: Ignorieren von Daten Dies verhindert, dass die Tabelle zweimal in den Cache geladen wird und verbessert so die Leistung. Sie können jetzt Ihre verkettete /zusammengeführte Tabelle verwenden, um Ihre Mikroapp zu erstellen.

Wichtige Überlegungen

Berücksichtigen Sie stets Folgendes, wenn Sie Ihre Daten anhand dieser Methode erstellen:

  • Alle übergeordneten und untergeordneten API-Aufrufe verfügen über eine eigene Datenstruktur.
  • Diese Strukturen stellen unterschiedliche Datensätze dar.
  • Wenn die Datenstruktur zusammengeführt wird (vom übergeordneten zum untergeordneten Element), werden alle Attribute in der untergeordneten Datenstruktur angezeigt.
  • Wenn die vollständige Kette beibehalten wird, werden Daten zweimal gespeichert. Stellen Sie sicher, dass die Datenstruktur im übergeordneten Aufruf vollständig gelöscht wird, da jedes Attribut in der untergeordneten Datenstruktur erscheint.
  • Lassen Sie den übergeordneten API-Aufruf nicht unverändert, sondern löschen Sie seine Datenstruktur nach Möglichkeit.

Erstellen von tiefen Integrationsdatenstrukturen