> Tech > Actions pour développeurs

Actions pour développeurs

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Après avoir ajouté les actions au cube, votre côté développeur a deux tâches principales: en premier lieu, construire une interface afin qu'un utilisateur puisse reconnaître quand une action est disponible et, deuxièmement, laisser l'utilisateur invoquer l'action. Pour cet exemple, j'ai modifié la page ASPADOComplex.asp antérieure pour qu'elle soit action aware.

Premièrement, la page ASP doit interroger
le cube pour déterminer si des
actions sont associées à  un membre
particulier. Vous pouvez utiliser la méthode
OpenSchema de l’objet ADO
Connection pour effectuer cette fonction.
Cette méthode accepte une
constante qui détermine le type de
rowset à  renvoyer et un array qui spécifie
les restrictions que le serveur applique
pour construire le rowset.
Analysis Services étend la spécification
OLE DB en lui ajoutant la constante
adSchemaActions pour la transmettre
comme le premier argument à 
OpenSchema. Le rowset renvoyé (appelé
un rowset MDSCHEMA_ACTIONS)
contient une ligne pour
chaque action et inclut les colonnes
que montre la table 2. Le second argument
à  OpenSchema est un array qui
définit un ensemble de restrictions à 
placer sur les colonnes de la table 2. La
table 2 montre aussi l’ordre des arrays
de restrictions et si l’argument est facultatif.

Ensuite, vous devez créer un indice
UI pour que l’utilisateur puisse reconnaître
qu’une action est disponible.
Pour créer l’indice, j’ai ajouté la procédure
DisplayURLAction côté serveur et associé des constantes à  la page ASP,
comme le montre le listing 2. A noter
que la procédure exécute d’abord
OpenSchema, comme le montre le
renvoi A dans le listing 2, en utilisant la
fonction Array pour transmettre la
constante adSchemaActions et l’ensemble
de restrictions. Dans ce cas,
l’array spécifie le cube Enrollment (le
troisième argument), seulement les
types d’actions URL (cinquième argument),
le membre à  interroger pour les
actions, tel qu’il a été transmis à  la procédure
DisplayURLAction (sixième argument),
et le scope de l’action (septième
argument) – dans ce cas, les
actions au niveau membre. A noter que
vous pouvez utiliser une chaîne vide
( » « ) pour transmettre des arguments
facultatifs.

Si OpenSchema trouve des actions, la procédure DisplayURLAction
compte sur Dynamic HTML (DHTML)
pour construire un tag d’image,
comme le montre le renvoi B du listing
2. Le tag d’image affiche un indice UI
visuel (une image) et une table (initialement
cachée) qui contient une ligne
pour chaque action URL définie pour
le membre, comme le montre le renvoi
C du listing 2. En outre, le renvoi B du
listing 2 montre que l’attribut onClick
du tag d’image est réglé de manière à  invoquer une procédure script côté
client appelée ShowActions.
ShowActions, que montre le listing 3,
est transmis à  l’ID élément de la table
afin de pouvoir faire alterner l’attribut
Display entre block et none. Ainsi,
quand l’utilisateur clique sur l’image,
ShowAction affiche ou cache la liste
des actions du membre, d’après le réglage.
L’attribut class de la table est mis
à  clsActionManu, qui définit le type de
curseur sur hand pour fournir un indice
visuel indiquant que les utilisateurs
peuvent cliquer pour des actions,
comme le montre le renvoi C du listing
2. Chaque ligne dans la table contient
une colonne qui affiche l’action URL
renvoyée à  partir du rowset.

La colonne CONTENT de la table
contient l’URL que l’administrateur a
définie et qui a été dynamiquement
construite quand le Cube Editor a généré l’action. La colonne ACTION_NAME contient le nom de l’action, dans ce cas Syllabus. L’attribut onClick de la colonne est défini au renvoi
C du listing 2 pour exécuter la procédure
InvokeURLAction côté client.
La procédure InvokeURLAction utilise
la méthode Open de l’objet fenêtre
Document Object Model (DOM) pour
ouvrir l’URL dans une fenêtre séparée quand l’utilisateur clique sur l’action.

La seule tâche restante consiste à 
positionner l’appel sur DisplayURLAction.
La page ASPADOComplex.asp
contient des boucles faisant l’itération
des axes que la requête MDX a produits
dans le cellset. Comme les légendes
des en-têtes de lignes et de colonnes
sont imprimées sur la page
ASPADOComplex.asp, l’instruction suivante
appelle la procédure
DisplayURLAction avec le UniqueName
du membre:

Call
   DisplayURLAction(cst.Axes(1).Position s(j)
   .Member(h),UniqueName)

Si DisplayURLAction trouve des actions,
la procédure ajoute leur image
au flux HTML et envoie le flux au client.
La page résultante montre le résultat
d’une requête MDX qui utilise le
membre CourseNum avec les actions
activées pour le cours 2072, comme le
montre la figure 5. Notons que l’icône
directement à  droite de chaque numéro
de cours est l’indice visuel que
les actions URL existent pour ce
membre.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010