Changement dynamique d'environnement dans Reports
S'APPLIQUE À :
Oracle Reports Developer - Version 9.0.2.0 à 11.1.2.2.0 [Release 9i à 11g]
Les informations de ce document s'appliquent à toutes les plateformes.
OBJET
Cet article explique et montre comment Reports 10G peut utiliser dynamiquement différentes variables d'environnement, sans qu'il soit nécessaire d'avoir un Reports Server distinct pour chaque ensemble de variables d'environnement.
Définir dynamiquement les variables d'environnement de Reports 10G.
Auparavant, au démarrage du Reports Server, celui-ci lisait le registre (Windows) ou les variables d'environnement courantes (Unix), et tous les rapports exécutés par le Reports Server utilisaient ces valeurs. Il était donc impossible de définir deux valeurs différentes pour une variable d'environnement (p. ex. REPORTS_PATH) et d'utiliser un réglage précis à l'exécution. Par exemple, un développeur pourrait vouloir utiliser un seul Reports Server, mais avec un REPORTS_PATH pointant tantôt vers une 'zone de développement', tantôt vers une 'zone de test'. Il fallait alors faire tourner plusieurs Reports Server, un par réglage, ce qui peut coûter cher en administration.
Depuis Reports 10G, toutefois, la fonction 'Dynamic Environment Switching' (changement dynamique d'environnement) permet d'utiliser un seul Reports Server tout en remplaçant certains réglages courants au moyen d'un fichier de configuration.
PORTÉE
Cet article s'adresse aussi bien aux développeurs qu'aux DBA, ou à toute personne qui s'intéresse aux rapports Web (Web Reports).
DÉTAILS
Variables d'environnement définies dans reports.sh
Notez que si une variable d'environnement est définie à la fois dans l'option Dynamic Environment Switching et dans reports.sh, la valeur définie dans reports.sh l'emporte sur le Dynamic Environment Switching. Cela peut causer des problèmes, et REPORTS_PATH en est un excellent exemple : comme le REPORTS_PATH de reports.sh a priorité, une erreur REP-110 : Unable to open file peut se produire. La NOTE 341800.1 traite de cette situation. Si vous voulez ajouter un paramètre au Dynamic Environment Switching, pensez d'abord à le retirer de reports.sh.
Dynamic Environment Switching dans Reports 11g
Dans Reports Server 11g, le Dynamic Environment Switching doit être défini dans Enterprise Manager :
Oracle Enterprise Manager 11g Fusion Middleware Control ->Reports Server Homepage -> Reports Server Basic Configuration -> Environment Configuration Section
Dynamic Environment Switching dans Reports 9i à 10gR2
Pour ces versions de Report Server, les modifications doivent être faites manuellement dans les fichiers conf du serveur de rapports.
1. Définissez les caractéristiques de l'environnement (élément Environment).
Dans le fichier de configuration du Reports Server (p. ex. .conf), qui se trouve dans :
ajoutez les environnements suivants.
<environment id="Dev">
<envVariable name="REPORTS_PATH" value="d:\MyReports\DevArea"/>
</environment>
<environment id="Test">
<envVariable name="REPORTS_PATH" value="d:\MyReports\TestArea"/>
</environment>
VEUILLEZ NOTER : le Reports Server doit être redémarré pour prendre en compte ces modifications. Si vous utilisez le serveur de rapports in-process, il faut redémarrer OC4J_BI_FORMS (10g) ou WLS_REPORTS (11g).
2. Appelez les rapports avec l'élément Environment voulu (ENVID).
Lorsque vous construisez l'URL d'appel d'un rapport, il suffit donc d'ajouter ENVID=.
Exemple, pour exécuter MyTestRep.rdf dans la zone de développement :
http://<yourWebServer>:<port>/reports/rwservlet?SERVER=<yourReportServer>
&REPORT=MyTestRep.rdf&USERID=<username>/<password>@<connect_string>&DESFORMAT=html &DESTYPE=cache&ENVID=Dev
Exemple, pour exécuter MyTestRep.rdf dans la zone de test :
http://<yourWebServer>:<port>/reports/rwservlet?SERVER=<yourReportServer>
&REPORT=MyTestRep.rdf&USERID=<username>/<password>@<connect_string>&DESFORMAT=html &DESTYPE=cache&ENVID=Test
Lorsque vous appelez des rapports depuis Forms avec RUN_REPORT_OBJECT, l'ENVID est transmis comme suit :
Set_Report_Object_Property(Rep_Id,REPORT_OTHER,'ENVID="Dev"');
Les variables d'environnement ne se limitent pas à REPORTS_PATH : d'autres variables peuvent aussi être utilisées.
P. ex. : NLS_LANG, NLS_CALENDAR. REPORTS_PATH n'a servi que d'exemple dans cet article.
Définir defaultEnvID
Vous pouvez aussi définir un ID d'environnement par défaut pour ne pas avoir à le préciser dans l'URL. L'envID indiqué par le paramètre defaultEnvID, et donc ses réglages d'environnement, est alors utilisé. Consultez la Note 292901.1 pour plus de détails.
Problèmes connus
Note 1298701.1 Après l'application du Patchset 11.1.1.4, Fusion Middleware Control insère des balises "demo:" dans les fichiers conf du Reports Server - la section ENVID cesse de fonctionner
Note:1239633.1 Reports lit les variables dans le registre Windows même si le Dynamic Environment Switching est défini dans 11g
Note:341800.1 Le Dynamic Environment Switching pour REPORTS_PATH provoque des erreurs REP-110/REP-1070 sous Unix/Linux
Note:1078231.1 Erreur REP-110 lors de l'exécution de tâches planifiées avec EnvID, seulement après le redémarrage du Report Server
Note:739271.1 Les rapports appelés avec "envid" se bloquent dans le moteur, la trace indique REP-3000 sous Unix