Problèmes de partage implicite

Scénario :

Pour les membres dont la relation de partage est implicite, lorsqu'un parent et un enfant sont affichés sur le même formulaire Oracle Hyperion Planning, seules les valeurs saisies pour le parent sont conservées. Dans les exemples suivants, Planning crée une relation de partage implicite entre le parent A et l'enfant 1 car les valeurs du parent et de l'enfant sont toujours identiques. Ces exemples exigent que tous les membres soient définis sur le type Stocker des données.

Exemple 1 :

   Parent A 
        Child 1 (+) 

Exemple 2 :

   Parent A 
        Child 1 (+) 
        Child 2 (~) 
        Child 3 (~) 

La plupart des applications Planning étant des applications ascendantes, les données sont habituellement saisies pour l'enfant car le parent est en lecture seule. Généralement, les événements sont les suivants :

  1. Le formulaire affiche l'enfant, en général au-dessus du parent.

  2. De nouvelles données sont saisies pour l'enfant.

  3. Le formulaire est enregistré. L'opération d'enregistrement lit le formulaire de gauche à droite et de haut en bas. L'enfant est donc enregistré en premier.

  4. L'opération d'enregistrement utilise ensuite la dernière occurrence de la valeur dans la grille (c'est-à-dire la valeur située le plus bas et le plus à droite) qui remplace la valeur de l'enfant en raison du partage implicite. Les données saisies pour l'enfant sont ignorées.

Solution :

En fonction des exigences de vos formulaires Planning, vous pouvez utiliser les méthodes suivantes pour éviter les partages implicites.

  • Pour un parent et un enfant sur un même formulaire : ajoutez un membre fictif en tant qu'enfant d'agrégation. Le membre fictif est inclus dans l'outline mais n'est pas utilisé dans les formulaires. Le partage implicite est désactivé lorsque le parent ne présente qu'un seul enfant d'agrégation.

  • Pour un parent Information seule : un partage implicite existe avec le premier membre enfant, quel que soit le nombre d'enfants agrégés présents. Pour désactiver le partage implicite dans cette situation, modifiez le type de stockage Information seule ou n'incluez pas le parent et l'enfant sur le même formulaire.

  • Pour un parent qui peut être défini sur Ne jamais partager : si cela est nécessaire pour votre application, vous pouvez définir le membre parent sur le paramètre de stockage Ne jamais partager. Un parent défini sur Ne jamais partager fonctionne de la même façon qu'un parent défini sur Stockage comportant plusieurs enfants d'agrégation. Cependant, contrairement à un parent défini sur Stockage, un parent défini sur Ne jamais partager n'affiche que la valeur d'agrégation de ses enfants après l'exécution d'une agrégation.

Remarque :

Pour les parents comportant un enfant unique, l'utilisation du type de stockage par défaut Stockage (qui conserve la relation de partage implicite) représente habituellement un avantage, car elle permet de réduire le nombre de blocs créés, la taille de la base de données, ainsi que les délais de calcul et d'agrégation. Utilisez le paramètre Ne jamais partager uniquement en cas de besoin.

Pour plus d'informations sur la fonctionnalité de partage implicite, reportez-vous au Guide de l'administrateur de la base de données Oracle Essbase .