GraphQL -Abfragetypen

Die Daten, die Sie in Ihre Organisation importieren, können mithilfe von GraphQL -Abfragen überprüft werden. Sie können Abfragen manuell ausführen, Ihre Abfragen automatisieren oder Abfragen über automatisierte Regeln ausführen.

Für die Abfrage von Supply Chain Intelligence Suite -Daten werden GraphQL -Abfrageanweisungen verwendet. Das Format der Abfrageanweisung umfasst den Abfragetyp, die in runde Klammern eingeschlossenen Eingabeparameter und das Ausgabeformat für das zurückgegebene Objekt in geschweiften Klammern.

query type (input paramters){output parameters}

Der Abfragetyp gibt an, welcher Datentyp (Geschäftsereignisse oder Geschäftsobjekte) abgefragt wird und welches Data-Warehouse (entweder das Ereigniswarehouse oder das Objektwarehouse) als Ziel dient. Die Eingabeparameter geben an, was abgefragt wird, und das Ausgabeformat gibt an, wie das resultierende Objekt angezeigt werden muss.

Derzeit sind vier Haupttypen von Abfragen möglich, die nach Data-Warehouse gruppiert sind:
Event-Warehouse
errorEvents
Gibt eine Liste von Fehlerereignissen basierend auf Fehlerereignisdetails zurück, die den Typ des abzufragenden Fehlers angibt: Aufnahme oder Verarbeitung. Gibt eine ErrorEventsCursorzurück.
businessObjectEvents
Gibt eine Liste von Geschäftsobjektereignissen basierend auf Detaileingaben von Ereignissen zurück, die sich auf Geschäftsobjekte auswirken. Gibt BusinessEventsCursorzurück.
businessRuleEvents
Gibt eine Liste von Geschäftsregelereignissen auf der Basis von Detaileingaben von Ereignissen zurück, die aus der Auslösung einer Regel resultieren. Gibt BusinessRulesCursorzurück.
Objekt-Warehouse
businessObjects
Gibt eine Liste von Geschäftsobjekten auf der Basis von Geschäftsobjektidentifikationsinformationen und dem Namen einer serialisierten Ansicht zurück, die zum Ausführen der Abfrage verwendet wird. Gibt BusinessObjectsCursorzurück.
Die folgende Beispielabfrage gibt ein einzelnes Geschäftsobjektereignis mit einer bestimmten ID zurück:
{
  businessObjectEvents(
    simpleFilter: {
      businessObject: { 
        type: Order
        id: "372c9cdb-1077-464e-9132-b29fa25544d2"
      },
      tenantId: "e2_aRj_3np92C2Tl9uWIyh0vQP8N8"
    }, 
    cursorParams: { 
      first: 1  # Maximum number of items to return
    }
  ) {
    totalCount
    pageInfo {
      endCursor
      hasNextPage
    }
    edges {
      cursor
      object {
        eventCode
        infoHubObjectId
        objectType
        tenantId
        timestampEventOccurred
        timestampEventReceived
        eventDetails {
          ... on BusinessObjectEventDetails {
            businessObject {
              id
              type
            }
            eventSource {
              type
              EDI {
                transactionType
                size
              }
            }
          }
        }
      }
    }
  }
}

Abfrageeingabeparameter

Die erforderlichen Eingabeparameter hängen vom Typ der ausgeführten Abfrage ab. Mehrere Eingabeparameter sind jedoch für alle Abfragetypen einheitlich.

businessObjectEvents
Der Abfragetyp businessObjectEvents gibt eine Liste von Geschäftsereignissen aus dem Event Warehouse basierend auf den angegebenen Eingabeparameterwerten zurück.
Abfragetyp für Geschäftsobjektereignisse

Die Eingabeparameter für diese Abfrage sind:

eventParams
Verweist auf eine BusinessEventInput.
simpleFilter
Verweist auf eine BusinessObjectEventDetailsInput.
advancedFilter
Verweist auf eine BooleanExp.
savedFilter
Verweist auf eine SavedFilter.
cursorParams
Verweist auf eine CursorInput.
BusinessObjectEventDetailsInput
Dieser Typ stellt Eingaben für die Geschäftsobjektoperation bereit, die am Ereignis beteiligt ist, und enthält die folgenden Attribute:
tenantId
Die globale ID des Tenants, der für die Generierung des Ereignisses verantwortlich ist
businessObjectEventCode
Der Typ der Geschäftsobjektoperation, die an diesem Ereignis beteiligt ist, entweder ein Upsert oder ein Archiv.
businessObject
Verweist auf eine BusinessObjectInput.
BusinessObjectInput
Dieser Typ stellt Eingaben für das enthaltene Geschäftsobjekt selbst bereit und enthält die folgenden Attribute:
id
Die global eindeutige ID des Geschäftsobjekts, die beim Erstellen des Objekts generiert wird.
type
Verweist auf einen BusinessObjectType -Aufzählungswert, der den Typ des Geschäftsobjekts angibt.
globalIdentifiers
Ein Name/Wert-Paar-Array von Objektattributen, das dieses Geschäftsobjekt aus anderen Geschäftsobjekten desselben Typs und innerhalb desselben Tenants eindeutig identifizieren muss Supply Chain Intelligence Suite generiert eine eindeutige ID für jede eindeutige Kombination aus globalIdentifiers, Tenant und Objekttyp.
localIdentifiers
Ein geordnetes Array von Name-oder Wertepaaren von Objektattributen, die dieses Objekt für lokale Verweise innerhalb des Geschäftsobjekts eindeutig identifizieren. Bestimmte Geschäftsobjekte verfügen über verschachtelte Objekte, die auf das übergeordnete Objekt verweisen können, z. B. Auftragspositionen und untergeordnete Positionen innerhalb eines Auftrags.
businessRuleEvents
Der Abfragetyp businessRuleEvents gibt eine Liste mit Geschäftsereignissen aus dem Ereigniswarehouse zurück, die von einer Geschäftsregel auf der Basis der angegebenen Eingabeparameterwerte generiert werden.
Diagramm der Abfragetypen für Geschäftsregelereignisse

Die Eingabeparameter für diese Abfrage sind:

eventParams
Verweist auf eine BusinessEventInput.
simpleFilter
Verweist auf eine BusinessRuleEventDetailsInput.
advancedFilter
Verweist auf eine BooleanExp.
savedFilter
Verweist auf eine SavedFilter.
cursorParams
Verweist auf eine CursorInput.
aggregationParams
Verweist auf eine AggregationParams.
BusinessRuleEventDetailsInput
Dieser Typ stellt Details zu der Geschäftsregel bereit, die das Geschäftsereignis generiert hat, und enthält die folgenden Attribute:
tenantId
Die globale ID des Tenants, der für die Generierung des Ereignisses verantwortlich ist
rule
Verweist auf einen Typ RuleInput , mit dem Sie die Regel nach ID, Name und Quelle angeben können.
dimensionValues
Ein Array mit Name/Wert-Paaren, die die Dimensionswerte angeben, auf die die Abfrage beschränkt werden soll. Eine Dimension ist ein Attribut des zugrunde liegenden Geschäftsobjekts, für das jeder eindeutige Wert dieses Attributs ein anderes Geschäftsereignis generiert.
AggregationParams
Dieser Typ ermöglicht Ihnen das Aggregieren, Zusammenfassen und Sortieren der Werte, die in der Abfrage zurückgegeben werden, und enthält die folgenden Attribute:
dimension
Das zugrunde liegende Geschäftsobjektattribut und der zugrunde liegende Datentyp auf der Basis der Aggregation. Für jeden eindeutigen Wert, der für das angegebene Attribut gefunden wird, wird eine andere Aggregation ausgeführt.
reduce
Optional kann eine Reduktionsoperation für die Daten ausgeführt werden, die in der Abfrage zurückgegeben werden, und sie verweist auf eine AggregationReduce.
paginationParams
Hier können Sie optional angeben, wie viele Werte in der Abfrage zurückgegeben werden sollen, welches Attribut zum Sortieren der Ergebnisse verwendet werden soll und ob sie in aufsteigender oder absteigender Reihenfolge sortiert werden.
AggregationReduce
Dieser Typ enthält Anweisungen dazu, welcher Typ von Reduktionsoperation ausgeführt werden soll und wie die Ausgabe dieser Reduktion ausgedrückt wird. Er enthält die folgenden Attribute:
expression
Verweist auf eine AggregationReduceExpression.
output
Gibt das neue Attribut resultAliasan, das zum Speichern des Ergebnisses und des Datentyps der Ausdrucksausgabe verwendet werden soll.
AggregationReduceExpression
Dieser Typ enthält die mathematische Operation, die den Reduktionsalgorithmus definiert, und enthält die folgenden Attribute:
operator
Verweist auf einen AggregationReduceOperator und gibt die mathematische Operation an, die ausgeführt wird
fieldPath
Das Geschäftsobjekt oder Ereignisattribut, das als Eingabe für die Operation dient.
type
Verweist auf ScalarType und gibt den Datentyp des Werts fieldPath an.
errorEvents
Der Abfragetyp errorEvents gibt basierend auf den angegebenen Eingabeparameterwerten eine Liste von Fehlerereignissen aus dem Event Warehouse zurück. Fehlerereignisse werden von Supply Chain Intelligence Suite generiert, wenn bei der Verarbeitung von Geschäftsobjekten Fehler auftreten. Da die Datenverarbeitung asynchron im Hintergrund erfolgen kann, besteht die einzige Möglichkeit zu bestimmen, ob ein Fehler auftritt, darin, Fehlerereignisse abzufragen.
Fehlerereignisse

Die Eingabeparameter für diese Abfrage sind:

eventParams
Verweist auf eine BusinessEventInput.
simpleFilter
Verweist auf eine ErrorEventDetailsInput.
advancedFilter
Verweist auf eine BooleanExp.
savedFilter
Verweist auf eine SavedFilter.
cursorParams
Verweist auf eine CursorInput.
ErrorEventDetailsInput
Dieser Typ stellt Details zur Art des Fehlerereignisses bereit und enthält die folgenden Attribute:
tenantId
Die globale ID des Tenants, der für die Generierung des Ereignisses verantwortlich ist
type
Der Typ des Fehlerereignisses, der angibt, ob das Ereignis während der Aufnahme von Daten IngestionErrorEventDetailsoder während der Hintergrundverarbeitung der Daten ProcessingErrorEventDetailsaufgetreten ist.
businessObjects
Der Abfragetyp businessObjects gibt basierend auf den angegebenen Eingabeparameterwerten eine Liste von Geschäftsobjekten aus dem Object Warehouse zurück.
Diagramm der Abfragetypen für Geschäftsobjekte

Die Eingabeparameter für diese Abfrage sind:

hint
Verweist auf einen Typ Hint , der ein Attribut viewId enthält, das eine zuvor gespeicherte materialisierte Ansicht angibt. Ansichten definieren, was in den Ergebnissen der Abfrage zurückgegeben wird.
simpleFilter
Verweist auf eine BusinessObjectInput.
advancedFilter
Verweist auf eine BooleanExp.
savedFilter
Verweist auf eine SavedFilter.
cursorParams
Verweist auf eine CursorInput.

Allgemeine Eingabeparametertypen

BooleanExp
Boolesche Ausdrücke sind eine Reihe von Vergleichen, die mit Operatoren verknüpft sind, die zu einem booleschen wahr-oder falsch-Ergebnis führen. Bei den Vergleichen wird ein expliziter Wert mit einem Attribut aus einem Supply Chain Intelligence Suite -Geschäftsobjekt oder -Geschäftsereignis verglichen. Zu den Operationen gehören die logischen Operatoren AND, OR und NOT sowie Vergleichsoperatoren wie GREATER_THAN und EQUALS. Logische Operatoren haben auch den Typ BooleanExp, der eine Rekursion ermöglicht, die eine willkürliche Verschachtelung von BooleanExp -Anweisungen ermöglicht.
Diagramm mit booleschen Ausdrücken
Weitere referenzierte Typen sind:
ComparisonOp
Vergleicht einen Wert eines bestimmten Typs mit einem Attribut eines Geschäftsobjekts oder Ereignisses, das durch das Attribut SELECT angegeben wird.
ComparisonListOp
Vergleicht eine Liste von Werten eines bestimmten Typs mit einem Attribut eines Geschäftsobjekts oder eines Ereignisses, das durch das Attribut SELECT angegeben wird. Es wird davon ausgegangen, dass das Geschäftsobjekt oder das Ereignisattribut ebenfalls eine Liste ist, sodass jedes Element, das durch VALUE angegeben wird, mit jedem Element übereinstimmen muss, das von SELECT zurückgegeben wird, damit der Vergleich 'true' zurückgibt.
ComparisonOperandType
Eine Auflistung von Wertdatentypen, die in Vergleichen verwendet werden.
Andere allgemeine Typen
Diagramm mit allgemeinen Eingabeparametertypen
BusinessEventInput
Alle Typen von Geschäftsereignisabfragen unterstützen eine allgemeine Gruppe von Attributen zu dem Ereignis selbst, wie z. B. Zeitmarken für das Ereignis, die eindeutige ID des Ereignisses und den Typ des am Ereignis beteiligten Objekts.
SavedFilter
Filter zur Eingrenzung der Ergebnisse der Abfrage können mithilfe des Filterservice vordefiniert und mithilfe des Attributs filterId referenziert werden. Stattdessen werden die Filterdetails in der Abfrage ausgedrückt.
CursorInput
Gibt an, nach welchem Geschäftsobjekt oder Ereignis die Ergebnisse beginnen müssen, indem der Cursorwert dieses Objekts oder Ereignisses für Paginierungszwecke verwendet wird Gibt außerdem an, wie viele in der Abfrage zurückgegeben werden sollen.
AggregationReduceOperator
Eine Auflistung von Operationen, die während einer Reduce-Operation möglich sind, während Ergebnisse in einer Geschäftsregelereignisabfrage aggregiert werden.
ScalarType
Bezieht sich auf den Datentyp eines Werts, der einem Attribut während einer Aggregationsoperation zugeordnet ist
SortOrder
Gibt an, wie zurückgegebene Ergebnisse sortiert werden müssen, sowie das Quellenfeld des Geschäftsobjekts oder Ereignisses, nach dem sortiert werden soll.
BusinessObjectType
Listet alle unterstützten Geschäftsobjekttypen in Supply Chain Intelligence Suiteauf.

Abfrageausgabeformat

Die Daten, die von der Abfrage zurückgegeben werden, hängen vom Typ der ausgeführten Abfrage ab. Ebenso hängt das Ausgabeformat, das in der Abfrage selbst angegeben wird, auch vom Typ der Abfrage ab. Da es vier Abfragetypen gibt, gibt es vier mögliche zurückgegebene Objekte und zugehörige Ausgabeformate.

  • errorEvents: ErrorEventsCursor
  • businessObjectEvents: BusinessEventsCursor
  • businessRuleEvents: BusinessRulesCursor
  • businessObjects: BusinessObjectsCursor

Jeder der zurückgegebenen Typen implementiert die Cursorschnittstelle, was bedeutet, dass die Ergebnisse eine indexierbare, paginierte Liste von Objekten sind.

Diagramm mit Abfrageausgabeformat
Cursor
Die Schnittstelle Cursor hat drei Basisattribute:
edges
Ein Array von Objekttypen, die die Schnittstelle Edge implementieren.
pageInfo
Details der Daten der aktuellen Seite, einschließlich des Cursorwerts (d. h. des Zeigers) des letzten Datenobjekts im Array edges (d. h. endCursor) und ob eine nächste Seite (d. h. hasNextPage) vorhanden ist.
totalCount
Die Gesamtzahl der Datenobjekte, die der Abfrage entsprechen.

Drei der vier Abfrageergebniscursor, ErrorEventsCursor, BusinessEventsCurs und BusinessObjectsCursor, ähneln der Cursorschnittstellendefinition und hängen nur von dem Objekt ab, das im Edge-Objekt implementiert ist. BusinessRulesCursor unterscheidet sich jedoch dadurch, dass weitere Attribute in die Cursorimplementierung eingeschlossen werden, um Aggregationsergebnisse für die Bereitstellung zu verarbeiten.

Hinweis: Aufgrund der Vielzahl von Implementierungen des Objekts im Edge-Typ, je nach den verschiedenen Arten von Geschäftsobjekten und Ereignissen, die von Supply Chain Intelligence Suite implementiert werden, besteht der beste Weg, mehr über ihre Optionen zu erfahren, darin, das Datenmodell Supply Chain Intelligence Suite zu untersuchen, wie im GraphQL Introspektions-Tutorial beschrieben.
Edge
Die Edge-Schnittstelle stellt ein kursoriertes oder indexiertes Datenobjekt dar, das den Abfragekriterien entspricht, die als Eingabeparameter für die Abfrage angegeben wurden. Die tatsächliche Implementierung hängt vom Datentyp ab, der von der Abfrage zurückgegeben wird. Alle Implementierungen haben die beiden Attribute, die von der Schnittstelle definiert werden:
cursor
Die eindeutige Index-ID des Geschäftsobjekts oder Ereignisses, das von dieser Kante dargestellt wird.
object
Verweist auf ein Geschäftsobjekt oder Ereignis, das die Schnittstelle implementiert. Die Schnittstelle enthält nur das Attribut id . Implementierungen variieren abhängig vom Typ der Daten, die von der Abfrage zurückgegeben werden.
BusinessRulesCursor
Zusätzlich zur Implementierung der drei Attribute der Schnittstelle Cursor ( edges, pageInfound totalCount) implementiert BusinessRulesCursor zwei weitere Attribute für die Darstellung von Aggregationsergebnissen aus der Geschäftsregel:
aggregationResults
Verweist auf eine AggregationResult.
aggregationResultsTotalCount
Die Gesamtzahl der zurückgegebenen Aggregationsergebnisse entsprechend den übereinstimmenden Dimensionen.
AggregationResult
Diagramm mit Aggregationsergebnissen

Eine Aggregation definiert eine Verkleinerungsberechnung, die über mehrere Dimensionen ausgeführt wird. Eine Dimension ist ein Attribut des zugrunde liegenden Geschäftsobjekts, für das jeder eindeutige Wert dieses Attributs eine andere Aggregation generiert. Dieser Typ enthält zwei Attribute:

dimensionValues
Ein Array von Name/Wert-Paaren, die die Dimensionswerte für jeden generierten Aggregationswert auflisten.
values
Ein Array von Name/Wert-Paaren, wobei das Namensattribut die resultAlias aus der Aggregationsdefinition in der Abfrage angibt und der Wert die resultierende Berechnung (Reduktion) ist. Der Wert kann abhängig von der Art der Reduktionsoperation entweder ein Zeichenfolgedatentyp (value) oder ein Gleitkommadatentyp (numValue) sein. Der Index des Werts im Array entspricht dem Index der zugehörigen Dimension im Array dimensionValues .