Modernisation Oracle Forms

Guide de dépannage de FRM-41214, causes fréquentes et solutions

Introduction

S'APPLIQUE À :
Oracle Forms - Version 6.0.8.8.0 et ultérieures
Les informations de ce document s'appliquent à toutes les plateformes.
Pertinence vérifiée le 21 décembre 2009

Symptômes

Vous tentez d'intégrer Reports dans du code Forms au moyen de RUN_REPORT_OBJECT. À l'exécution, lors de l'appel d'un rapport depuis Forms, l'erreur suivante se produit :

FRM-41214: Unable to run report.

Ce document présente les causes fréquentes de cette erreur et explique en détail comment pousser le diagnostic plus loin.

Découvrez notre outil exclusif ORMIT™-Analyzer – analyse Oracle® Forms, ORMIT™ Forms

Cause

FRM-41214 indique qu'un paramètre non valide a été transmis au Report Server. FRM-41214 signifie aussi que Forms a réussi à soumettre le rapport au Reports Server : la communication entre Forms et le Reports Server fonctionne donc correctement.

DÉPANNAGE :
Cette erreur survient au moment où le Reports Server commence à traiter la requête. Les informations sur la cause exacte de l'erreur se trouvent en fait du côté de Reports et, selon la situation, la solution devra être appliquée du côté de Forms ou de Reports.

Essayez ce qui suit pour recueillir plus d'informations sur l'erreur :

  1. Immédiatement après l'apparition du problème avec RRO, vérifiez si la tâche a été soumise au serveur de rapports : http://machine.domain:port/reports/rwservlet/showjobs?server=rep_server_name
  2. Utilisez le Queue Manager; pour plus de détails, consultez la Note 1322799.1
  3. Activez le traçage de Reports; pour obtenir les informations de trace, procédez comme suit :
    1. Activez le traçage du Reports Server comme décrit dans la Note 237301.1
      Assurez-vous que la ligne suivante figure dans le fichier de configuration du Reports Server (ORACLE_HOME/reports/conf/<Reports-server-name>.conf) avant de démarrer le Reports Server <trace traceOpts="trace_all"/>
    2. Reproduisez le problème en exécutant le formulaire et en appelant le rapport
    3. Consultez le fichier de trace généré, par défaut, dans ORACLE_HOME/reports/logs/<Reports-Server-Name>/rwserver.trc

Le rapport indiqué dans le paramètre REPORT n'est pas accessible

Dans ce cas, les erreurs suivantes s'affichent dans la trace du Reports Server :

REP-110: Unable to open file 'test.rdf'. 
REP-1070: Error while opening or saving a document.

Explication : l'objet Reports contenu dans Forms pointe vers un rapport qui n'existe pas ou qui n'est pas accessible.

Solution : dans l'"Object Navigator" de Forms, allez au nœud Reports et ouvrez les propriétés du "Report Object" exécuté depuis Forms. Vérifiez la valeur indiquée pour le paramètre "Filename" et assurez-vous qu'elle pointe vers un rapport existant et accessible. Si le paramètre "Filename" ne contient pas de chemin explicite vers le rapport, assurez-vous que celui-ci se trouve dans un répertoire référencé par la variable d'environnement REPORTS_PATH.

Utilisation de DESTYPE=SCREEN ou DESTYPE=PREVIEW

Dans ce cas, l'erreur suivante s'affiche dans la trace du Reports Server :

Exception 56092 (): No class defined for destination type screen or 
Exception 56092 (): No class defined for destination type preview

Explication : SCREEN et PREVIEW ne sont pas des valeurs valides pour le paramètre DESTYPE lorsqu'on utilise le Reports Server.

Solution : utilisez pour le paramètre DESTYPE d'autres valeurs que SCREEN ou PREVIEW. Les options valides avec le Reports Server sont FILE, PRINTER, MAIL ou CACHE. Si le résultat doit s'afficher dans le navigateur, la bonne valeur est "DESTYPE=CACHE". Pour plus de détails, consultez la Note 169619.1 FRM-41214 Error Using Run_Report_Object When Destype = Screen or Preview.

Type ou largeur (longueur) incorrects de la valeur d'un paramètre

Dans ce cas, les erreurs suivantes peuvent s'afficher dans la trace du Reports Server :

REP-546: Value does not match mask 'DD-MON-RR'. 
ORA-01858: a non-numeric character was found where a numeric was expected 
REP-0091: Invalid value for parameter 'P_1'.  or
REP-546: Invalid value for parameter 'P_1'.

Explication : ces erreurs peuvent survenir, par exemple, lorsque le paramètre du rapport a le "Datatype" Numeric et que Forms transmet une valeur de type caractère : "abc". Le Reports Server ne peut alors pas traiter la valeur transmise, d'où ces erreurs.

Solution : assurez-vous que le type de données des valeurs de paramètres transmises par Forms correspond à celui indiqué dans la propriété "Datatype" des User Parameters du rapport. Assurez-vous aussi que la longueur de la valeur transmise par Forms ne dépasse pas la "Width" maximale indiquée dans les User Parameters du rapport.

Chaîne de connexion (LOGIN) incomplète lors de la connexion à Forms.

Cette situation peut se produire lorsque les variables d'environnement LOCAL (sous Windows) et TWO_TASK (sous Unix) sont utilisées dans le fichier default.env de Forms.

Dans ce cas, l'erreur suivante peut apparaître dans la trace du Reports Server :

REP-501: Unable to connect to specified database.

Explication : les variables d'environnement LOCAL ou TWO_TASK permettent aux utilisateurs de se connecter à l'application Forms sans préciser la base de données (seulement le nom d'utilisateur et le mot de passe). Dans ce cas, la chaîne de connexion transmise de Forms à Reports ressemble à ceci : SCOTT/TIGER@NULL. Reports ne peut pas se connecter à la base de données avec cette chaîne de connexion, d'où cette erreur.

Solution : la solution la plus simple consiste à s'assurer que la même variable est aussi disponible pour Reports, avec la bonne valeur :
Sous Windows : créez dans le registre une valeur de chaîne (String Value) nommée LOCAL, ayant pour valeur le SID de la base de données
Sous Unix : modifiez reports.sh et ajoutez la ligne suivante :

TWO_TASK=your-database 

Pour plus de détails, consultez la Note 382630.1 Rep-501 (Database Connection) On Report Calling Paramform and RUN_REPORT_OBJECT

Connexion à Oracle Database 11g avec SEC_CASE_SENSITIVE_LOGON activé

Dans ce cas, les erreurs suivantes se produisent :

REP-501: Unable to connect to the specified database. 
FRM-41214: Unable to run report

Explication : le paramètre d'initialisation de la base de données "SEC_CASE_SENSITIVE_LOGON" est activé. Il impose le respect de la casse pour le mot de passe utilisé pour se connecter à la base de données, comme l'explique le bug interne 6655484 - UNABLE TO RUN REPORTS WITH 11G DB.
Solution : pour la solution détaillée, consultez la Note 469013.1 REP-501 when connecting to Database 11g using "RUN_REPORT_OBJECT"