Tipi di query GraphQL
I dati importati nella tua organizzazione possono essere ispezionati utilizzando le query GraphQL . È possibile eseguire le interrogazioni manualmente, automatizzare le interrogazioni o eseguire le interrogazioni mediante regole automatizzate.
La query dei dati Supply Chain Intelligence Suite utilizza le istruzioni della query GraphQL . Il formato dell'istruzione query include il tipo di interrogazione, i parametri di input racchiusi tra parentesi, seguiti dal formato di emissione per l'oggetto restituito racchiuso tra parentesi graffe.
query type (input paramters){output parameters}
Il tipo di query indica quale tipo di dati, eventi di business o oggetti di business, viene sottoposto a query e quale data warehouse, l'event warehouse o l'object warehouse, viene utilizzato come destinazione. I parametri di input indicano cosa viene interrogato e il formato di output indica come deve essere visualizzato l'oggetto risultante.
- Archivio eventi
- errorEvents
- Restituisce un elenco di eventi di errore in base ai dettagli dell'evento di errore, che specifica il tipo di errore da interrogare: inserimento o elaborazione. Restituisce un
ErrorEventsCursor.
- businessObjectEvents
- Restituisce un elenco di eventi oggetto di business in base all'input dei dettagli dagli eventi che influenzano gli oggetti di business. Restituisce un
BusinessEventsCursor.
- businessRuleEvents
- Restituisce un elenco di eventi regola di business in base all'input di dettaglio dagli eventi che risultano dall'attivazione di una regola. Restituisce un
BusinessRulesCursor.
- Archivio oggetti
- businessObjects
- Restituisce un elenco di oggetti di business basati sulle informazioni di identificazione degli oggetti di business e il nome di una vista serializzata, utilizzata per eseguire la query. Restituisce un
BusinessObjectsCursor.
La seguente query di esempio restituisce un singolo evento oggetto di business in base a un ID specifico:{ 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 } } } } } } } }
Parametri di immissione query
I parametri di input richiesti differiscono in base al tipo di query eseguita. Tuttavia, diversi parametri di input sono comuni tra i tipi di query.
- businessObjectEvents
- Il tipo di query
businessObjectEventsrestituisce un elenco di eventi di business dal warehouse eventi in base ai valori del parametro di input specificati.I parametri di input per questa query sono:
- eventParams
- Punta a un
BusinessEventInput.
- simpleFilter
- Punta a un
BusinessObjectEventDetailsInput.
- advancedFilter
- Punta a un
BooleanExp.
- savedFilter
- Punta a un
SavedFilter.
- cursorParams
- Punta a un
CursorInput.
BusinessObjectEventDetailsInput- Questo tipo fornisce l'input sull'operazione dell'oggetto di business che è coinvolta nell'evento e contiene i seguenti attributi:
- tenantId
- L'ID globale del tenant responsabile della creazione dell'evento.
- businessObjectEventCode
- Il tipo di operazione dell'oggetto di business coinvolto in questo evento, un upsert o un archivio.
- businessObject
- Punta a un
BusinessObjectInput.
BusinessObjectInput- Questo tipo fornisce l'input sull'oggetto di business contenuto e contiene i seguenti attributi:
- id
- L'ID univoco globale dell'oggetto di business, generato quando l'oggetto è stato creato.
- type
- Punta a un valore di enumerazione
BusinessObjectType, che indica il tipo di oggetto di business.
- globalIdentifiers
- Un array di nomi o di coppie di valori di attributi oggetto che devono identificare in modo univoco questo oggetto di business da altri oggetti di business dello stesso tipo e all'interno dello stesso tenant. Supply Chain Intelligence
Suite genera un ID univoco per ogni combinazione univoca di
globalIdentifiers, tenant e tipo di oggetto.
- localIdentifiers
- Un array ordinato di coppie nome o valore di attributi oggetto che identificano in modo univoco questo oggetto per il riferimento locale all'interno dell'oggetto di business stesso. Alcuni oggetti di business hanno oggetti nidificati che possono fare riferimento all'oggetto principale, come linee d'ordine e linee secondarie all'interno di un ordine.
businessRuleEvents- Il tipo di query
businessRuleEventsrestituisce un elenco di eventi di business dal warehouse degli eventi generato da una regola di business in base ai valori del parametro di input specificati.I parametri di input per questa query sono:
- eventParams
- Punta a un
BusinessEventInput.
- simpleFilter
- Punta a un
BusinessRuleEventDetailsInput.
- advancedFilter
- Punta a un
BooleanExp.
- savedFilter
- Punta a un
SavedFilter.
- cursorParams
- Punta a un
CursorInput.
- aggregationParams
- Punta a un
AggregationParams.
BusinessRuleEventDetailsInput- Questo tipo fornisce dettagli sulla regola di business che ha generato l'evento di business e contiene i seguenti attributi:
- tenantId
- L'ID globale del tenant responsabile della creazione dell'evento.
- rule
- Indica un tipo RuleInput che consente di specificare la regola in base all'ID, al nome e all'origine.
- dimensionValues
- Un array di coppie nome / valore che specifica i valori della dimensione a cui limitare la query. Una dimensione è un attributo dell'oggetto di business sottostante per il quale ogni valore univoco di quell' attributo genera un evento di business differente.
AggregationParams- Questo tipo consente di aggregare, riepilogare e ordinare i valori restituiti nella query e contiene i seguenti attributi:
- dimension
- Il tipo di dati e l'attributo dell'oggetto di business sottostante in base al quale si verifica l'aggregazione. Per ogni valore univoco trovato per l'attributo specificato, viene eseguita un'aggregazione differente.
- reduce
- Facoltativamente, un'operazione di riduzione può essere eseguita sui dati restituiti sulla query e punta a un
AggregationReduce.
- paginationParams
- Consente di specificare, facoltativamente, il numero di valori da restituire nella query, l'attributo da utilizzare per ordinare i risultati e se ordinarli in ordine crescente o decrescente.
AggregationReduce- Questo tipo include le istruzioni su quale tipo di operazione di riduzione eseguire e come viene espresso l'output di tale riduzione e include i seguenti attributi:
- expression
- Punta a un
AggregationReduceExpression.
- output
- Indica il nuovo attributo,
resultAlias, da utilizzare per conservare il risultato e il tipo di dati dell'output dell'espressione.
AggregationReduceExpression- Questo tipo contiene l'operazione matematica che definisce l'algoritmo di riduzione e contiene i seguenti attributi:
- operator
- Punta a un
AggregationReduceOperatore specifica l'operazione matematica eseguita.
- fieldPath
- L'oggetto di business o l'attributo evento che funge da input per l'operazione.
- type
- Punta a
ScalarTypee indica il tipo di dati del valorefieldPath.
errorEvents- Il tipo di query
errorEventsrestituisce un elenco di eventi di errore dall'archivio eventi in base ai valori del parametro di input specificati. Gli eventi di errore vengono generati da Supply Chain Intelligence Suite quando si verificano errori nell'elaborazione di oggetti di business. Poiché l'elaborazione dei dati può avvenire in modo asincrono in background, l'unico modo per determinare se si verifica un errore è eseguire una query per gli eventi di errore.I parametri di input per questa query sono:
- eventParams
- Punta a un
BusinessEventInput.
- simpleFilter
- Punta a un
ErrorEventDetailsInput.
- advancedFilter
- Punta a un
BooleanExp.
- savedFilter
- Punta a un
SavedFilter.
- cursorParams
- Punta a un
CursorInput.
ErrorEventDetailsInput- Questo tipo fornisce i dettagli della natura dell'evento di errore e include i seguenti attributi:
- tenantId
- L'ID globale del tenant responsabile della creazione dell'evento.
- type
- Il tipo di evento di errore, che indica se l'evento si è verificato durante l'inserimento dei dati,
IngestionErrorEventDetailso l'elaborazione in background dei dati,ProcessingErrorEventDetails.
businessObjects- Il tipo di query
businessObjectsrestituisce un elenco di oggetti di business dall'archivio oggetti in base ai valori del parametro di input specificati.I parametri di input per questa query sono:
- hint
- Punta a un tipo
Hint, che include un attributoviewIdche specifica una vista materializzata precedentemente salvata. Le viste definiscono cosa viene restituito nei risultati della query.
- simpleFilter
- Punta a un
BusinessObjectInput.
- advancedFilter
- Punta a un
BooleanExp.
- savedFilter
- Punta a un
SavedFilter.
- cursorParams
- Punta a un
CursorInput.
Tipi di parametri di immissione comuni
BooleanExp- Le espressioni booleane sono serie di confronti collegati con operatori che risultano in un risultato booleano true o false. I confronti confrontano un valore esplicito con un attributo da un oggetto di business o da un evento di business Supply Chain Intelligence
Suite . Le operazioni includono gli operatori logici AND, OR e NOT e gli operatori di confronto, come GREATER_THAN e EQUALS. Gli operatori logici sono anche di tipo
BooleanExp, che consente la ricorsione che consente alle istruzioniBooleanExpdi essere nidificate arbitrariamente.Altri tipi di riferimento includono:- ComparisonOp
- Confronta un valore di un tipo specifico con un attributo di un oggetto di business o di un evento indicato dall'attributo SELECT.
- ComparisonListOp
- Confronta un elenco di valori di un tipo specifico con un attributo di un oggetto di business o di un evento indicato dall'attributo SELECT. Si presuppone che l'oggetto di business o l'attributo evento sia anche un elenco e quindi ogni elemento specificato da VALUE deve corrispondere a ogni elemento restituito da SELECT affinché il confronto restituisca true.
- ComparisonOperandType
- Un'enumerazione di tipi di dati valore utilizzati nei confronti.
- Altri tipi comuni
- BusinessEventInput
- Tutti i tipi di query di eventi di business supportano una serie comune di attributi relativi all'evento stesso, come la data / ora dell'evento, l'ID univoco dell'evento e il tipo di oggetto coinvolto nell'evento.
- SavedFilter
- I filtri per perfezionare i risultati della query possono essere predefiniti utilizzando il servizio di filtro e facendo riferimento utilizzando l'attributo
filterIdinvece di esprimere sempre i dettagli del filtro nella query.
- CursorInput
- Indica dopo quale oggetto di business o evento i risultati devono iniziare utilizzando il valore cursore di tale oggetto o evento per scopi di paginazione. Indica anche quanti restituire nella query.
- AggregationReduceOperator
- Un'enumerazione di operazioni possibili durante un'operazione di riduzione durante l'aggregazione dei risultati in una query di evento della regola di business.
- ScalarType
- Fa riferimento al tipo di dati di un valore associato a un attributo durante un'operazione di aggregazione.
- SortOrder
- Specifica il modo in cui devono essere ordinati i risultati restituiti e il campo di origine dell'oggetto di business o dell'evento su cui eseguire l'ordinamento.
- BusinessObjectType
- Elenca tutti i tipi di oggetto di business supportati in Supply Chain Intelligence Suite.
Formato di output della query
I dati restituiti dalla query dipendono dal tipo di query in esecuzione. Allo stesso modo, il formato di emissione specificato nella query stessa dipende dal tipo di query. Poiché ci sono quattro tipi di query, ci sono quattro possibili oggetti restituiti e formati di output associati.
errorEvents: ErrorEventsCursorbusinessObjectEvents: BusinessEventsCursorbusinessRuleEvents: BusinessRulesCursorbusinessObjects: BusinessObjectsCursor
Ognuno dei tipi restituiti implementa l'interfaccia cursore, il che significa che i risultati sono un elenco di oggetti paginati indicizzabili.
- Cursori
- L'interfaccia Cursore ha tre attributi di base:
- edges
- Un array di tipi di oggetto che implementano l'interfaccia Edge .
- pageInfo
- I dettagli dei dati della pagina corrente, incluso il valore del cursore, che è il puntatore, dell'ultimo oggetto di dati nell'array
edges, che èendCursor, e se è presente una pagina successiva, che èhasNextPage.
- totalCount
- Il numero totale di oggetti dati che corrispondono alla query.
Tre dei quattro cursori dei risultati della query,
ErrorEventsCursor,BusinessEventsCurseBusinessObjectsCursor, sono molto simili alla definizione dell'interfaccia del cursore e variano solo sull'oggetto implementato nell'oggetto Edge.BusinessRulesCursor, tuttavia, differisce includendo più attributi nell'implementazione del cursore per gestire i risultati di aggregazione di rending.Nota: a causa dell'ampia varietà di implementazioni dell'oggetto nel tipo Edge, in base ai vari tipi di oggetti aziendali ed eventi implementati da Supply Chain Intelligence Suite , il modo migliore per saperne di più sulle loro opzioni è quello di analizzare il modello di dati Supply Chain Intelligence Suite come descritto nel GraphQL Introspection Tutorial
Edge- L'interfaccia Edge rappresenta un oggetto di dati con cursore o indicizzato che corrisponde ai criteri della query specificati come parametri di input per la query. L'effettiva implementazione dipende dal tipo di dati restituiti dalla query. Tutte le implementazioni hanno i due attributi definiti dall'interfaccia:
- cursor
- L'ID indice univoco dell'oggetto di business o dell'evento rappresentato da questo margine.
- object
- Punta a un oggetto di business o a un evento che implementa l'interfaccia. L'interfaccia contiene solo l'attributo
id. Le implementazioni variano notevolmente a seconda del tipo di dati restituiti dalla query.
BusinessRulesCursor- Oltre ad implementare i tre attributi dell'interfaccia
Cursor, che sonoedges,pageInfoetotalCount,BusinessRulesCursorimplementa anche altri due attributi per il rendering dei risultati dell'aggregazione dalla regola di business:- aggregationResults
- Punta a un
AggregationResult.
- aggregationResultsTotalCount
- Il numero totale di risultati di aggregazione restituiti, in base alle dimensioni corrispondenti.
AggregationResultUn'aggregazione definisce un calcolo di riduzione eseguito su più dimensioni. Una dimensione è un attributo dell'oggetto di business sottostante per il quale ogni valore univoco di quell' attributo genera un'aggregazione differente. Esistono due attributi in questo tipo:
- dimensionValues
- Un array di coppie nome e valore che elencano i valori della dimensione per ogni valore di aggregazione prodotto.
- values
- Un array di coppie nome / valore in cui l'attributo name specifica il
resultAliasdalla definizione di aggregazione nella query e il valore è il calcolo risultante (riduzione). Il valore può essere di tipo String (value) o float (numValue), in base alla natura dell'operazione di riduzione. L'indice del valore nell'array corrisponde all'indice della dimensione associata nell'arraydimensionValues.