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.

Attualmente, sono possibili quattro tipi principali di query, raggruppati per data warehouse:
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 businessObjectEvents restituisce un elenco di eventi di business dal warehouse eventi in base ai valori del parametro di input specificati.
Tipo di query eventi oggetto di business

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 businessRuleEvents restituisce 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.
Diagramma dei tipi di query evento regola di business

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 AggregationReduceOperator e specifica l'operazione matematica eseguita.
fieldPath
L'oggetto di business o l'attributo evento che funge da input per l'operazione.
type
Punta a ScalarType e indica il tipo di dati del valore fieldPath .
errorEvents
Il tipo di query errorEvents restituisce 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.
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 businessObjects restituisce un elenco di oggetti di business dall'archivio oggetti in base ai valori del parametro di input specificati.
Diagramma dei tipi di query dell'oggetto di business

I parametri di input per questa query sono:

hint
Punta a un tipo Hint , che include un attributo viewId che 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 istruzioni BooleanExp di essere nidificate arbitrariamente.
Diagramma che mostra espressioni booleane
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
Diagramma che mostra il tipo di parametri di input 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 filterId invece 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: ErrorEventsCursor
  • businessObjectEvents: BusinessEventsCursor
  • businessRuleEvents: BusinessRulesCursor
  • businessObjects: BusinessObjectsCursor

Ognuno dei tipi restituiti implementa l'interfaccia cursore, il che significa che i risultati sono un elenco di oggetti paginati indicizzabili.

Diagramma che mostra il formato di output della query
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, BusinessEventsCurs e BusinessObjectsCursor, 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 sono edges, pageInfoe totalCount, BusinessRulesCursor implementa 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.
AggregationResult
Diagramma che mostra i risultati di aggregazione

Un'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 resultAlias dalla 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'array dimensionValues .