GraphQL tipos de consulta

Los datos que importe en la organización se pueden inspeccionar utilizando consultas de GraphQL . Puede ejecutar consultas manualmente, automatizar las consultas o ejecutar consultas a través de reglas automatizadas.

La consulta de datos de Supply Chain Intelligence Suite utiliza instrucciones de consulta de GraphQL . El formato de la instrucción de consulta incluye el tipo de consulta, los parámetros de entrada entre paréntesis, seguidos por el formato de salida para el objeto devuelto entre llaves.

query type (input paramters){output parameters}

El tipo de consulta indica qué tipo de datos, ya sean sucesos de negocio u objetos de negocio, se están consultando y a qué almacén de datos, ya sea el almacén de sucesos o el almacén de objetos, se está destinando. Los parámetros de entrada indican lo que se está consultando y el formato de salida indica cómo debe visualizarse el objeto resultante.

Actualmente, son posibles cuatro tipos principales de consultas, agrupadas por almacén de datos:
Almacén de sucesos
errorEvents
Devuelve una lista de sucesos de error basada en detalles de sucesos de error, que especifica el tipo de error que se debe consultar: ingestión o proceso. Devuelve un ErrorEventsCursor.
businessObjectEvents
Devuelve una lista de sucesos de objeto de negocio basados en la entrada de detalles de los sucesos que afectan a los objetos de negocio. Devuelve un BusinessEventsCursor.
businessRuleEvents
Devuelve una lista de sucesos de regla de negocio basados en la entrada de detalles de los sucesos que resultan de la activación de una regla. Devuelve un BusinessRulesCursor.
Almacén de objetos
businessObjects
Devuelve una lista de objetos de negocio basados en la información de identificación de objetos de negocio y el nombre de una vista serializada, que se utiliza para realizar la consulta. Devuelve un BusinessObjectsCursor.
La siguiente consulta de ejemplo devuelve un único suceso de objeto de negocio por un ID específico:
{
  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
              }
            }
          }
        }
      }
    }
  }
}

Parámetros de entrada de consulta

Los parámetros de entrada necesarios difieren en función del tipo de consulta que se realice. Sin embargo, varios parámetros de entrada son comunes entre tipos de consulta.

businessObjectEvents
El tipo de consulta businessObjectEvents devuelve una lista de sucesos empresariales del almacén de sucesos basándose en los valores de parámetro de entrada que se han especificado.
Tipo de consulta de sucesos de objeto de negocio

Los parámetros de entrada para esta consulta son:

eventParams
Apunta a un BusinessEventInput.
simpleFilter
Apunta a un BusinessObjectEventDetailsInput.
advancedFilter
Apunta a un BooleanExp.
savedFilter
Apunta a un SavedFilter.
cursorParams
Apunta a un CursorInput.
BusinessObjectEventDetailsInput
Este tipo proporciona entrada en la operación de objeto de negocio implicada en el suceso y contiene los atributos siguientes:
tenantId
El ID global del arrendatario que es responsable de generar el suceso.
businessObjectEventCode
El tipo de operación de objeto de negocio implicado en este suceso, ya sea upsert o archive.
businessObject
Apunta a un BusinessObjectInput.
BusinessObjectInput
Este tipo proporciona entrada en el propio objeto de negocio contenido y contiene los atributos siguientes:
id
El ID exclusivo global del objeto de negocio, que se genera cuando se crea el objeto.
type
Apunta a un valor de enumeración BusinessObjectType , que indica el tipo de objeto de negocio.
globalIdentifiers
Una matriz de pares de nombre o valor de atributos de objeto que deben identificar de forma exclusiva este objeto de negocio de otros objetos de negocio del mismo tipo y dentro del mismo arrendatario. Supply Chain Intelligence Suite genera un ID exclusivo para cada combinación exclusiva de globalIdentifiers, arrendatario y tipo de objeto.
localIdentifiers
Matriz ordenada de pares de nombre o valor de atributos de objeto que identifican de forma exclusiva este objeto para la referencia local dentro del propio objeto de negocio. Determinados objetos de negocio tienen objetos anidados que pueden hacer referencia al objeto padre, como líneas de pedido y sublíneas dentro de una orden.
businessRuleEvents
El tipo de consulta businessRuleEvents devuelve una lista de sucesos de negocio del almacén de sucesos generados por una regla de negocio basada en los valores de parámetro de entrada especificados.
Diagrama de tipos de consulta de suceso de regla de negocio

Los parámetros de entrada para esta consulta son:

eventParams
Apunta a un BusinessEventInput.
simpleFilter
Apunta a un BusinessRuleEventDetailsInput.
advancedFilter
Apunta a un BooleanExp.
savedFilter
Apunta a un SavedFilter.
cursorParams
Apunta a un CursorInput.
aggregationParams
Apunta a un AggregationParams.
BusinessRuleEventDetailsInput
Este tipo proporciona detalles sobre la regla de negocio que ha generado el suceso de negocio y contiene los atributos siguientes:
tenantId
El ID global del arrendatario que es responsable de generar el suceso.
rule
Apunta a un tipo RuleInput que le permite especificar la regla por ID, nombre y origen.
dimensionValues
Una matriz de pares de nombre/valor que especifica los valores de dimensión a los que restringir la consulta. Una dimensión es un atributo del objeto de negocio subyacente para el que cada valor exclusivo de ese atributo genera un suceso de negocio diferente.
AggregationParams
Este tipo le permite agregar, resumir y ordenar los valores que se devuelven en la consulta y contiene los atributos siguientes:
dimension
El atributo de objeto de negocio subyacente y el tipo de datos basado en el que se produce la agregación. Para cada valor exclusivo que se encuentra para el atributo especificado, se realiza una agregación diferente.
reduce
Opcionalmente, se puede realizar una operación de reducción en los datos que se devuelven en la consulta y apunta a un AggregationReduce.
paginationParams
Permite especificar opcionalmente cuántos valores se deben devolver en la consulta, qué atributo se debe utilizar para ordenar los resultados y si se deben clasificar en orden ascendente o descendente.
AggregationReduce
Este tipo incluye instrucciones sobre qué tipo de operación de reducción realizar y cómo se expresa la salida de dicha reducción, e incluye los atributos siguientes:
expression
Apunta a un AggregationReduceExpression.
output
Indica el nuevo atributo, resultAlias, que se debe utilizar para contener el resultado y el tipo de datos de la salida de expresión.
AggregationReduceExpression
Este tipo contiene la operación matemática que define el algoritmo de reducción y contiene los atributos siguientes:
operator
Apunta a un AggregationReduceOperator y especifica la operación matemática que se realiza.
fieldPath
El objeto de negocio o atributo de suceso que sirve de entrada a la operación.
type
Apunta a un ScalarType e indica el tipo de datos del valor fieldPath .
errorEvents
El tipo de consulta errorEvents devuelve una lista de sucesos de error del almacén de sucesos basándose en los valores de parámetro de entrada especificados. Los sucesos de error los genera Supply Chain Intelligence Suite cuando se producen errores en el proceso de objetos de negocio. Puesto que el proceso de datos puede producirse de forma asíncrona en segundo plano, la única forma de determinar si se produce un error es consultar los sucesos de error.
Eventos de error

Los parámetros de entrada para esta consulta son:

eventParams
Apunta a un BusinessEventInput.
simpleFilter
Apunta a un ErrorEventDetailsInput.
advancedFilter
Apunta a un BooleanExp.
savedFilter
Apunta a un SavedFilter.
cursorParams
Apunta a un CursorInput.
ErrorEventDetailsInput
Este tipo proporciona detalles de la naturaleza del suceso de error e incluye los atributos siguientes:
tenantId
El ID global del arrendatario que es responsable de generar el suceso.
type
El tipo de suceso de error, que indica si el suceso se ha producido durante la ingestión de datos, IngestionErrorEventDetailso el proceso en segundo plano de los datos, ProcessingErrorEventDetails.
businessObjects
El tipo de consulta businessObjects devuelve una lista de objetos de negocio del almacén de objetos basándose en los valores de parámetro de entrada especificados.
Diagrama de tipos de consulta de objeto de negocio

Los parámetros de entrada para esta consulta son:

hint
Apunta a un tipo Hint , que incluye un atributo viewId que especifica una vista materializada guardada anteriormente. Las vistas definen lo que se devuelve en los resultados de la consulta.
simpleFilter
Apunta a un BusinessObjectInput.
advancedFilter
Apunta a un BooleanExp.
savedFilter
Apunta a un SavedFilter.
cursorParams
Apunta a un CursorInput.

Tipos de parámetros de entrada comunes

BooleanExp
Las expresiones booleanas son series de comparaciones enlazadas con operadores que dan como resultado un resultado booleano verdadero o falso. Las comparaciones comparan un valor explícito con un atributo de un objeto de negocio o suceso de negocio de Supply Chain Intelligence Suite . Las operaciones incluyen los operadores lógicos AND, OR y NOT y los operadores de comparación, como GREATER_THAN y EQUALS. Los operadores lógicos también son de tipo BooleanExp, lo que permite que las sentencias BooleanExp se aniden de forma arbitraria.
Diagrama que muestra expresiones booleanas
Otros tipos referenciados son:
ComparisonOp
Compara un valor de un tipo específico con un atributo de un objeto de negocio o suceso indicado por el atributo SELECT.
ComparisonListOp
Compara una lista de valores de un tipo específico con un atributo de un objeto de negocio o suceso indicado por el atributo SELECT. Se presupone que el objeto de negocio o atributo de suceso también es una lista, por lo que cada elemento especificado por VALUE debe coincidir con cada elemento devuelto por SELECT para que la comparación devuelva true.
ComparisonOperandType
Enumeración de tipos de datos de valor que se utilizan en las comparaciones.
Otros tipos comunes
Diagrama que muestra el tipo de parámetros de entrada comunes
BusinessEventInput
Todos los tipos de consultas de sucesos de negocio dan soporte a un conjunto común de atributos sobre el propio suceso, como las indicaciones de fecha y hora para el suceso, el ID exclusivo del suceso y el tipo de objeto implicado en el suceso.
SavedFilter
Los filtros para refinar los resultados de la consulta se pueden predefinir utilizando el servicio de filtro y se puede hacer referencia a ellos utilizando el atributo filterId en lugar de expresar siempre los detalles de filtro en la consulta.
CursorInput
Indica después de qué objeto de negocio o suceso los resultados deben empezar utilizando el valor de cursor de dicho objeto o suceso para fines de paginación. También indica cuántos se deben devolver en la consulta.
AggregationReduceOperator
Enumeración de operaciones que son posibles durante una operación de reducción mientras se agregan resultados en una consulta de suceso de regla de negocio.
ScalarType
Hace referencia al tipo de datos de un valor que está asociado con un atributo durante una operación de agregación.
SortOrder
Especifica cómo se deben ordenar los resultados devueltos y el campo de origen del objeto de negocio o suceso por el que se debe ordenar.
BusinessObjectType
Lista todos los tipos de objeto de negocio soportados en Supply Chain Intelligence Suite.

Formato de salida de consulta

Los datos devueltos por la consulta dependen del tipo de consulta que se esté ejecutando. Del mismo modo, el formato de salida que se especifica en la propia consulta también depende del tipo de consulta. Puesto que hay cuatro tipos de consulta, hay cuatro posibles objetos devueltos y formatos de salida asociados.

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

Cada uno de los tipos devueltos implementa la interfaz de cursor, lo que significa que los resultados son una lista de objetos paginados con posibilidad de índice.

Diagrama que muestra el formato de salida de consulta
Cursores
La interfaz Cursor tiene tres atributos base:
edges
Una matriz de tipos de objeto que implementan la interfaz Edge .
pageInfo
Detalles de los datos de la página actual, incluido el valor del cursor, que es el puntero, del último objeto de datos de la matriz edges , que es endCursor, y si hay una página siguiente, que es hasNextPage.
totalCount
Número total de objetos de datos que coinciden con la consulta.

Tres de los cuatro cursores de resultados de consulta, ErrorEventsCursor, BusinessEventsCurs y BusinessObjectsCursor, se parecen mucho a la definición de la interfaz del cursor y sólo varían en el objeto que se implementa en el objeto Edge. BusinessRulesCursor Sin embargo, difiere al incluir más atributos en la implementación del cursor para manejar los resultados de la agregación de rending.

Nota: Debido a la amplia variedad de implementaciones del objeto en el tipo Edge, de acuerdo con los diversos tipos de objetos comerciales y eventos que se implementan mediante Supply Chain Intelligence Suite , la mejor manera de obtener más información sobre sus opciones es realizar una introspección del modelo de datos Supply Chain Intelligence Suite como se describe en el Tutorial de introspección GraphQL
Edge
La interfaz Edge representa un objeto de datos censurado o indexado que coincide con los criterios de consulta especificados como parámetros de entrada de la consulta. La implementación real depende del tipo de datos que devuelve la consulta. Todas las implementaciones tienen los dos atributos definidos por la interfaz:
cursor
El ID de índice exclusivo del objeto de negocio o suceso representado por este sistema perimetral.
object
Apunta a un objeto de negocio o suceso que implementa la interfaz. La interfaz sólo contiene el atributo id . Las implementaciones varían mucho en función del tipo de datos que devuelve la consulta.
BusinessRulesCursor
Además de implementar los tres atributos de la interfaz Cursor , que son edges, pageInfoy totalCount, BusinessRulesCursor también implementa dos atributos más para representar los resultados de agregación de la regla de negocio:
aggregationResults
Apunta a un AggregationResult.
aggregationResultsTotalCount
El número total de resultados de agregación devueltos, según las dimensiones coincidentes.
AggregationResult
Diagrama que muestra los resultados de la agregación

Una agregación define un cálculo de reducción que se realiza en varias dimensiones. Una dimensión es un atributo del objeto de negocio subyacente para el que cada valor exclusivo de ese atributo genera una agregación diferente. Hay dos atributos en este tipo:

dimensionValues
Una matriz de pares de nombre y valor que listan los valores de dimensión para cada valor de agregación que se ha generado.
values
Una matriz de pares de nombre/valor donde el atributo de nombre especifica el resultAlias de la definición de agregación en la consulta y el valor es el cálculo resultante (reducción). El valor puede ser un tipo de serie (value) o flotante (numValue), en función de la naturaleza de la operación de reducción. El índice del valor de la matriz corresponde al índice de su dimensión asociada en la matriz dimensionValues .