Deprecated feature

URL de ExpectedInventorySynchronize

Este mandato actualiza registros de inventario esperado para sincronizarlos con un sistema de fondo. Intenta encontrar los registros RADETAIL y RA en la clave primaria o un índice exclusivo para cada uno (consulte las definiciones de las tablas RA y RADETAIL). Si encuentra un registro, lo actualiza con los valores especificados en los parámetros. Si no encuentra un registro, el mandato intenta crear un registro nuevo utilizando los valores especificados en los parámetros. Este mandato no se puede utilizar para actualizar o insertar solo en la tabla RA. Debe utilizarse para actualizar las tablas RA y RADETAIL o solo la tabla RADETAIL.

Este mandato se puede invocar de forma programada o utilizando un URL. Los parámetros tienen un formato EC_XMLOBJECT. La sintaxis permite especificar varios pares de RA y RADETAIL.

Estructura de URL

http:// host_name/path/
El nombre completo de Transaction server y la vía de acceso de configuración.

Este diagrama muestra la estructura para el URL de ExpectedInventorySynchronize.

Valores de parámetros

radetailid
Especifica el ID de RADETAIL para localizar un registro existente y actualizarlo.
raid
Especifica el ID de RA para localizar un registro existente y actualizarlo.
createtime
Especifica la fecha en que se creó el registro.
proveedor
Especifica el nombre del proveedor que proporcionará el inventario.
ffmcenter
Especifica el ID del centro de despacho de pedidos. Este parámetro es necesario si especifica un ID de RA y existen varios centros de despacho de pedido para dicho ID individual.
originalexpecteddate
Se utiliza para localizar un RADETAIL existente cuando se actualiza un registro existente.
partnumber
Especifica el número de pieza del registro de inventario; se utiliza con MEMBERID para localizar un itemspc_id.
externalid
Especifica un identificador externo, facilitado normalmente por el proveedor.
openindicator
Especifica si el inventario esperado se puede recibir y asignar a pedidos en espera (Y), o si no se recibirá más inventario y es posible que el inventario no se asigne a los pedidos en espera (N).
orderdate
Especifica la fecha en que se ha creado el pedido con el proveedor.
dateclosed
Especifica la fecha en que se creó este registro.
radetailcomment
Especifica un comentario.
qtyremaining
Especifica la cantidad de este registro de inventario esperado que todavía se espera que envíe el proveedor. Normalmente, esta cantidad es igual a la cantidad pedida menos la cantidad recibida, pero podría ser diferente si el proveedor no puede enviar la cantidad total. Si no se especifica este parámetro cuando se crea un registro nuevo, de forma predeterminada, su valor es 0.
qtyreceived
Especifica la cantidad de este registro de inventario esperado recibida del proveedor hasta la fecha. Si no se especifica este parámetro cuando se crea un registro nuevo, de forma predeterminada, su valor es 0.
qtyordered
Especifica la cantidad pedida al proveedor en este registro de inventario esperado. Si no se especifica este parámetro cuando se crea un registro nuevo, de forma predeterminada, su valor es 0.
deleteflag
Especifica si se ha de eliminar el RA correspondiente. El valor "1" indica que se deben eliminar las entradas de RA y RADETAIL coincidentes.
expecteddate
Especifica la fecha en que se espera que llegue el inventario. Este parámetro es necesario si van a insertarse registros.
delimiter
Especifica el carácter delimitador que se utiliza para delimitar valores cuando se pasan valores al procedimiento almacenado.
counter
Especifica el número de registros pasados a StoredProcedure. El valor máximo es de 10000. Este parámetro es necesario si se está pasando XML.
memberid
Especifica el ID de miembro utilizado para obtener información de catentry (itemspc_id). Si este parámetro no se pasa, el mandato intenta recuperarlo del contexto de mandato. Este parámetro es obligatorio si el ID de miembro es diferente del propietario de la tienda.

Parámetros de salida

ExpRecsRejected
El número de registros de la entrada que ha sido rechazado.
ExpRecsProcessed
El número de registros de la entrada que ha sido procesado.
ExpRecsInserted
Del número de registros procesado, el número de registros que se ha insertado.
ExpRecsUpdated
Del número de registros procesado, el número de registros que se ha actualizado.
ExpRecsReturnCodes
Un código de retorno para cada registro que se ha incluido en la entrada. Un valor menor que 0 indica que se ha encontrado el error antes de enviarlo para actualizarlo o añadirlo. Son posibles otros valores; si desea ver una lista de los demás códigos de retorno que pueden deberse a una actualización o adición, vea Códigos de error de procedimientos almacenados.
ExpRecsWarnMsgs
Información de mensaje de error.
getRejectedRecords()
El número de registros rechazados debido a que faltan ID de tienda, expecteddate, vendor, partnumber, a que no hay proveedores en la tabla de proveedores y hay partnumbers sin itemspec.
getProcessedRecords()
El número de registros procesado satisfactoriamente.
getExpectedRecordInserted()
El número de registros insertado en la tabla RADETAIL.
getExpectedRecordUpdated()
El número de registros actualizado en la tabla RADETAIL.
getCommandStatus()
Especifica si el mandato se ha ejecutado o no correctamente.
getWarningMessages()
Lista mensajes de aviso para todos los registros rechazados en Vector.

Variables necesarias

Se deben establecer las variables siguientes. Si no están disponibles en el XML de la instancia, no se comprometen hasta que se hayan procesado todos los registros que se han pasado al procedimiento almacenado.

Dado que se está ejecutando el nuevo mandato en la hebra del servlet, dependiendo del número de actualizaciones el rendimiento puede resultar afectado. Para aliviar este problema, puede utilizar los parámetros de instancia ExpRecCounter y ExpCommitFlag para liberar los bloqueos de tabla.

ExpRecCounter
Controla el número de registros procesados antes de un compromiso.
ExpCommitFlag
Controla si el procedimiento almacenado ejecuta un compromiso después del número de actualizaciones especificado.

Ejemplo

http://myhostname/webapp/wcs/stores/servlet/ExpectedInventorySynchronize? <XML> <delimiter>|</delimiter> <counter>100</counter> <synchronizeraitem> <vendor>Store 201 Vendor</vendor> <createtime>2004-01-01-00:00:00.0</createtime> <externalid>VPN1234 567 G</externalid> <orderdate>2004-01-01-00:00:00.0</orderdate> <openindicator>Y</openindicator> <dateclosed></dateclosed> <expecteddate>2004-02-12-00:00:00.0</expecteddate> <originalexpecteddate>2004-01-29-00:00:00.0</originalexpecteddate> <ffmcenter>300</ffmcenter> <partnumber>420X101</partnumber> <qtyordered>50</qtyordered> <qtyreceived>20</qtyreceived> <qtyremaining>28</qtyremaining> <deleteflag>0</deleteflag> <radetailComment>Comment for item 4</radetailComment> </synchronizeraitem> <synchronizeraitem> <radetailid>105670</radetailid> <dateclosed>2004-01-01-00:00:00.0</dateclosed> <qtyremaining>0</qtyremaining> </synchronizeraitem> </XML>

Comportamiento

  • Este mandato inserta registros y actualiza las tablas RA y RADETAIL. Acepta parámetros en XMLOBJECT o a través de las propiedades de la petición. ExpectedInventorySynchronizeCmd llamará a StoredProcedure de SQL (EXPECTEDINV) para que efectúe las inserciones o actualizaciones en las tablas RA y RADETAIL. Para mejorar los resultados de rendimiento, los parámetros para el nuevo procedimiento almacenado SQL se pasan por lotes, separándolos con un delimitador. El procedimiento almacenado analiza los parámetros e inserta registros o actualiza registros en las tablas RA y RADETAIL.
  • El contador es el número de elementos que se han de actualizar en una sola petición de base de datos. En otras palabras, es el tamaño por lotes que se utilizará para controlar el número de registros que se actualizarán en la base de datos al mismo tiempo. Cuanto más elevado sea el número (hasta un máximo de 10000), con más velocidad se ejecutará el mandato pero de este modo puede afectar negativamente el proceso de compras, ya que esta actualización se lleva a cabo en tiempo real. Por lo tanto, si envía, por ejemplo, 10000 registros y counter=500, la petición actualizará los 10000 registros en lotes de 500 cada vez. El valor se debe determinar empíricamente. Aunque es posible enviar 100.000 registros, el contador no debe ser superior a 10000. Esto es debido a que se puede enviar un máximo de 10000 registros a la base de datos con una llamada.

Condiciones de excepción

  • Se generarán excepciones si falta cualquiera de los parámetros necesarios.
  • Todas las demás excepciones o problemas encontrados se comunicarán por medio de los parámetros de salida de anomalía.