Consultar lotes existentes mediante DI API


#1

Buen día expertos,

Estoy desarrollando una página web para realizar transferencias de stock entre distintos almacenes, sin necesidad de que los usuarios utilicen la interfaz de SAP.

Ya tengo la base, sin embargo, me topé con un problema que no he conseguido resolver. Al momento de especificar el lote del material que se va a tomar para hacer el traspaso, tengo que ingresarlo manualmente debido a que no he encontrado referencias por la web de cómo extraer esta información por medio de una consulta o query. El objetivo es que el usuario tenga una lista desplegable con los lotes disponibles del material seleccionado, para que pueda escoger cuál se moverá.

Alguien tendrá algún ejemplo o idea de cómo obtener estos datos? Actualmente estoy utilizando lenguaje C# / ASP.NET

Gracias de antemano! Saludos cordiales.


#2

Por performance no te recomiendo que utilices un objeto de lote o serie para buscar lo disponible, te recomiendo que utilices el recordset y busques lo disponible directo en las tablas,
Maestro de serie OSRN
Maestro de lote OBTN
Si quieres saber lo disponible te sugiero que utilices la siguiente query.
–Disponible lote
SELECT * FROM OBTQ T0 WHERE T0.Quantity > 0 AND T0.WhsCode = ‘BODEGA’ AND T0.ItemCode = ‘ITEM’
–Disponible serie
SELECT * FROM OSRQ T0 WHERE T0.Quantity > 0 AND T0.WhsCode = ‘BODEGA’ AND T0.ItemCode = 'ITEM’
Obviamente tienes que arreglarla un poquito para sacarle mayor provecho.


#3

Hola @Panxulo muchas gracias por tu respuesta, ejecuto el primer query que me proporcionas, y me extrae la cantidad de piezas de cada lote disponible:

Hay forma de que con ésto o con un subquery se pueda obtener el número de lote como tal? Para mi ejemplo serían:

Gracias de antemano por tu apoyo.


#4
SELECT
	T0.ItemCode
	, T0.DistNumber
	, T0.MnfSerial
	, T1.Quantity
	, T1.WhsCode
FROM OBTN T0
INNER JOIN OBTQ T1 ON T0.ItemCode = T1.ItemCode AND T0.SysNumber = T1.SysNumber
WHERE T1.Quantity > 0 AND T1.WhsCode = 'BODEGA' AND T1.ItemCode = 'ITEM'

#5

Señor @Panxulo es usted un santo, era justo lo que necesitaba muchas gracias!!

En términos de performance, ésta opción es óptima verdad? es decir, en runtime no demora más de uno o dos segundos en ejecutarse.


#6

Depende de cuantas lineas sean, pero para el server traer mas de 10 mil lineas es cosa de 1 segundos, pero si quieres mostrar 10 mil lineas en la web, todo depende del cliente y su maquina.


#7

Ah no en mi caso siempre serán máximo 20, sólo quería estar seguro que el proceso fuera fluido.

De nuevo muchas gracias por tu apoyo y tiempo.


#8

Este tema se cerró automáticamente 7 días después del último post. No se permiten nuevas respuestas.