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.
- 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
businessObjectEventsgibt eine Liste von Geschäftsereignissen aus dem Event Warehouse basierend auf den angegebenen Eingabeparameterwerten zurück.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
businessRuleEventsgibt eine Liste mit Geschäftsereignissen aus dem Ereigniswarehouse zurück, die von einer Geschäftsregel auf der Basis der angegebenen Eingabeparameterwerte generiert werden.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
AggregationReduceOperatorund 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
ScalarTypeund gibt den Datentyp des WertsfieldPathan.
errorEvents- Der Abfragetyp
errorEventsgibt 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.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 DatenProcessingErrorEventDetailsaufgetreten ist.
businessObjects- Der Abfragetyp
businessObjectsgibt basierend auf den angegebenen Eingabeparameterwerten eine Liste von Geschäftsobjekten aus dem Object Warehouse zurück.Die Eingabeparameter für diese Abfrage sind:
- hint
- Verweist auf einen Typ
Hint, der ein AttributviewIdenthä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 vonBooleanExp-Anweisungen ermöglicht.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
- 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
filterIdreferenziert 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: ErrorEventsCursorbusinessObjectEvents: BusinessEventsCursorbusinessRuleEvents: BusinessRulesCursorbusinessObjects: BusinessObjectsCursor
Jeder der zurückgegebenen Typen implementiert die Cursorschnittstelle, was bedeutet, dass die Ergebnisse eine indexierbare, paginierte Liste von Objekten sind.
- 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,BusinessEventsCursundBusinessObjectsCursor, ähneln der Cursorschnittstellendefinition und hängen nur von dem Objekt ab, das im Edge-Objekt implementiert ist.BusinessRulesCursorunterscheidet 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,pageInfoundtotalCount) implementiertBusinessRulesCursorzwei 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.
AggregationResultEine 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
resultAliasaus 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 ArraydimensionValues.