FRM-40700 Este trigger não existe: SPECIAL15

Perguntas relacionadas a questões técnicas do Oracle EBS. Criação de Concorrentes, Value Sets, Alerts, Forms Personalizations, Configurações, etc
Responder
hudsonjsl
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Sáb, 05 Jul 2008 9:24 pm
Localização: SP
Hudson Lima.

Pessoal, boa tarde..

Sou novo com o EBS, e estou com o problema na hora de executar a função do special menu. A rotina foi feita dentro da custom.pll porque a form é core, quando executo ela, funciona perfeitamente só que aparece a mensagem no rodapé (FRM-40700 Este trigger não existe: SPECIAL15). A versão do EBS é a R12.

Como posso tratar para não aparecer essa mensagem?

No aguardo da ajuda de vocês...

Abs!
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

Você está usando um Forms Personalization com a SPECIAL15 ?
hudsonjsl
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Sáb, 05 Jul 2008 9:24 pm
Localização: SP
Hudson Lima.

E ai Thomas, não a programação foi feita dentro da PLL. Eu já usei a app_special.instantiate e app_special2.instantiate.

Segue o código:

Selecionar tudo

PACKAGE BODY RCVRCERC_PK IS
  --
  procedure event_p( p_event_name in varchar2 ) is
    l_vBlockname   varchar2(30)  :=  name_in('system.cursor_block');
  begin
  	--
  	IF P_EVENT_NAME = 'WHEN-NEW-FORM-INSTANCE' THEN
      app_special2.instantiate('SPECIAL15', '&Selecionar Todas Linhas ');
    ELSIF P_EVENT_NAME = 'SPECIAL15' THEN
  		go_block(l_vBlockname);
			--
			first_record;
			--
			LOOP
			  --
			  COPY('Y',l_vBlockname||'.LINE_CHKBOX');
			  --
			  EXIT  WHEN  NAME_IN('SYSTEM.LAST_RECORD')  =  'TRUE';
			  --
			  next_record;
			  --
			END  LOOP;
			--
			first_record;
			--
			END  IF; -- if p_event_name = 'SPECIAL15' then
  exception
	  when  form_trigger_failure  then
	    raise;
	  when  others  then
	    fnd_message.set_string('Erro ao executar o tratamento de seleção dos itens. '||SQLERRM);
			fnd_message.show;
			raise  form_trigger_failure;			
  end event_p;
  --
END;
hudsonjsl
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Sáb, 05 Jul 2008 9:24 pm
Localização: SP
Hudson Lima.

Eu também preciso fazer alguma parametrização no forms personalization?
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

Bom, é que eu até hoje só precisei criar um menu a mais no forms e tinha pouca coisa pra personalizar, daí eu coloquei isso via Forms Personalization.

Criei uma linha - WHEN-NEW-FORM-INSTANCE. Na AÇÃO, é do tipo MENU, e ali eu crio o SPECIAL15, 16, etc

Dai eu crio uma outra linha, cujo evento é SPECIAL15... Este captura quando o usuário clica no menu.

Uma idéia: tente fazer dessa forma, daí na ação do Special15 você chama o que quiser.
hudsonjsl
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Sáb, 05 Jul 2008 9:24 pm
Localização: SP
Hudson Lima.

Thomas, valeu por estar ajudando. Eu tentei colocar a lógica na ação do SPECIAL15, mas quando vou aplicar, da um erro dizendo que não existe clausula from...

Fiz da seguinte maneira, tirando a lógica da PLL e colocando no bloco anônimo:

Selecionar tudo

='BEGIN
  go_block('RCV_TRANSACTION');
  --
  first_record;
  --
  LOOP
    --
    :RCV_TRANSACTION.LINE_CHKBOX  :=  'Y';
    --
  EXIT  WHEN  :SYSTEM.LAST_RECORD  =  'TRUE';
    --
    next_record;
    --
  END  LOOP;
  --
  first_record;  
END'
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 problema de fazer isso ali é que você tem que prestar atenção com as aspas, veja:

Selecionar tudo

='BEGIN 
  go_block('RCV_TRANSACTION'); 
  -- 
  first_record; 
  -- 
.
.
.
Deveria estar assim:

Selecionar tudo

='BEGIN 
  go_block(''RCV_TRANSACTION'');    --> duas aspas !!!
  -- 
  first_record; 
  -- 
Tente isso !
hudsonjsl
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Sáb, 05 Jul 2008 9:24 pm
Localização: SP
Hudson Lima.

Thomas, também não funcionou.. mesmo erro dizendo que não foi encontrada clausula FROM.

Para confirmar, criei a seq 1 com when-new-form-instance, acção do tipo menu, SPECIAL15, coloquei a ação do SPECIAL15, como interno e executar um procedimento, e no argumento coloquei o código abaixo.

Selecionar tudo

='BEGIN
  go_block(''RCV_TRANSACTION'');
  --
  first_record;
  --
  LOOP
    --
    :RCV_TRANSACTION.LINE_CHKBOX  :=  ''Y'';
    --
  EXIT  WHEN  :SYSTEM.LAST_RECORD  =  ''TRUE'';
    --
    next_record;
    --
  END  LOOP;
  --
  first_record;  
END'
hudsonjsl
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 10
Registrado em: Sáb, 05 Jul 2008 9:24 pm
Localização: SP
Hudson Lima.

Thomas, fiz da seguinte maneira para solucionar essa mensagem.

Na PLL depois do ultimo comando, "first_record", coloquei um "raise form_trigger_failure" e pronto. Bom, deu certo e até agora não vi afetar outras funcionalidades da tela. Se der problema no futuro, volto aqui dizendo o que aconteceu.

Valeu, abraço!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes