Import de métadonnées

Vous trouverez ci-dessous un exemple de ligne de commande permettant d'exécuter l'utilitaire Chargement d'outline avec comme entrée le fichier myprop_relational.properties (détails ci-après) :

OutlineLoad /CP:c:/myprop_relational.properties

Ce fichier importe les membres Compte de l'application PS2ORAU figurant dans les paramètres de connexion JDBC dans une application nommée Test_300. Le fichier de propriétés peut contenir plusieurs requêtes relationnelles. Le paramètre /RIQ détermine la requête exécutée par l'utilitaire Chargement d'outline.

Pour obtenir une description de /RIQ, reportez-vous à la section Paramètres de ligne de commande pour l'utilitaire Chargement de l'outline.

Exemple 5-1 Exemple : fichier myprop_relational.properties

/A:Test_300
/U:admin
/RIQ: ACCOUNT_QUERY

/D:Account
#
ACCOUNT_QUERY=SELECT O.OBJECT_NAME as Account, (select object_name from hsp_object where object_id = O.PARENT_ID) as Parent from HSP_ACCOUNT A, HSP_MEMBER M, HSP_OBJECT O LEFT OUTER JOIN HSP_STRINGS S ON O.DESCRIPTION = S.STRING_SEQ  WHERE O.OBJECT_ID=M.MEMBER_ID AND M.MEMBER_ID = A.ACCOUNT_ID AND M.MEMBER_ID <> M.DIM_ID ORDER BY O.POSITION
#
ENTITY_QUERY=SELECT O.OBJECT_NAME as Entity, (select object_name from hsp_object where object_id = O.PARENT_ID) as Parent from HSP_ENTITY E, HSP_MEMBER M, HSP_OBJECT O LEFT OUTER JOIN HSP_STRINGS S ON O.DESCRIPTION = S.STRING_SEQ  WHERE O.OBJECT_ID=M.MEMBER_ID AND M.MEMBER_ID = E.ENTITY_ID AND M.MEMBER_ID <> M.DIM_ID ORDER BY O.POSITION

## jdbc connection
/RIC:PS2ORAU
/RIR:jdbc:oracle:thin:@[scl34390]:1521:orcl
/RID:oracle.jdbc.OracleDriver
/RIU:PS2ORAU
/RIP:password

#end myprop_relational.properties file

Dans l'exemple suivant, une dimension d'attribut porte, dans les applications source et cible, un nom de plus de 30 caractères (Size012345678901234567890123456789) et dépasse donc la limite fixée pour les en-têtes de colonne Oracle. La requête de l'exemple suivant permet de créer un ensemble de résultats à partir de la source à importer dans l'application cible. Le nom de dimension long doit disposer d'un alias pour la colonne O.OBJECT_NAME afin qu'OLU puisse utiliser celle-ci comme nom de dimension d'attribut.

Exemple 5-2 Exemple : fichier de propriétés utilisé pour l'import à partir d'une source de données relationnelle vers une application Planning

/A:TARGET
/U:admin
/IR

/DA:Size012345678901234567890123456789:Entity

/C2A:(OBJECT_NAME,Size012345678901234567890123456789)

ATTRIB_DIM_VAL_QUERY_ORACLE1=SELECT O.OBJECT_NAME, (select object_name from PS3ORA.hsp_object where object_id = O.PARENT_ID) as Parent from PS3ORA.HSP_OBJECT O WHERE O.OBJECT_ID IN (select AM.ATTR_MEM_ID from PS3ORA.hsp_attribute_member AM, PS3ORA.HSP_OBJECT O where AM.ATTR_ID =(select OBJECT_ID from PS3ORA.hsp_object where OBJECT_NAME='Size012345678901234567890123456789')) ORDER BY O.POSITION

Exemple 5-3 Exemple : fichier de propriétés utilisé pour l'import avec alias à partir d'une source de données relationnelle vers une application Planning

/A:expe
/U:admin
/IRA
/D:Entity
/C2A:(Member as Entity,anotherReallyLongAliasForAColumnNameItsForEntityThisTimeDifferentFromExport), (Parent, anotherAliasForParent)

/RIQ:select anotherReallyLongAliasForAColumnNameItsForEntityThisTimeDifferentFromExport, Parent from test

Par rapport à l'exemple précédent, prenons les hypothèses suivantes :

  • La table Test comporte deux colonnes, Member et Parent, ainsi qu'une entrée :


    Cette image illustre la sortie de la table Test après l'exécution la requête précédente.
  • La dimension Entity possède un membre, e1, sous la racine (Entity).

Après l'exécution de la requête précédente, le membre Ex est ajouté ou mis à jour dans la dimension Entity.

Lors de l'import, les alias des colonnes sont gérés en tant que chaînes de remplacement ; c'est pourquoi la clause "as" fonctionne dans ce cas. Si la colonne Member était nommée Entity, vous devriez supprimer "Member as".

Exemple 5-4 Exemple : utilisation du paramètre /C2A pour importer des alias dans une table d'alias

/A:TARGET
/U:admin
/IR
/D:Entity

/RIQ:ENT_ALIAS_ASSIGNMENT_QUERY

/C2A:(AliasTableName, Alias: LongAliasTableName012345678901234567890123)

ENT_ALIAS_ASSIGNMENT_QUERY=SELECT O.OBJECT_NAME as Entity, (select object_name from hsp_object where OBJECT_ID=O.PARENT_ID) as Parent, (select OBJECT_NAME from HSP_OBJECT where OBJECT_ID = AL.ALIAS_ID) as AliasTableName  from hsp_object O, HSP_ALIAS AL where (AL.ALIASTBL_ID = (select OBJECT_ID from HSP_OBJECT where OBJECT_NAME =' LongAliasTableName012345678901234567890123') AND O.OBJECT_ID=AL.MEMBER_ID)

Remarque :

Dans l'exemple précédent, aussi bien l'application cible Oracle Hyperion Planning que la source contiennent des noms de table d'alias longs.

Exemple 5-5 Exemple : utilisation du paramètre /C2A pour mapper les noms de colonne et les noms de propriété

/RIQ:select c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,c20,c21,c22,c23,c24,c25,c26,c27 from table28

/c2a:(c1, Account), \
(c2, Parent), \
(c3, Alias: Default), \
(c4, Valid For Consolidations), \
(c5, Data Storage), \
(c6, Two Pass Calculation), \
(c7, Description), \
(c8, Formula), \
(c9, UDA), \
(c10, Smart List), \
(c11, Data Type), \
(c12, Hierarchy Type), \
(c13, Enable for Dynamic Children), \
(c14, Number of Possible Dynamic Children), \
(c15, Access Granted to Member Creator), \
(c16, Account Type), \
(c17, Time Balance), \
(c18, Skip Value), \
(c19, Exchange Rate Type), \
(c20, Variance Reporting), \
(c21, Source Plan Type), \
(c22, Plan Type (Plan1)), \
(c23, Aggregation (Plan1)), \
(c24, Plan Type (Plan2)), \
(c25, Aggregation (Plan2)), \
(c26, Plan Type (Plan3)), \
(c27, Aggregation (Plan3))