Un des composants clés de l’architecture OA-Framework est le MDS, le MetaData Services : le MDS est un ensemble de tables (préfixées par JDR_xxx) dans lesquelles sont stockées les définitions des pages OA-Framework et les personnalisations de la eBusiness Suite, et ce depuis la version 11.5.7.
A chaque fois qu’une page de la eBusiness Suite est appelée, le « moteur OA-Framework » va :
- lire la définition / structure de la page demandée dans le MDS
- fusionner la définition standard de cette page avec d’éventuelles personnalisations (stockées elles aussi dans le MDS)
- puis génèrer le code HTML correspondant avant de renvoyer le résultat.
Pour consulter et/ou manipuler le contenu de ce MDS, il est possible de passer par des écrans d’administration de la eBusiness Suite (responsabilité « Administrateur Fonctionnel »), mais le plus pratique et le plus rapide est souvent d’utiliser le package JDR_UTILS.
Cet article décrit les 4 principales APIs du package JDR_UTILS.
A noter : si vous utilisez ces APIs sous SQLDeveloper ou SQL*Plus, il peut être utile voire nécessaire de positionner le paramètre serveroutput à on, pour voir apparaître le résultat de ces APIs à l’écran :
set serveroutput on
JDR_UTILS.LISTDOCUMENTS
Cette API sert souvent de point de départ lorsque l’on veut documenter ou analyser une page OAF : elle va renvoyer la liste des documents OA-Framework pour un module/chemin donné :
- non seulement les pages / régions OAF « classiques »
- mais également les substitutions BC4J / Business Components (Substitutions de VOs / EOs / AMs…)
- et les personnalisations apportées à une page
– Premier paramètre : chemin d’accès (complet ou partiel) à un document OA-Framework (Page/région/extension/personnalisation)
– Deuxième paramètre : Boolean ; à TRUE pour indiquer que l’on souhaite effectuer une recherche récursive.
execute jdr_utils.listdocuments('/oracle/apps/fnd/security/', TRUE);
JDR_UTILS.LISTCUSTOMIZATIONS
Cette API va lister les personnalisations et extensions créées pour une page donnée (ou une région standalone) :
– Paramètre : nom complet (Chemin d’accès + page ou région) du document concerné
(La façon la plus simple de connaitre le nom complet d’un document est d’utiliser dans un premier temps l’API JDR_UTILS.LISTDOCUMENTS)
execute jdr_utils.listcustomizations('/oracle/apps/fnd/security/menufunction/webui/FunctionSearchPG');
JDR_UTILS.PRINTDOCUMENT
Cette API permet d’extraire du MDS la définition d’un document OA-Framework, au format XML : page/région/personalisation. Cette extraction est surtout utile pour une simple consultation à l’écran.
PRINTDOCUMENT peut également servir à extraire un document pour ensuite l’exporter, mais il existe pour cela une API dédiée : JDR_UTILS.exportDocument.
– Paramètre : nom complet (Chemin d’accès + page ou région) du document concerné
Consultation / Extraction de la définition d’une page (ici la Home Page) :
execute JDR_UTILS.PrintDocument('/oracle/apps/fnd/framework/navigate/webui/HomePG');
Extraction de la définition d’une personnalisation (l’API LISTDOCUMENTS ou LISTCUSTOMIZATIONS permet d’avoir le nom complet) :
execute JDR_UTILS.PrintDocument('/oracle/apps/fnd/framework/navigate/webui/customizations/site/0/HomePG');
JDR_UTILS.DELETEDOCUMENT
L’API JDR_UTILS.DELETEDOCUMENT permet de supprimer un document du MDS, y compris une personnalisation ! (à manipuler avec précaution !)
– Paramètre : nom complet (Chemin d’accès + page ou région) du document concerné
execute JDR_UTILS.DELETEDOCUMENT('/oracle/apps/fnd/framework/navigate/webui/customizations/site/0/HomePG');