Venta de productos reservados? - SAP B1

Buenas a todos,

Antes que nada soy completamente nuevo y estoy empezando en el mundo, ni si quiera me han dado el acceso aun al SAP B1 de la empresa así que simplemente me encuentro estudiando.

La cosa es que ultimamente me estan comentando muchos de los problemas que tienen en la empresa con SAP B1 como si ya supiera hacer de todo y hay uno de ellos que no llego a entender bien.

Según el temario que he estudiado si un cliente hace un orden de compra el stock pasa a estar “reservado”, pero según me comentan en la empresa, eso no ocurre asi. Es decir:

Stock total: 10 ordenadores
Cliente 1: Pide 8 ordenadores para dentro de una semana, se le confirma.
Cliente 2: Pide 5 de esos ordenadores para hoy mismo, se le confirma.

Pasa una semana y llega el dia de enviar el pedido al cliente 1, resulta que no tenemos tanto ordenadores porque se vendieron antes a un cliente aunque su orden ya estaba confirmada por lo cual solo se le pueden enviar 5 que es lo que nos queda.

No se si me he explicado bien, como os comento voy bastante perdido en el mundo y nadie dentro de la empresa sabe explicarme nada de SAP. Pero su gran problema es que se roban el stock entre los cliente.

Esto puede ser un error a la hora de crear las ordenes de compra? No entiendo como puede disponer de un stock para otro cliente cuando realmente esta "reservado?

Por ultimo, gracias por leerme y si es una tontería o no he sido lo suficientemente claro lo siento mucho, cualquier ayuda la valoraría muchísimo y nada mas, muchas gracias por todo :slight_smile:

Hola,

Bienvenido a esta gran comunidad. Antes que nada es importante tener en cuenta que la reserva de stock en SAP no impide de manera nativa que el stock sea vendido a otro cliente. La reserva simplemente indica que se espera que ese stock se utilice para un propósito específico en el futuro.

Si en tu empresa desean evitar que el stock se “robe” entre clientes, es necesario revisar y posiblemente cambiar la forma en que se manejan las reservas de stock. Esto implica cambios en los procesos del negocio o la formación del personal que en tu caso parece ser más que relevante por la falta de conocimiento, indiferencia o capacitación.

¿Es posible que el sistema lo bloquee? Sí, con un “Transaction Notification” debería ser posible. Aunque dependerá de tus conocimientos de SQL y entender como se “mueven” los datos en el sistema.

Un ejemplo sería algo así:

IF @object_type = '17' AND @transaction_type IN ('A', 'U')
BEGIN
    DECLARE @DocEntry INT
    SET @DocEntry = (SELECT DocEntry FROM ORDR WHERE DocNum = @list_of_cols_val_tab_del)

    DECLARE @ItemCode NVARCHAR(20), @Quantity NUMERIC(19, 6), @OnOrder NUMERIC(19, 6)
    DECLARE cur CURSOR FOR 
        SELECT ItemCode, Quantity FROM RDR1 WHERE DocEntry = @DocEntry
    OPEN cur
    FETCH NEXT FROM cur INTO @ItemCode, @Quantity

    WHILE @@FETCH_STATUS = 0
    BEGIN
        SET @OnOrder = (SELECT OnOrder FROM OITM WHERE ItemCode = @ItemCode)
        IF @Quantity > @OnOrder
        BEGIN
            SET @error = 1
            SET @error_message = N'No hay suficiente cantidad reservada para el artículo ' + @ItemCode
            BREAK
        END
        FETCH NEXT FROM cur INTO @ItemCode, @Quantity
    END
    CLOSE cur
    DEALLOCATE cur
END

Lo anterior funcionaría cuando se añade o se actualiza una orden de venta “el tipo de objeto 17” en SAP. Así para cada línea en la orden de venta, comprueba si la cantidad solicitada es mayor que la cantidad “OnOrder” <> del artículo. Si es así, bloquea la transacción y muestra un el mensaje de error. Faltarían más pasos si no sabes donde ejecutarlo y demás.

Te recomiendo preguntar si su mantenimiento anual está vigente, en caso afirmativo tendrías la ventaja de tener un soporte del proveedor, de lo contrario necesitas buscar soporte de terceros como este foro.

1 me gusta

Perdon por no responder tarde, llevo unas semanas fuera por trabajo. Dicho hecho infinitas gracias por la respuesta, como se diria estoy mas perdido que un pulpo en un garaje con el tema de SAP y sin nadie que me ayude en la empresa. Asi que voy avanzando bastante mas lento de lo que pensaba.

Como aun no he entrado en SQL solo estoy viendo el apartado de usuario me guardo el codigo para mas adelante poder aplicarlo.

Mientras tanto por fin me han dado acceso al SAP de la empresa, y estoy haciendo mis primeros procesos, entre ellos las ordenes de compra y asi he podido ver un poco como funciona todo. Queria hacer otra pregunta relacionada a ver si puedo ir aclarando dudas que me salen.

Yo cuando planifico una orden de compra veo algo tal que asi:

imagen

Según la instrucciones de la empresa, para hacer una orden de compra solo me tengo que fijar en “Qty in Whse” e intentar dejar margen del total (Si hay 30 unidades pedir 15 para evitar errores). En el producto 1 lo tengo claro, tengo 26 unidades en warehouse y esas 26 estan comitted, asi que no debo de pedir ninguna porque realmente no tengo. Mi duda viene en el segundo, tengo 12k pero 26k estan comitted pero realmente 11k estan comitted en el almacen. A lo que si pregunto a la empresa me dicen que puedo pedir unas 3000 si quiero. No se si estoy equivocado pero lo que yo podria enviar sin afectar a otros pedidos el “Qty in Whse” - “Commited Qty in Whse”??

Lo siento de verdad si mis preguntas son muy tontas o algo, porque en el foro veo que hay nivel, pero es que siendo sincero no se a quien recurrir, estoy haciendo el curso de la propia pagina de SAP y dentro de poco empezare a estudiar SQL, asi que si teneis cualquier curso o formación que recomendéis ya sea de pago o gratis y me la podeis pasar estaría infinitamente agradecido jeje.