Definición de consultas complejas

Las consultas complejas ayudan a acotar un listado detallado que se obtiene como salida de una API. Para generar la salida deseada, puede pasar consultas utilizando los operadores And o Or en el XML de entrada de una API.

Por ejemplo, puede consultar la API getItemList basándose en la unidad de medida, el código de grupo de artículos o cualquier parámetro proporcionado en la definición de la API, utilizando los operadores de consulta compleja, And o Or.

Las consultas complejas están soportadas para las API siguientes:
  • deletePricelistAssignmentList
  • deletePricingRuleAssignmentList
  • getAttributeAllowedValueList
  • getClassificationPurposeList
  • getCustomerContactList
  • getExceptionList
  • getInventoryReservationList
  • getItemList
  • getOrderLineList
  • getOrderList
  • getOrganizationList
  • getSearchIndexTriggerList
  • getShipmentList
  • getShipmentLineList

Para más información, consulte el Javadoc. Para obtener más información sobre las columnas válidas de la base de datos, consulte Diagramas de relación de entidades (ERD).

Nota: Sólo se admiten entidades de artículo, organización, pedido, línea de pedido, envío y línea de envío para realizar consultas complejas. Los atributos para consulta compleja deben correlacionarse directamente con columnas de la base de datos válidas de estas entidades y deben estar en el mismo elemento XML.

Ejemplo: añadir consultas complejas en la API getItemList

Considere el siguiente escenario para añadir consultas complejas a la getItemList API.

La getItemList API devuelve una lista de elementos basada en los criterios de selección especificados en el XML de entrada, como atributos de elemento, alias o categoría. Puede crear consultas complejas en el getItemList XML de entrada como se muestra en el siguiente ejemplo:
<Item OrganizationCode="ARGOS" ItemGroupCode="PROD" > 
  <PrimaryInformation KitCode="BUNDLE" KitCodeQryType="NE">
  </PrimaryInformation> 
    <ComplexQuery Operator="AND"> 
       <And> 
          <Or> 
            <Exp Name="ProductLine" Value="DO" QryType="EQ"/> 
            <Exp Name="ProductLine" Value="Expert" QryType="EQ"/>     
          </Or> 
        </And> 
    </ComplexQuery> 
</Item>

OrganizationCode y ItemGroupCode son los dos atributos del elemento <Item> y KitCode y KitCodeQryType son los atributos del elemento <PrimaryInformation> que se consideran en este ejemplo. Sin embargo, puede incluir cualquiera o todos los atributos en la getItemList . Todos los atributos en la API se interpretan con un And implícito junto con el operador de consulta complejo.

Aplique las siguientes reglas cuando incluya consultas complejas:

  • Sólo se puede definir un ComplexQuery bajo un mismo elemento. Por ejemplo, no puede tener dos operadores ComplexQuery bajo un elemento Item.
  • No puede añadir una consulta compleja en dos tablas diferentes. Por ejemplo, en la getShipmentList API no se pueden utilizar ChainedFromOrderHeaderKey y ShipmentLineNo en la misma consulta, ya que el primero pertenece a la YFS_ORDER_LINE tabla y el segundo es un atributo de la YFS_SHIPMENT_LINE tabla.
  • El atributo sin valor no se contempla en la consulta compleja, como Attribute="".
  • Para atributos anexados con QryType, especifique un valor de tipo de consulta de la tabla siguiente. Distingue entre mayúsculas y minúsculas.

Los valores de los atributos QryType varían en función del tipo de datos del campo. En la siguiente tabla se enumeran los valores de tipo de consulta admitidos que utilizan las API de listas para cada tipo de datos.

Campo DataType Valores de tipo de consulta soportados
Char/VarChar2
  • EQ - Igual a
  • FLIKE-Empieza por
  • LIKE - Contiene
  • GT - Mayor que
  • LT - Menor que
  • NE - No igual a
  • VOID - Nulo
  • NOTVOID - No nulo
Número
  • BETWEEN - Rango de valores
  • EQ - Igual a
  • GE - Mayor o igual a
  • GT - Mayor que
  • LE - Menor o igual a
  • LT - Menor que
  • NE - No igual a
Fecha
  • DATERANGE - Rango de fechas
  • EQ - Equivale a
  • GE - Mayor o igual a
  • GT - Mayor que
  • LE - Menor o igual a
  • LT - Menor que
  • NE - No igual a
Fecha-Hora
  • BETWEEN - Rango de fechas
  • EQ - Equivale a
  • GE - Mayor o igual a
  • GT - Mayor que
  • LE - Menor o igual a
  • LT - Menor que
  • NE - No igual a
Nulo
  • ISNULL - Devuelve registros que son nulos.
  • NOTNULL - Devuelve registros que no son nulos.
Nota: Estos dos tipos de consulta se utilizan cuando la columna o atributo se establece en Nullable en el XML de entidad.
  • Sólo puede haber un elemento bajo el ComplexQuery, a saber, And o Or.
  • Los elementos And o Or pueden tener uno o varios elementos hijo según sea necesario.
  • Los elementos And o Or pueden tener otros elementos de expresión And o Or como elementos hijo.

Este ejemplo se puede interpreta como la expresión lógica siguiente:

( YFS_ITEM.ORGANIZATION_CODE =  'ARGOS'   ) AND ( YFS_ITEM.ITEM_GROUP_CODE =  'PROD'   ) 
AND ( YFS_ITEM.KIT_CODE <>  'BUNDLE'   ) AND  (  (   YFS_ITEM.PRODUCT_LINE =  'DO'   )  
OR  ( YFS_ITEM.PRODUCT_LINE =  'Expert'   )  )

Estos ejemplos explican cómo incluir consultas complejas para obtener los resultados deseados de su base de datos utilizando las API mencionadas.