Zum Inhalt springen

Beschreiben Sie die Objektkomponente des Jitterbit Connector SDK

Übersicht

Die Beschreiben Objektkomponente kann überall dort verwendet werden, wo ein Benutzer Eingaben für eine Abfrage bereitstellen muss. Trotz ihres Namens ist sie speziell dafür konzipiert, Such- oder Abfrageparameter zu erhalten. In vielen Implementierungen sind die Standardwerte der Komponente ausreichend. Es ist erforderlich, dass ein oder mehrere Schritte mit einer List Object Komponente ihr vorausgehen:

Beschreiben Sie die Objektkomponente

Komponentenmerkmale

Die Beschreiben Objektkomponente umfasst integriertes Verhalten zum Suchen, Aktualisieren, Spezifizieren und Testen von Abfragen:

  • Suchleiste: Benutzer können ein Schlüsselwort eingeben und die Felder filtern.
  • Aktualisieren: Ein Klick ruft Daten vom Connector ab und aktualisiert die Liste der Felder.
  • Caret: Ein Klick klappt die Liste der Felder ein und aus.
  • Alle auswählen: Ein Klick wählt alle Felder aus und ab.
  • Abfrage testen: Sendet die Abfrage an den Connector und zeigt die zurückgegebenen Daten an.
  • Seiten: Benutzer können Limit und/oder Offset-Bedingungen angeben und auf Anwenden oder Entfernen klicken, um diese Bedingungen hinzuzufügen oder zu entfernen.
  • Bedingungen: Standardmäßig werden Operatoren bereitgestellt, mit der Option, zusätzliche Operatoren anzugeben. Sobald ein Objekt: Feld und Operator ausgewählt und ein Wert angegeben ist, kann der Benutzer auf Hinzufügen klicken oder Alle entfernen verwenden, um die Operatoren zu löschen. Siehe Filterbedingungen für Details.
  • Filterbedingungen: Wenn der tableMode für die Komponente true ist, können Filter mit einer Tabellenkomponente hinzugefügt werden.

Das Ergebnis der Komponente ist eine Abfragezeichenfolge, die dann vom Connector verwendet werden kann.

Komponentens JSON

{
    "name": "query:describe-object",
    "type": "pagination",
    "children": [
        {
            "name": "describe-object",
            "type": "describe-object",
            "use": {
                "ui": {
                    "pageTitle": "Build Your Query",
                    "description": "Fields To Retrieve",
                    "additionalOperators": [
                        {
                            "value": "IN ??",
                            "name": "In",
                            "description": "",
                            "type": "string",
                            "placeholder": "('value1', 'value2', ...)"
                        }
                    ],
                    "disableQuery": false,
                    "hideQuery": false,
                    "tableMode": true
                }
            },
            "widgetHint": "component:connector/describe-object",
            "validators": [
                {"name": "required"}
            ]
        }
    ]
}

Im JSON, das das describe-object beschreibt, können diese Eigenschaften konfiguriert werden:

  • type: Der Typ der Describe-Objekt-Komponente muss "describe-object" sein.
  • pageTitle: Optionaler Text, der über der Komponente angezeigt wird. Wenn nicht definiert, wird der Standardtext Build Your Query verwendet.
  • description: Optionaler Text, der über der Liste der Felder angezeigt wird. Wenn nicht definiert, wird der Standardtext Fields to retrieve verwendet.
  • additionalOperators: Optionale Liste von Operatoren, die zum Standardset von Operatoren hinzugefügt werden sollen. Siehe Zusätzliche Operatoren für Details.
  • disableQuery: Wenn true (Standard), ist die Bearbeitung der Abfragezeichenfolge deaktiviert.
  • hideQuery: Wenn true, wird die Abfragezeichenfolge nicht angezeigt. Der Standardwert ist false und die Abfragezeichenfolge wird angezeigt.
  • tableMode: Wenn true, werden die Filterbedingungen in einer Tabelle angezeigt, die eine Tabellenkomponente verwendet. Der Standardwert ist false und die Bedingungen werden mit Dropdown-Menüs angezeigt. Siehe Filterbedingungen für Details.

Zitate zu einer Bedingung hinzufügen

Die Komponente kann dynamisch konfiguriert werden, um Zitate zu verwenden, wenn die Abfragezeichenfolge erstellt wird.

Dies wird implementiert, indem zwei Eigenschaften zu dem Endpunkt hinzugefügt werden:

  • quoteValue: Ein versteckter Wert in den Endpunkt-Eigenschaften, der auf den entsprechenden Wert gesetzt werden soll, der beim Abgrenzen von Zitaten verwendet wird. Typischerweise wird dies auf das doppelte Anführungszeichen ".
  • caseSensitive: Eine Checkbox (boolean) Eigenschaft in den Endpunkt-Eigenschaften mit einem entsprechenden Anzeigenamen. Wenn auf true gesetzt, wird das quoteValue-Zeichen verwendet, um Zitate zu den Parametern einer Abfrage hinzuzufügen.

Beispiel-JSON, das diese beiden Eigenschaften zeigt:

{
  "endpoint": {
    "name": "Example Connector",
    "displayName": "Example Connector Endpoint",
    "icon": "/assets/images/example.svg",
    "properties": [
      . . .
      {
        "name": "quoteValue",
        "hidden": true,
        "defaultValue": "\""
      },
      {
        "name": "caseSensitive",
        "displayName": "Use double quotations (\") for connector identifiers",
        "type": "boolean",
        "defaultValue": true,
        "validators": [
          {
            "name": "required"
          }
        ]
      },
      . . .

Wenn die Komponente die Abfragezeichenfolge erstellt, verwendet sie die Einstellungen von quoteValue und caseSensitive, um die Abfragezeichenfolge zu konstruieren.

Automatisches Einfügen von Anführungszeichen für Zeichenfeldwerte

Wenn eine Filterbedingung für ein Feld erstellt wird, dessen Typ einer der folgenden ist, umschließt die Komponente den Wert automatisch mit einfachen Anführungszeichen in der generierten Abfragezeichenfolge:

string, char, varchar, nvarchar, text, date, time, datetime, timestamp, uuid, json, xml, enum

Es sind keine Konfigurationen auf der Connector-Seite erforderlich. Die Komponente bestimmt den Feldtyp anhand der bereitgestellten Metadaten und wendet automatisch die Einfache-Anführungszeichen-Umschließung an.

Filterbedingungen

Im Rahmen der Standardkonfiguration der Komponente werden Operatoren für Filterbedingungen und die Funktionalität zu deren Festlegung bereitgestellt. In vielen Fällen wird dies ausreichend sein. Diese Standardoperatoren stehen für Filterbedingungen zur Verfügung:

Name Standardausdruck
Gleich = ??
Ungleich != ??
Ähnlich LIKE '??'
Beginnt Mit LIKE '??%'
Endet Mit LIKE '%??'
Enthält LIKE '%??%'
Weniger Als < ??
Weniger oder Gleich <= ??
Größer Als > ??
Größer oder Gleich >= ??

In diesen Ausdrücken wird ?? durch den rechten Wert ersetzt, der dem Operator übergeben wird.

Zusätzlich zu den Anpassungen, die im Rahmen des Component JSON verfügbar sind, können zusätzliche Operatoren erstellt und hinzugefügt werden.

Zusätzliche Operatoren

Zusätzliche Operatoren können definiert und zur adapter.json hinzugefügt werden, um die Standardliste der Operatoren zu erweitern. Um einen weiteren Operator hinzuzufügen, fügen Sie ihn wie in diesem Beispiel in das JSON ein:

"additionalOperators": [
    {
        "value": "IN ??",
        "name": "In",
        "description": "",
        "type": "string",
        "placeholder": "('value1', 'value2', ...)"
    }
],

Wo:

  • value: Das Muster, das vom Operator beim Erstellen der Abfrageanweisung verwendet wird. ?? wird durch vom Benutzer bereitgestellte Werte ersetzt.
  • name: Der Name, der für den Operator im Studio-Menü Operator angezeigt wird.
  • description: Eine Beschreibung des Operators, die in der Studio-Benutzeroberfläche beim Hover als Tooltip angezeigt wird. Wenn leer, wird stattdessen der name als Tooltip verwendet.
  • type: Der Typ der Werte (Felder), die der Operator akzeptiert.
  • placeholder: Ein String mit Platzhaltertext, der in das value-Feld eingesetzt wird und das Ergebnis in der Studio-Benutzeroberfläche im Wert-Feld angezeigt wird.

Wenn ein Operator keinen rechten Wert benötigt, können Sie rightOperandNotRequired auf true setzen, um anzugeben, dass ein Wert nicht erforderlich ist, und einen geeigneten Platzhalter bereitzustellen. Zum Beispiel:

"additionalOperators": [
    {
        "value": "IS NULL",
        "name": "Is Null",
        "description": "",
        "type": "string",
        "placeholder": "This operator does not require a value.",
        "rightOperandNotRequired": true
    }
],