Bloqueo de campos con procedimiento

Buenos días Estoy realizando un procedimiento para evitar que algunos usuarios editen el registro de socios comerciales. Un procedimiento se ejecuta sin errores, sin embargo cuando intento validar en SAP al cambiar un campo aparece un mensaje de error que no se esperaba y cuando intento cambiar campos que aún no están siendo validados en el procedimiento no puedo. Si comento la tabla SELECT CRD1 y la tabla ACR1, un procedimiento funciona, pero necesito continuar validando los otros campos.

IF (: iErrorCode = 0 ) AND (: sObjTyp = '2' ) AND (: sTraTyp = 'U' ) ENT & Atilde ; O         
   SELECIONE
		IFNULL ( pn . "CreditLine", 0), 
		IFNULL ( pn . "GroupNum", 0), 
                              ( pn . "CardType"), 
                              ( pn . "CardName"), 
	        IFNULL ( pn . "CardFName", ''), 
                              ( pn . "Telefone1"), 
                              ( pn . "Telefone2"), 
                              ( pn . "Celular"), 
	        IFNULL ( pn . "E_Mail", ''), 
                              ( pn . "CmpPrivate")
 INTO LimiteCred ,  CondPagto , Tipo , NomePN , NomeEstrangeiro , Tel1 , Tel2 , Cel , Email , TipoPN
	DE "OCRD" pn 
	ONDE pn . "CardCode" =: sKeyVal; 
	
	SELECIONE O TOP 1 
		IFNULL ( pn . "CreditLine", 0), 
		IFNULL ( pn . "GroupNum", 0), 
                              ( pn . "CardType"), 
                              ( pn . "CardName"), 
		IFNULL ( pn . "CardFName", ''),
                               ( pn . "Telefone1"), 
                              ( pn . "Telefone2"), 
                              ( pn . "Celular"), 
		IFNULL ( pn . "E_Mail", ''),
                              ( pn . "CmpPrivate")    
		       
		        
		       
		       
		        
		       
		INTO OldLimiteCred , OldCondPagto , OldTipo , OldNomePN , OldNomeEstrangeiro , OldTel1 , OldTel2 , OldCel , OldEmail , OldTipoPN
	DE "ACRD" pn 
	ONDE pn . "CardCode" =: sKeyVal ORDER BY pn . "LogInstanc" DESC; 
	  
		
		
		SELECIONE
        IFNULL ( pn . "Endereço & ccedil; o & ccedil; o", ''), 
        IFNULL ( pn . "Rua", ''), 
        IFNULL ( pn . "Bloco", ''), 
        IFNULL ( pn . " Código Postal ", ''), 
        IFNULL ( pn . " Cidade ", ''), 
        IFNULL ( pn . " Condado ", ''), 
        IFNULL ( pn . " Estado ", ''),
        IFNULL ( pn . "Edif & iacute; cio", ''), 
        IFNULL        ( pn . "Endereço & ccedil; o & ccedil; o2", ''), 
        IFNULL ( pn . "Endereço & ccedil; o & ccedil; o3", ''), 
        IFNULL ( pn . "AddrType", '') , 
        IFNULL ( pn . "StreetNo", '') INTO Endereco1 , Rua , Quadra , Cep , Cidade , Munic & iacute ; pio , Estado , Predio , Endereco2 ,    
      TipoEnd , Numero
        DE "CRD1" pn	 
	    ONDE pn . "CardCode" =: sKeyVal; 
	    
	    
	  SELECIONE O TOP 1 
        IFNULL ( pn . "Endereço & ccedil; o & ccedil; o", ''), 
        IFNULL ( pn . "Rua", ''), 
        IFNULL ( pn . "Bloco", ''), 
        IFNULL ( pn . "ZipCode", ''), 
        IFNULL ( pn . "Cidade", ''), 
        IFNULL ( pn . "Condado", ''), 
        IFNULL ( pn . "Estado",''), 
        IFNULL ( pn .          "Edif & iacute; cio", ''), 
        IFNULL ( pn . "Endereço & ccedil; o & ccedil; o2", ''), 
        IFNULL ( pn . "Endereço & ccedil; o & ccedil; o3", '' ), 
        IFNULL ( pn . "AddrType", ''), 
        IFNULL ( pn . "StreetNo", '') INTO OldEndereco1 , Old Street , OldQuadra , OldCep , OldCidade , OldCounty , OldEstado ,OldPredio , OldEndereco2 ,    
	  OldEndereco3 , OldTipoEnd , OldNumero
        DE "ACR1" pn	 
		ONDE pn . "CardCode" =: sKeyVal; 
		
		
		
	( SELECIONE t0 . "USER_CODE" INTO usuario 
		DE "OUSR" T0 onde t0. "USERID" = ( SELECIONE IFNULL ( t1 . "UserSign2", t1. "UserSign") 
			 DE "OCRD" t1 ONDE t1. "CardCode" =: sKeyVal ) ); 
			 
			 
	
	
	IF (( LimiteCred <> OldLimiteCred ) OU ( CondPagto <> OldCondPagto ) OU ( Tipo <> OldTipo ) OR ( NomePN <> OldNomePN ) 
	     OU ( NomeEstrangeiro <> OldNomeEstrangeiro ) OU ( Tel1 <> OldTel1 ) OU ( Tel2 <> OldTel2 ) OU ( Cel <> OldCel ) 
	     OU       ( Email <> OldEmail ) OU ( TipoPN <> OldTipoPN ) OU ( Endereco1 <> OldEndereco1 ) OU ( Rua <> Old Budap ) OR ( Quadra <> OldQuadra ) OU ( Cep <> OldCep ) OU ( Cidade <> OldCidade ) OU ( Condado <> OldCounty ) OU ( Estado <>  
	            OldEstado ) OU ( Predio <> OldPredio ) OR ( Endereco2 <> OldEndereco2 ) OU ( Endereco3 <> OldEndereco3 ) OU ( TipoEnd <> OldTipoEnd ) OU ( Numero <> OldNumero )) 
	     ENT & Atilde ; O  
	           
	
		- IF ( usuario <> 'gerente' AND usuario <> 'n.brito' AND usuario <> 'p.rolim' AND usuario <> 'c.santos' ) ENT & Atilde ; O IF ( usuario <> 'n.brito' AND usuario <> 'p.rolim' AND usuario <> 'c.santos' / * AND usuario <> 'gerente'         
		             O 
			iErrorCode : = '21' ; 
			sErrorMessage : = 'Usu & aacute; rio sem permiss & atilde; o para alterar o cadastro do PN. ' ; 		
		FIM SE ; 
	FIM SE ; 
FIM SE ;

Error en SAP B1

[SAP AG] [LIBODBCHDB] [HDBODBC] Erro geral; 1300 busca retorna mais do que o número solicitado de linhas: erro da tabela de pesquisa: “TESTE-INDUSTRIA”, “SBO_SP_TRANSACTIONNOTIFICATION”: linha 38 col 4 (na pos 1186): [1300] (intervalo3) buscar retorna mais do que requeste …

Seguí el camino
"TESTE-INDUSTRIA", "SBO_SP_TRANSACTIONNOTIFICATION": linha 38 col 4 " y me encontré con esto:

IF: error = 0 THEN CALL "P_PS" (: object_type,: transaction_type,: num_of_cols_in_key,: list_of_key_cols_tab_del,: list_of_cols_val_tab_del, error, error_message); FIM SE;

No sé cómo proceder. ¿alguien me puede ayudar?

Este tema se cerró automáticamente 30 días después de la última publicación. No se permiten nuevas respuestas.