cancel
Showing results for 
Search instead for 
Did you mean: 

orden de fabricacion

Former Member
0 Kudos

hola a todos

alguien me podria ayudar

necesito que en la orden de fabricacion una vez emitida y aunque este en planificada

o liberada un usuario no pueda modificar la cantidad planificada

y si pueda entregar componentes

gracias de antemano por tu ayuda

envio on tn que tengo ahorita para las ordenes

if (select COUNT(*)

   from AWOR t1 where t1.DocEntry = @DocEntry)>0 begin

 

  

  select @statushist=t1.status,   @PlannedQtyHist = t1.PlannedQty 

    from AWOR t1

     where t1.DocEntry = @DocEntry

       and t1.LineDirty = (select top 1  (t2.LineDirty)  from AWOR t2

       where t2.DocEntry = @DocEntry

       order by t2.LineDirty desc)

     

    

       if @Estatus = 'P' AND @statushist ='R'

         

            BEGIN

                Set @error = 5

                Set @error_message = 'OPR - IMPOSIBLE MODIFICAR STATUS  DE ORDEN-5'

            End

          

         if (@Estatus ='P' OR @Estatus ='R') and @PlannedQtyHist <>@PlannedQty AND

         

            BEGIN

            Set @error = 4

            Set @error_message = 'OPR - IMPOSIBLE MODIFICAR CANTIDAD EN ORDEN LIBERADA-4'

        End    

end   

Accepted Solutions (1)

Accepted Solutions (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

Acabo de hacer una comparacion entre 8.81 y 8.82 y en la ultima no es necesario hacer la tabla TEMP porque el problema del log de modificaciones esta solucionado

Tu TN solo debe quedar así

IF @object_type=202 AND @transaction_type='U' AND (SELECT T0.UserSign2 FROM OWOR T0 WHERE T0.DocEntry=@list_of_cols_val_tab_del)IN (Usuario a bloquear)

BEGIN

          DECLARE

                    @log SMALLINT,

                    @CantP NUMERIC(19,6),

                    @CantH NUMERIC(19,6)

 

          SET @log=(SELECT MAX(Y.LogInstanc) FROM AWOR Y WHERE Y.DocEntry=@list_of_cols_val_tab_del)

          SET @CantP=(SELECT A.PlannedQty FROM OWOR A WHERE A.DocEntry=@list_of_cols_val_tab_del)

          SET @CantH=(SELECT B.PlannedQty FROM AWOR B WHERE B.DocEntry=@list_of_cols_val_tab_del AND B.LogInstanc=@log)

          IF (SELECT COUNT(*) FROM AWO1 Z WHERE Z.DocEntry=@list_of_cols_val_tab_del)!=''

          BEGIN

                    IF

                    (SELECT SUM(T0.PlannedQty)+@CantP

                    FROM WOR1 T0

                    WHERE T0.DocEntry=@list_of_cols_val_tab_del)

                    !=

                    (SELECT SUM(T0.PlannedQty)+@CantH

                    FROM AWO1 T0

                    WHERE T0.DocEntry=@list_of_cols_val_tab_del AND T0.LogInstanc=@log)

 

                    BEGIN

                              SELECT @error=-202, @error_message='-202 NAT, No puede modificar las cantidades planificadas'

                    END

          END

END

IF @object_type=202 AND @transaction_type='U' AND (SELECT T0.UserSign2 FROM OWOR T0 WHERE T0.DocEntry=@list_of_cols_val_tab_del)IN (Usuario a bloquear)

BEGIN

          IF (SELECT A.[Status] FROM OWOR A WHERE A.DocEntry=@list_of_cols_val_tab_del)='P'

          BEGIN

 

                    DECLARE

                              @StatO CHAR(1),

                              @StatH CHAR(1)

                    SET @StatO = (SELECT A.[Status] FROM OWOR A WHERE A.DocEntry=@list_of_cols_val_tab_del)

                    SET @StatH = (SELECT V.[Status] FROM AWOR V WHERE V.DocEntry=@list_of_cols_val_tab_del AND V.LogInstanc=@log)

 

                    IF @StatH!=@StatO

                    BEGIN

                              SELECT @error=-204, @error_message='-202 STA, No puede cambiar el estado de liberado a planificado'

                    END

          END

END

Saludos

Former Member
0 Kudos

MUCHAS GRACIS FELIPE

Answers (1)

Answers (1)

felipe_loyolarodriguez
Active Contributor
0 Kudos

¿Que versión de SAP utilizas?

Former Member
0 Kudos

version 8.82 pl 4