cancel
Showing results for 
Search instead for 
Did you mean: 

Orden de Fabricación - en la emisión para producción permite consumir producto Bloqueado o Acceso Denegado

0 Kudos

Estimados, tengo el siguiente problema.

Actualmente luego de crear la Orden de Fabricación, se hace la entrega de componentes y a posterior la EMISIÓN PARA PRODUCCIÓN, en este punto el consumo se debe hacer de una bodega en particular, lo cual no impide el consumo de otras bodegas, además también permite hacer consumo de producto con lotes Bloqueado o acceso Denegado, debiendo sólo consumir producto liberado.

Si me pudiese ayudar lo agradecería.

SAP Business One 9.1 (9.10.170) PL: 07  (32-bit)

De igual forma me pasa en la orden de fabricación donde quiero dejar campo obligatorio el de comentarios y el TN no lo realiza.

IF @object_type='202' AND @transaction_type IN ('A','U')

  BEGIN

  IF (SELECT ISNULL (T0.U_ContenidoSaco,'') FROM OWOR T0 WHERE T0.DocEntry=@list_of_cols_val_tab_del) = ''

       BEGIN

       SELECT @error=200,

       @error_message='Prueba de error'

       END

END

Accepted Solutions (1)

Accepted Solutions (1)

bfierro
Active Participant
0 Kudos

Hola. Prueba de la siguiente forma: IF @object_type='202' AND @transaction_type IN ('A','U')   BEGIN   IF EXISTS ( SELECT T0.DocEntry                FROM OWOR T0 WHERE                                  T0.DocEntry=@list_of_cols_val_tab_del               AND ISNULL(T0.U_ContenidoSaco,'') = ''             )       BEGIN       SELECT @error=200,       @error_message='Prueba de error'       END END Sobre la primera consulta podrías subir el transactión que generaste. Saludos

0 Kudos

Gracias por tu tiempo, pero aún me deja actualizar, independiente de la modificación que haga, sigue estando el campo en blanco, no valida que tenga algo escrito para continuar.

Estaba pensando que quizás el Object Type es el incorrecto, ya que en otros documentos en TN no tengo problemas.

bfierro
Active Participant
0 Kudos

Hola. El Objectype esta correcto, ya que es 202. Que tipo de dato es el campo T0.U_ContenidoSaco ?? Saludos

0 Kudos

Es nvarchar, alfanumérico de 200 caracteres.

De igual forma para probar cambie a un campo propio de SBO, el de comentarios (T0.Comments) e igual me deja actualizar.

bfierro
Active Participant
0 Kudos

ok, haber reunamos mas antecedentes, lo que quieres lograr es obligar el llenado de campo T0.U_ContenidoSaco  de la O.F Tabla Owor verdad? para que el usuario al tratar de cerrar la orden y este campo no esta ingresado se active el transaction o el campo a bloquear es de terminal report o Entrega de componentes??. Si puedes subir unas capturas podremos ayudarte de mejor forma. Saludos

0 Kudos

Adjunto la idea original, lo solicitado es debido a que haga lo que haga en el TN igual no me bloquea los campos en blanco lo cual me parece raro, pensé estar haciendo algo mal.

Lo que requiero es condicionar la creación o actualización del documento a raiz ciertas situaciones, es decir, sólo que se pueda crear o modificar por cierto usuario si la bodega es DFF, debido que me están sacando material de bodegas que no corresponde y están descuadrando el inventario quedando en su bodega con más material que el físico y en la que sacan falta material.

Espero explicarme bien, en verdad en un comienzo fue algo enredado, pero lo puntual es que el TN no me está reconociendo las condiciones en el documento.

Nuevamente gracias por la ayuda.

bfierro
Active Participant
0 Kudos

Sorry. estebe con algunos inconvenientes con uno de los servidores dedicados. Volviendo al tema, lo que te recomiendo es que separes los transaction, es decir, crees uno para crear y actualizar(UserSing - Usersing2) respectivmante. Para el caso de la bodega debes hacer el transaction usando la tabla wor1, recorriendo sus filas y desplegando error en caso de que la relacion usuario - bodega este mal Ejemplo: if @object_type='202' begin if @transaction_type ='A' OR @transaction_type ='U' Begin if exists (SELECT * FROM  OWOR T0  INNER JOIN WOR1 T1 ON T0.DocEntry=T1.DocEntry where T1.WhsCode <> 'DFF' AND T0.UserSign in (**TU USUARIO***)  Castro and T0.DocEntry = @list_of_cols_val_tab_del)       begin select @error = 101 select @error_message = 'Debe Seleccionar Bodega (DFF)' goto FinTN end end end Saludos.

0 Kudos

Muchas gracias por tu ayuda.

Modifique el script que me adjuntas según mi necesidad, pero igual no toma la condición entregada, es decir, permite realizar modificaciones a pesar de que por el TN se le diga que no.

(Me llama la atención que hayas escrito "Castro" en la sentencia original que me envias.)

if @object_type='202'

begin

if @transaction_type ='A' OR @transaction_type ='U'

  Begin

  if exists (SELECT * FROM  OWOR T0  INNER JOIN WOR1 T1 ON T0.DocEntry=T1.DocEntry where T1.wareHouse <> 'DFF' AND T0.UserSign = '97' and T0.DocEntry = @list_of_cols_val_tab_del)

begin

select @error = 101 select @error_message = 'Debe Seleccionar Bodega (DFF)'

end

end

end

bfierro
Active Participant
0 Kudos

raro que no funcione. voy a tratar de replicar tu escenario mas tarde. pues en el caso de validar valores nulos el transaction es re sencillo, de echo tengo uno igual y funciona al 100%,  IF @object_type = '202' AND @transaction_type in ('A','U') BEGIN IF EXISTS ( SELECT T0.DocEntry FROM OWOR T0 INNER JOIN OITM T1 ON T1.ItemCode = T0.ItemCode WHERE T0.DocEntry = @list_of_cols_val_tab_del AND   ISNULL(T0.U_OFFO,'') = ''

Saludos

0 Kudos

gracias.

Tambien me parece raro, tengo algunos en otros documentos que funcionan a la perfección, pero en este documento no funcionan, el objecttype está correcto ya que causo error en una sentencia y me arroja error general, por eso es extraño que no funcionen.

Se agradece tu tiempo-

0 Kudos

Estimado muchas gracias por tu cooperación.

Al final las sentencias estaban bien hechas y correctas.

Erra un error de comentar una fila anterior.

gerardo_mendez
Active Contributor
0 Kudos

Disculpa mi intromisión compañero pero veo que fue mucha la ayuda que te proporcionó Boris, recuerda que una manera de agradecer es reputando a quienes te ayudan:

Saludos y que bueno que pudiste solucionar tu detalle.

Buen día.

Answers (0)