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.
- 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).
Ejemplo: añadir consultas complejas en la API getItemList
Considere el siguiente escenario para añadir consultas complejas a la getItemList API.
<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
ComplexQuerybajo un mismo elemento. Por ejemplo, no puede tener dos operadoresComplexQuerybajo un elemento Item. - No puede añadir una consulta compleja en dos tablas diferentes. Por ejemplo, en la getShipmentList API no se pueden utilizar
ChainedFromOrderHeaderKeyyShipmentLineNoen la misma consulta, ya que el primero pertenece a laYFS_ORDER_LINEtabla y el segundo es un atributo de laYFS_SHIPMENT_LINEtabla. - 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 |
|
| Número |
|
| Fecha |
|
| Fecha-Hora |
|
| Nulo |
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,AndoOr. - Los elementos
AndoOrpueden tener uno o varios elementos hijo según sea necesario. - Los elementos
AndoOrpueden tener otros elementos de expresiónAndoOrcomo 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.