on 11-26-2009 10:07 PM
Buenas tardes a todos!!!
Estoy intentando crear una restriccion por Transaction_Notification para que los usuarios no puedan cerrar las órdenes de fabricacion si las líneas no están completamente consumidas; la consulta que estoy usando es la siguiente:
if @object_type in('68') AND @object_type IN ('L') begin
IF (SELECT COUNT(*)
FROM OWOR T0
INNER JOIN WOR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.[IssuedQty] <> T1.PlannedQty AND
T0.DocEntry=@list_of_cols_val_tab_del)>0
BEGIN
Set @error=10
Set @error_message= '**** '
END
end
Ya probé varios cambios en el Query pero no me funciona, me podrían ayudar con ésto? Les agradezco la ayuda.
SALUDOS!!!
Cambia tu codigo asi
if @object_type in('68') AND @transaction_type IN ('L') --es transaction_type
begin
IF (SELECT COUNT(*)
FROM OWOR T0
INNER JOIN WOR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.IssuedQty T1.PlannedQty AND
T0.DocEntry=@list_of_cols_val_tab_del)>0
BEGIN
Set @error=10
Set @error_message= '**** '
END
end
--e intentalo asi tambien
if @object_type in('68') AND @transaction_type IN ('L') --es transaction_type
begin
declare @cuenta as char(1)
set @cuenta =(SELECT COUNT(*)
FROM OWOR T0
INNER JOIN WOR1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T1.IssuedQty T1.PlannedQty AND
T0.DocEntry=@list_of_cols_val_tab_del)
if @cuenta>0
BEGIN
Set @error=10
Set @error_message= '**** '
END
end
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Muchas Gracias por la respuesta pero sigo con el inconveniente; si paso la orden de planificada a liberada y luego a cerrada (sin consumir ningún producto) La orden de producción sigue cerrándose haciendo caso omiso al SP. Será que no estoy considerando algo?
Gracias por la ayuda que me puedan prestar.
Hola...
En alguna oportunidad me dijeron que se no había ninguna validación de SAP Business One, para aquellos casos en que se podía cerrar una OF, aún cuando puede que no tenga una Entrega de Componentes (Salida de Mercaderías - Materias Primas) o un Recibo de Producción (Entrada del Producto Terminado a Almacén).
Frente a este escenario, se creó el siguiente código en Transaction Notification...
OBJETIVO:
No permitir que pueda cerrarse una Orden de Fabricación que no tenga asociados los procesos de Entrega de Componentes y Recibo de Producción.
IF (@object_type ='202' and @transaction_type = 'U')
u2013-- Objeto 202 corresponde a la orden de Fabricación, U (Update), corresponde al proceso de actualización de la misma)
BEGIN
IF (SELECT Status FROM OWOR WHERE DocEntry = @list_of_cols_val_tab_del) = 'L'
--- Si el estado del documento es Cerrado
BEGIN
IF (((SELECT CmpltQty FROM OWOR WHERE DocEntry = @list_of_cols_val_tab_del)= '0')
or ((SELECT SUM(T0.IssuedQty) FROM WOR1 T0 INNER JOIN OWOR T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocEntry = @list_of_cols_val_tab_del)= '0'))
--- Si la Cantidad Completada (CABCECRA) es igual a cero, o si la Cantidad Consumida (DETALLE) es igual a cero
BEGIN
SET @error=1
SET @error_message = 'Falta algún paso, Entrega de Componentes o Recibo de Producción'
--- Muestre el mensaje indicando que falta algún paso de los señalados
END
END
END
Desconozco si es exactamente lo que necesitas, me parece mucho que si te puede servir, pero si no fuere el caso, puedes tomarlo como base para tu requerimiento.
Apliqué este mismo SP con el Objeto 68, y no lo toma....
Espero te sea de ayuda
Saludos Cordiales,
Hola...
En alguna oportunidad me dijeron que se no había ninguna validación de SAP Business One, para aquellos casos en que se podía cerrar una OF, aún cuando puede que no tenga una Entrega de Componentes (Salida de Mercaderías - Materias Primas) o un Recibo de Producción (Entrada del Producto Terminado a Almacén).
Frente a este escenario, se creó el siguiente código en Transaction Notification...
OBJETIVO:
No permitir que pueda cerrarse una Orden de Fabricación que no tenga asociados los procesos de Entrega de Componentes y Recibo de Producción.
IF (@object_type ='202' and @transaction_type = 'U')
u2013-- Objeto 202 corresponde a la orden de Fabricación, U (Update), corresponde al proceso de actualización de la misma)
BEGIN
IF (SELECT Status FROM OWOR WHERE DocEntry = @list_of_cols_val_tab_del) = 'L'
--- Si el estado del documento es Cerrado
BEGIN
IF (((SELECT CmpltQty FROM OWOR WHERE DocEntry = @list_of_cols_val_tab_del)= '0')
or ((SELECT SUM(T0.IssuedQty) FROM WOR1 T0 INNER JOIN OWOR T1 ON T0.DocEntry = T1.DocEntry WHERE T0.DocEntry = @list_of_cols_val_tab_del)= '0'))
--- Si la Cantidad Completada (CABCECRA) es igual a cero, o si la Cantidad Consumida (DETALLE) es igual a cero
BEGIN
SET @error=1
SET @error_message = 'Falta algún paso, Entrega de Componentes o Recibo de Producción'
--- Muestre el mensaje indicando que falta algún paso de los señalados
END
END
END
Desconozco si es exactamente lo que necesitas, me parece mucho que si te puede servir, pero si no fuere el caso, puedes tomarlo como base para tu requerimiento.
Apliqué este mismo SP con el Objeto 68, y no lo toma....
Espero te sea de ayuda
Saludos Cordiales,
Muchas, pero MUCHAS gracias!!! El inconveniente lo pude resolver y la verdad no sé porqué me aparece en el objects Id la Orden de fabricación como la 68; sin embargo la ayuda fue exacta y valiosa.
Cordial saludo.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
98 | |
11 | |
11 | |
6 | |
6 | |
4 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.