ERRO : FRM-40735 (ORACLE FORMS)

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
elciodba
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 76
Registrado em: Sex, 31 Out 2008 4:30 pm
Localização: belo horizonte-mg

SITUAÇÃO : TENHO UM BLOCO FUNCIONANDO NORMAL QUANDO EU TENTO INSERIR MAIS UM CAMPO NO BLOCO ELE GERA O ERRO:

Selecionar tudo

FRM-40735  - o gatilho WHEN-BUTTON-PRESSEND levantou a exeção ORA-06502 não manipulada
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

o que tem dentro dessa trigger ?
(when button pressed)
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Complementando, verifique a ausência (ou não) de exception neste Trigger e, se puder, mande o código pra gente.
elciodba
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 76
Registrado em: Sex, 31 Out 2008 4:30 pm
Localização: belo horizonte-mg

------ Ao inserir qualquer campo no BLOCO ele chama a trigger WHEN-BUTTON-PRESSED e gera exçessao : nessa parte do codigo

Selecionar tudo

	    IF(:FILA_ANALISE_BACKOFFICE.CPF_CGC IS NOT NULL)THEN
        :FILA_ANALISE_BACKOFFICE.CPF_CGC := '%' || :FILA_ANALISE_BACKOFFICE.CPF_CGC || '%';
	    ELSE
	    	:FILA_ANALISE_BACKOFFICE.CPF_CGC := '%';
      END IF;
que esta abaixo.

Selecionar tudo

---------------------------------------------------------
DECLARE
  BUTTON_NAME VARCHAR2(61);
  BUTTON      VARCHAR2(31);
  CAMPO       VARCHAR2(50);
  V_FORMAT    VARCHAR2(20);
	N_CPF_CGC NUMBER;

  PROCEDURE PC_HABILITA(B_HABILITA BOOLEAN)IS
  BEGIN
	  IF(B_HABILITA)THEN
	    SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNPRIMEIRO'  ,ENABLED,PROPERTY_TRUE);
      SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNANTERIOR'  ,ENABLED,PROPERTY_TRUE);
      SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNPROXIMO'   ,ENABLED,PROPERTY_TRUE);
      SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNULTIMO'    ,ENABLED,PROPERTY_TRUE); 
	  ELSE
	    SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNPRIMEIRO'  ,ENABLED,PROPERTY_FALSE);
      SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNANTERIOR'  ,ENABLED,PROPERTY_FALSE);
      SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNPROXIMO'   ,ENABLED,PROPERTY_FALSE);
      SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNULTIMO'    ,ENABLED,PROPERTY_FALSE); 
	  END IF;	
	END;
  
BEGIN
  BUTTON_NAME := NAME_IN('SYSTEM.TRIGGER_ITEM');
  BUTTON      := SUBSTR(BUTTON_NAME, INSTR(BUTTON_NAME, '.')+1);

  SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNSALVAR'  ,ENABLED,PROPERTY_FALSE);
  SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNNOVO'    ,ENABLED,PROPERTY_FALSE);
  SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNALTERAR' ,ENABLED,PROPERTY_FALSE);
  SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNDELETE'  ,ENABLED,PROPERTY_FALSE);
  SET_ITEM_PROPERTY('TOOLBAR_padrão.BTNCANCELAR',ENABLED,PROPERTY_FALSE);

  IF(BUTTON IN ('BTNPESQUISA'))THEN
    SET_BLOCK_PROPERTY('FILA_ANALISE_BACKOFFICE',INSERT_ALLOWED,PROPERTY_TRUE);
    SET_BLOCK_PROPERTY('FILA_ANALISE_BACKOFFICE',UPDATE_ALLOWED,PROPERTY_TRUE);

  	IF((:PARAMETER.PESQUISA IS NULL)OR(:PARAMETER.PESQUISA = 0))THEN
  	  BEGIN          
  		  IF(:FILA_ANALISE_BACKOFFICE.CPF_CGC IS NOT NULL)THEN
          BEGIN
            N_CPF_CGC := :FILA_ANALISE_BACKOFFICE.CPF_CGC;
            EXCEPTION WHEN OTHERS THEN
  	          MSG_INFORMACAO('Para realizar a pesquisa por CPF/CNPJ informe somente valores numericos.A lista de espera será novamente recarregada para a tela!');
  	          :FILA_ANALISE_BACKOFFICE.CPF_CGC := NULL;
  	          RAISE FORM_TRIGGER_FAILURE;
  	      END;
  	    END IF;    
	    END;

      SET_ITEM_PROPERTY('FILA_ANALISE_BACKOFFICE.CPF_CGC',FORMAT_MASK,'');
 
      CLEAR_BLOCK(NO_VALIDATE);

      :PARAMETER.PESQUISA := 1;
       PC_HABILITA(FALSE);
       
    ELSIF(:PARAMETER.PESQUISA = 1)THEN
  
      IF(:GLOBAL.ERRO = '40301')THEN
        GO_BLOCK('FILA_ANALISE_BACKOFFICE');
        :GLOBAL.ERRO := NULL;
      END IF;
      
      :PARAMETER.PESQUISA := 0;
      

	    IF(:FILA_ANALISE_BACKOFFICE.CPF_CGC IS NOT NULL)THEN
        :FILA_ANALISE_BACKOFFICE.CPF_CGC := '%' || :FILA_ANALISE_BACKOFFICE.CPF_CGC || '%';
	    ELSE
	    	:FILA_ANALISE_BACKOFFICE.CPF_CGC := '%';
      END IF;


	    IF(:FILA_ANALISE_BACKOFFICE.EMPRESA_ORIGEM IS NOT NULL)THEN
        :FILA_ANALISE_BACKOFFICE.EMPRESA_ORIGEM := '%' || :FILA_ANALISE_BACKOFFICE.EMPRESA_ORIGEM || '%';
	    ELSE
	    	:FILA_ANALISE_BACKOFFICE.EMPRESA_ORIGEM := '%';
      END IF;

	    IF(:FILA_ANALISE_BACKOFFICE.CENTRAL_ORIGEM IS NOT NULL)THEN
        :FILA_ANALISE_BACKOFFICE.CENTRAL_ORIGEM := '%' || :FILA_ANALISE_BACKOFFICE.CENTRAL_ORIGEM || '%';
	    ELSE
	    	:FILA_ANALISE_BACKOFFICE.CENTRAL_ORIGEM := '%';
      END IF;

	    IF(:FILA_ANALISE_BACKOFFICE.LOJA_ORIGEM IS NOT NULL)THEN
        :FILA_ANALISE_BACKOFFICE.LOJA_ORIGEM := '%' || :FILA_ANALISE_BACKOFFICE.LOJA_ORIGEM || '%';
	    ELSE
	    	:FILA_ANALISE_BACKOFFICE.LOJA_ORIGEM := '%';
      END IF;

    	PC_LISTA_FILA_PESQUISA;

    	SET_BLOCK_PROPERTY('FILA_ANALISE_BACKOFFICE',INSERT_ALLOWED,PROPERTY_FALSE);
      SET_BLOCK_PROPERTY('FILA_ANALISE_BACKOFFICE',UPDATE_ALLOWED,PROPERTY_FALSE);

      PC_HABILITA(TRUE);
  	 
    END IF;
  	
  		
  ELSIF(BUTTON IN ('BTNSAIR'))THEN
  	EXIT_FORM(NO_VALIDATE);
    
  ELSE
  	IF(BUTTON IN ('BTNPRIMEIRO'))THEN
  		FIRST_RECORD;
  	ELSIF(BUTTON IN ('BTNANTERIOR'))THEN	
  		PREVIOUS_RECORD;
  	ELSIF(BUTTON IN ('BTNPROXIMO'))THEN		 
      NEXT_RECORD;
  	ELSIF(BUTTON IN ('BTNULTIMO'))THEN		 
      LAST_RECORD;
    END IF;  

  END IF;  
    
END;

obrigado


elcio.....
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

No teu último END;, troque por esse trecho abaixo e faça um teste:

Selecionar tudo

EXCEPTION
  WHEN OTHERS THEN 
    message('Erro (WBP):'||SQLERRM);
    message('Erro (WBP):'||SQLERRM);
    RAISE FORM_TRIGGER_FAILURE;    
END; 
qualquer coisa, manda pra gente.
Responder
  • Informação