Tipos de API
Una API procesa registros basados en valores de atributos clave, procesando registros con una clave primaria primero. Si la clave primaria no se encuentra, la API busca las claves lógicas y, a continuación, procesa estos registros. Por ejemplo, la API ChangeOrder() busca primero el atributo clave OrderHeaderKey y después la combinación de los atributos clave OrderNo y EnterpriseCode.
API select
Normalmente con el prefijo "get," las API select devuelven un registro para una entidad (por ejemplo, la API getOrderDetails() devuelve los detalles de un pedido). No actualice la base de datos.
Dado que las API select sólo devuelven un registro, requieren que se pasen atributos de clave exclusivos en el XML de entrada. Si un atributo de clave exclusivo no pasa en el XML de entrada, la API utiliza blancos para estos atributos en los criterios para seleccionar el registro. Puede haber más de una combinación de claves exclusivas y en dicha combinación, debe pasar una de las múltiples combinaciones.
Por ejemplo, un pedido se identifica de forma exclusiva mediante el atributo de clave OrderHeaderKey o mediante una combinación de los atributos OrderNo y EnterpriseCode . Por consiguiente, cuando llama a la API getOrderDetails(), debe pasar el atributo
OrderHeaderKey o la combinación de los atributos de clave OrderNo, EnterpriseCode
y DocumentType. Si sólo pasa OrderNo, la API devuelve la orden que coincide con
OrderNo y tiene un código de empresa en blanco. Para identificar las combinaciones de claves exclusivas para cada API, consulte el Javadoc.
Sin embargo, la API getOrderDetails( ) utiliza un select para la actualización en YFS_ORDER_HEADER para que sus procesos internos como salidas de usuario, eventos, etc., tienen un bloqueo en los elementos de orden mientras la hebra que trabaja en ella está activa. Esto permite mantener una memoria caché de transacciones hasta la confirmación final. Por ello, necesita evitar utilizar transacciones anidadas para superar el mecanismo de bloqueo realizando lo siguiente:
- Confirme o retrotraiga únicamente una vez para todos los sucesos de la orden. Tenga en cuenta que todos los sucesos están establecido en retrotracción si uno de ellos falla.
- Seleccione la orden para cada suceso y proceso. Asimismo, tenga en cuenta que si la antigüedad de las órdenes que tienen varios sucesos es superior, el rendimiento se podría ver afectado.
API List
Normalmente con el prefijo "get," las API list devuelven una lista de los registros para una entidad que coinciden con los criterios especificados en el XML de entrada, por ejemplo, la API
getOrderList() devuelve una lista de órdenes. Si algún atributo en el XML de entrada tiene un valor en blanco, se pasa por alto. Las API list no actualizan la base de datos. También puede obtener los datos paginados de una API list llamando a la API getPage y pasando la API list como entrada a la API getPage. Para obtener más información sobre la API de getPage , consulte el Javadoc.
API update
Las API update insertan nuevos registros en la base de datos. También modifican o suprimen registros existentes en la base de datos. Las API update que modifican o suprimen registros existentes utilizan la misma lógica que las API select para identificar qué registros hay que actualizar. Si no se encuentra ningún registro, las API update generan una excepción.