Ayuda SAP

Evitar que eliminen Anexos a Orden de compra Aprov


#1

Estimados,

Queria buscar la manera de evitar que usuarios puedan eliminar el anexo de una orden de compra. ya que hoy realizamos la prueba y se presta a que el usuario modifique el anexo. evitar que eliminen el anexo de la orden de compra autorizada, tambien puede pasar el caso de que agreguen anexos.Atento a sus comentarios

Saludos

Armando Parejo


#2

mmm podrias probar con un transaction, podria ser que solo se ejecute cuando se actualice esa parte


#3

el código para evitar que modifiquen una linea, si me puedes orientar


#4

no lo tengo realizado, pero se me ocurrio que esa podria ser una manera de bloquear que actualicen los anexos una vez agregados


#5

Los adjuntos estan en la tabla ATC1, con eso deberias usar el transaction notification para detectar cambios y crear el bloqueo.

Esta es la forma de relacionar OPOR con ATC1:

FROM OPOR a
INNER JOIN  ATC1 a1 on a.AtcEntry =a1.AbsEntry

Saludos,


#6

Gracias Willy, lo que no se es como hacer la consulta para que no modifique el anexo, ejemplo que no lo borre de la lista de anexos y lo cambie por otro, Saludos


#7

Intenta de esta manera:

IF @transaction_type =‘U’ AND @object_type = ‘22’
Begin

Select T1.trgtPath from OPOR T0
INNER JOIN  ATC1 T1 on T0.AtcEntry =T1.AbsEntry  where T1.trgtPath is not null  and DocEntry=@list_of_cols_val_tab_del
Begin

set @error=-2
set @error_message='No Puede Eliminar el Anexo'
End

#8

America,

mil gracias lo pruebo y te respondo

Saludos


#9

Tengo Hana. lo hice de esta manera pero me falta algo por que no funciona. les copio el código para quien pueda ayudar.Saludos
BEGIN

DECLARE ANEXO VarChar(20);

ANEXO  :='X';

IF :ObjType=‘1470000113’ OR
:ObjType=‘112’ OR
:ObjType='22’THEN

---------DIMENSION 1


SELECT (IFNULL((
            SELECT TOP 1 IFNULL(T1."trgtPath",' ')
				FROM OPOR T0 INNER JOIN ATC1 T1 ON T0."AtcEntry"=T1."AbsEntry"
							WHERE   T0."DocEntry"=:ObjKey 
				
	    ),'X'))
INTO ANEXO FROM DUMMY;
ANEXO  := IFNULL(:ANEXO,'X');

END IF;

IF :ANEXO = ‘’
THEN

TN_Error := IFNULL(:NumError,1000);
SELECT CASE WHEN :ANEXO= ‘’ THEN ‘NO PUEDE ELIMINAR ANEXO’

                         ELSE :MsjError END INTO TN_Message FROM DUMMY;

END IF;