Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2006, 14h43   #1
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Par défaut [Forms 9i] RAISE_APPLICATION_ERROR

Bonjour,

En parcourant la gestion des exceptions dans la doc, j'ai écrit la procédure suivante sous Forms 9i :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
PROCEDURE APPLIQUER_FORMULES(LC_formule	IN OUT B03FS.FS_FORMULE_QTE%TYPE) IS
	LC_oeno											VARCHAR2(15);
	LC_pa_simule								B0337.T37_CODE%TYPE;
	LC_pattern_concentration		VARCHAR2(60) := '<CONCENTRATION>';
	LC_pattern_pa_simule				VARCHAR2(60) := '<([[:alnum:]]{5})>';
	LC_pattern_spec							VARCHAR2(60) := '<SPECIFICATIONS';
BEGIN
	DEFAULT_VALUE('<NULL>', 'GLOBAL.GC_liste_PA_simules');
	IF :GLOBAL.GC_liste_PA_simules = '<NULL>' THEN
		Raise_Application_Error(-20606, 'Application de la formule B03FS impossible.');
	END IF;
...
Cependant, à la compilation j'obtiens un message d'erreur stipulant :
Citation:
identifier 'RAISE_APPLICATION_ERROR' must be declared
Pourquoi est-ce que je ne peux utiliser cette commande sous Forms 9i ?
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 14h49   #2
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Parce que ce n'est pas une commande reconnue par forms.

Sous forms, l'équivalent est :
Code :
1
2
message ('Application de la formule B03FS impossible.');
raise form_trigger_failure;
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 15h04   #3
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Salut plaineR,

Citation:
Envoyé par plaineR
Parce que ce n'est pas une commande reconnue par forms.
Ah !

Du coup j'ai 2 questions :
1/ comment savoir quand je lis la doc "PL/SQL User's Guides and References" si les commandes qui y figurent sont reconnues par Forms (la plupart le sont mais pas EXECUTE IMMEDIATE, RAISE_APPLICATION_ERROR, etc.) ?

2/ comment gérer avec une simple RAISE FORM_TRIGGER_FAILURE le cas suivant :
Code :
1
2
3
4
5
6
7
 
CREATE OR REPLACE PROCEDURE P1 IS
BEGIN
  ...
  P2;
  ...
END;
sachant que P2 peut lever une exception (ce que j'essayais de faire avec RAISE_APPLICATION_ERROR) et que dans P1 je veux distinguer le cas avec erreur de celui sans ?

Ce que je veux faire me semble à faire mais sans RAISE ou RAISE_APPLICATION_ERROR j'avoue que je me sens perdu

Merci mon cher plaineR
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 15h23   #4
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Chef de projet en SSII
Secteur : Conseil

Informations forums :
Inscription : janvier 2004
Messages : 2 866
Points : 3 448
Points : 3 448
Citation:
Envoyé par Magnus
1/ comment savoir quand je lis la doc "PL/SQL User's Guides and References" si les commandes qui y figurent sont reconnues par Forms (la plupart le sont mais pas EXECUTE IMMEDIATE, RAISE_APPLICATION_ERROR, etc.) ?
En essayant , je ne vois pas d'autres solutions, je ne pense pas qu'il y ait de doc qui indique les fonctionnalités PL non utilisables par forms.

Citation:
Envoyé par Magnus
2/ comment gérer avec une simple RAISE FORM_TRIGGER_FAILURE le cas suivant :
Code :
1
2
3
4
5
6
7
 
CREATE OR REPLACE PROCEDURE P1 IS
BEGIN
  ...
  P2;
  ...
END;
sachant que P2 peut lever une exception (ce que j'essayais de faire avec RAISE_APPLICATION_ERROR) et que dans P1 je veux distinguer le cas avec erreur de celui sans ?
Essaie juste après l'appel de p2 :
Code :
IF NOT form_success then
Si cela ne fonctionne pas, rien ne t'empêche de créer un entête de package et d'y déclarer des exceptions :
Code :
1
2
3
PACKAGE pack_except IS
  err_p2 exception;
END;
Dans P2 :
Code :
1
2
3
....
raise pack_except.err_p2;
....
Dans P1 :
Code :
1
2
3
4
5
6
7
8
9
....
begin
  p2;
  ....
exception
  when pack_except.err_p2 then
     ....
end;
....
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2006, 15h59   #5
Membre Expert
 
Inscription : avril 2005
Messages : 1 672
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 1 672
Points : 1 337
Points : 1 337
Citation:
Envoyé par plaineR
En essayant , je ne vois pas d'autres solutions, je ne pense pas qu'il y ait de doc qui indique les fonctionnalités PL non utilisables par forms.
Question en bois, réponse en bois

Concernant tes 2 propositions, j'avais aussi pensé à FORM_SUCCESS mais j'ai finalement opté pour l'utilisation d'un argument de type IN OUT dans la procédure P2 que je teste au retour de l'appel dans P1.

Merci du coup de main.
Magnus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h43.


 
 
 
 
Partenaires

Hébergement Web