Ayuda creacion SP

buen dia. Solicito ayuda con la creación del siguiente SP. El proceso es el siguiente tengo un formulario donde poseo el docentry y un numero de consecutivo con cierto numero de campos, cuando llamo algun consecutivo creado este no debe de permitir modificar ningun campo pero si modifico el numero de consecutivo si debe dejarme guardar los cambios. Gracias

if @object_type in ('ANA_QUI_MP') 
      begin --Objeto Orden de compra
			if @transaction_type in ('A','U')
			begin --Actualización o Creación
			 if (	select COUNT(*)
					from [@ALB_ANA_QUI_MP] T0
					where T0.DocEntry = @list_of_cols_val_tab_del 
					GROUP BY T0.DocEntry, T0.[U_Alb_Conse]
					having T0.[U_Alb_Conse] in (select TA.[U_Alb_Conse] From [@ALB_ANA_QUI_MP] TA where  TA.[U_Alb_Conse] = T0.[U_Alb_Conse]) 
					--and COUNT(*)>1										
				 )>0 
				begin
			
					 set @error= 10
					 set @error_message = '!!!!  ***SP: Ya Existe EL CONSECUTIVO !!!!!!' 
			end
		end
   end

Hola @bunker.

Pasa por favor por #presentaciones y crea un tema nuevo.

Aca, editá el primer mensaje y explica bien qué necesitas hacer.
No está claro lo que estás queriendo lograr.

Saludos

2 Me gusta

Hol@ @bunker:

Bueno de verdad que no entiendo mucho su consulta :laughing: pero por lo que entiendo tienes un formulario en el cual tienes varios campos que no quieres que permitan que se cambien? y solo quieres que permita actualizar el número de consecutivo?
Si es así, es posible que en el modo de actualizar de tu formulario, dejes que los campos que no quieres que sean modificados queden como sólo lectura? Así no sería necesario un Transaction para su procedimiento.

Salud@s :raised_hand_with_fingers_splayed:t5:

hola oscarezh…Gracias, mira si es un formulario creado propio para acá en la empresa, cuando yo llame un registro anteriormente guardado, que si es cambiado algun valor y el docentry y el consecutivo sean iguales no deje actualizar pero si le cambio el consecutivo y algun valor ya guardado anteriormente si me deje actualizar. Gracias por tu apoyo

1 me gusta

@bunker pero entonces distes con la respuesta, lo único que debes hacer es lo que precisamente dices.

Donde tu object type sea ANA_QUI_MP y tu transaction type sea update, solo debes validar que tu docentry y tu número consecutivo sean iguales, de ser así das el error con un mensajes “no se puede actualizar” y bueno en cualquier otro caso si lo permitirá.

Saludos :raised_hand_with_fingers_splayed:t5:

1 me gusta

Gracias… por la respuesta pero es que eso trato de hacer pero he probado esa linea de codigo por todas partes y coloco la condicional pero no me sale la restriccion cuando coloco != me deja actualizar y cuando coloco <> tambien no me aplica no se como mas poder hacer…:sob::sob::sob:

1 me gusta

@bunker y si pones solo = entre tu docentry y tu numero consecutivo que ocurre ?

Buenas tardes…pues plantee de otra manera que me bloquie no poder hacer actualizaciones a un usuario definido el SP me quedo asi

–If @Object_Type = ‘ANA_QUI_MP’ begin
–if @transaction_type in (‘A’,‘U’)
–Begin
–If (Select ‘True’ From [ALBA_PRUEBAS].[dbo].[@ALB_ANA_QUI_MP] T0
– Where T0.U_Alb_Conse =@list_of_cols_val_tab_del and (t0.Creator not in (‘TOCAJO’) )
– ) =‘True’
–Begin
–Set @error=’-1’
–Set @error_message=‘Usuario NO autorizado a realizar ACTUALIZACIONES’
–End
–End
–end

pero no me valida gracias

Hol@ @bunker:

Buenas tardes, en base a tú primera consulta yo haría algo así:

IF @Object_Type = ‘ANA_QUI_MP’ AND @transaction_type = ‘U’
BEGIN
	IF EXISTS (
			SELECT 'Error'
			FROM [@ALB_ANA_QUI_MP] T0
			WHERE T0.DocEntry =@list_of_cols_val_tab_del
			AND T0.DocEntry=T0.U_Alb_Conse 
			)

	BEGIN
		SET @error = 01
		SET @error_message = 'No puede modificar'
	END

END

Ahora bien si quisieras restringir a un usuario, yo haría algo así:


IF @Object_Type = ‘ANA_QUI_MP’ AND @transaction_type = ‘U’
BEGIN
	IF EXISTS (
			SELECT 'Error'
			FROM [@ALB_ANA_QUI_MP] T0
			WHERE T0.DocEntry =@list_of_cols_val_tab_del
			AND T0.Creator='TOCAJO'
			)

	BEGIN
		SET @error = 02
		SET @error_message = 'No esta autorizado para realizar cambios'
	END

END

Saludos :raised_hand_with_fingers_splayed:t5:

2 Me gusta

Buenos dias…Muchas gracias por tu ayuda ya estoy corriendo el codigo…muchas gracias.

Buenos días @bunker,

Recuerde que si su duda ya fue resuelta, marcar una respuesta como solución.

Saludos :raised_hand_with_fingers_splayed:t5: