Archive

Archive for December, 2011

Lire un fichier XML Infopath avec SSIS

December 27th, 2011 No comments

Dans  SSIS, lorsqu’on utilise un fichier XML issus de Infopath  comme source XML, on obtient l’erreur suivante :

«  Unable to infer the XSD from the XML file. The XML contains multiple namespaces »

Pour pouvoir utiliser ce fichier avec SSIS, il faut :

  1. Supprimer les Namespaces
  2. Ajouter une balise pour que SSIS interprète les champs du fichier XML comme des colonnes d’une même table et non comme des  tables distinctes.

Ceci peut se faire via un script de transformation XSLT .

Dans le control flow, il faut créer une tache  XML  de type XSLT.

Elle a besoin de 3 connections sur 3 fichiers différents :

Input : C’est une connexion sur le fichier XML source

Output : C’est le résultat de la transformation. Cela peut être une connexion sur un fichier (nécessaire pour générer une première fois le fichier XSD) , ou une variable, qui pourra ensuite être utilisée comme source XML.

Second Operand : C’est le script XSLT qui sera appliqué. Le SecondOperandType peut être une connexion si le script est stocké dans un fichier externe, ou bien DirectInput, si le code du script est saisi directement dans la valeur de SecondOperand.

Voici le contenu du script XSLT pour supprimer les Namespaces et générer la balise <myTable> :

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no" /><xsl:template match="/|comment()|processing-instruction()">
<xsl:copy>
<myTable>
<xsl:apply-templates />
</myTable>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|node()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>

Le fichier résultat est maintenant utilisable par SSIS comme source XML.

Categories: Divers Tags:

Comparaison Master Data Maestro Desktop vs MDS v2

December 20th, 2011 1 comment

Dans le cadre d’un de mes projets, nous avons mis en œuvre avec succès SQL Server Master Data Services v1, version incluse avec la licence SQL Server 2008 R2.

Nous avons noté que le produit est dans très bien et répond à ce pourquoi il est fait : gérer et orchestrer les données de référence.

Cependant, nous avons noté de grandes disparités plutôt curieuses :

  • Le moteur de la solution est très bon et plutôt mature. Par moteur nous entendons les fonctionnalités de la solution, sa Framework et son architecture.
  • Par contre, l’interface graphique proposée est d’une pauvreté dans la version 1 assez affligeante. Pour ma part, l’écart est tel entre la qualité du moteur et la qualité de l’interface que je suppose une attente avec Stratature lors du rachat du produit par Microsoft.

L’objet de ce document est donc de faire une comparaison entre différentes interfaces envisageables pour MDS. La philosophie d’un outil de Master Data voulant que ce soit un utilisateur fonctionnel qui gère ses données de référence, il va de soi que l’outil devra être simple, efficace, ergonomique et si possible très proche de ses outils de bureautique.

Nous allons donc passer en revue :

  • L’interface web de MDS v1
  • Master Data Maestro Desktop de Profisee
  • L’interface web de MDS v2
  • L’interface Excel de MDS v2

1/ Interface web de MDS v1


C’est l’interface web ci-dessus qui est proposée par défaut avec MDS v1. En l’état l’interface est difficilement utilisable, à moins d’avoir beaucoup de patience. Chaque action, tel que passer un champ en modification ou écrire un filtre est une torture.

A savoir aussi que l’affichage est étriqué. Impossible d’avoir une vision d’ensemble du contenu de l’entité, la gestion des pages est une calamité.

L’interface est un beau plantage. Et c’est très dommage, car c’est sans aucun rapport avec la qualité intrinsèque du moteur.

2/ Master Data Maestro Desktop de Profisee pour MDS v1

Master Data Maestro est en fait un client lourd qui se connecte au service web de MDS v1.

L’application ne modifie en rien le serveur MDS v1, aucun patch n’est nécessaire.

L’installation prends 5min et en rien de temps les données de référence sont accessibles.


La connexion au service web de MDS v1.


L’application est rapide, l’interface est claire et très proche de MDS v1. On sent qu’il s’agit là de l’interface naturelle du produit.

L’application répond très bien à ce qu’on lui demande et il est parfaitement envisageable de mettre cet outil dans les mains d’un utilisateur fonctionnel.

Côté tarif, il faudra débourser environ 15 000 € pour 5 utilisateurs, 32 000 € pour 10 avec la maintenance…

3/ L’interface web de MDS v2

SQL Server Master Data Services v2 est inclus dans la licence SQL Server 2012. Nous avons testée la version incluse avec la RC0.

Le produit est un service pack de MDS v1. Il ne faut pas s’attendre côté moteur à de grandes révolutions. Normal, le moteur était de qualité et ce n’est pas là que cette mise à jour était attendue. On aurait quand même pu s’attendre à une mise à jour du gestionnaire de règles de gestion qui est resté assez archaïque.

Par contre, niveau interface, il y a du nouveau. Déjà, l’interface utilise Silverlight 5 ce qui laisse présager une interface web riche.


Et en effet, Silverlight change tout. L’interface est vraiment très bien : très rapide, très fonctionnelle : filtre, tri, pagination, tout a été revu et plutôt en bien. Une bonne surprise bien qu’on s’y attendait.

En termes d’utilisation, pour ma part, l’interface web de MDS v2 vaut à elle seule le client lourd de Master Data Maestro.

4/ L’interface Excel de MDS v2

Mais la bonne surprise vient du fait que MDS s’intégré avec Excel. La solution de Master Data Management prend enfin tout son sens en se rapprochant sensiblement des utilisateurs et peut ainsi concurrencer les fichiers de données de référence maintenues dans des fichiers Excel.

Après installation du complément Excel, l’interface de MDS est accessible directement via le ruban de Excel 2010. Attention le complément ne fonctionne pas avec Excel 2007.


Un petit clic sur le bouton Connect pour se lier au service web de MDS v2 et c’est parti, Excel se mets en lien avec la solution de MDM.

Par contre, en RC0, l’application est assez lourde à se connecter. Espérons que ces temps de latence seront sensiblement améliorés. La connexion au serveur et la récupération des données d’une entité est terriblement long. Trop long. Attendez-vous à patienter devant


Par contre, une fois les données rapatriées dans la feuille Excel, l’interaction avec MDS est exceptionnelle.


La gestion des données se réalise alors avec tout le confort d’Excel. Les propriétés contraintes apparaissent sous forme de liste déroulante comme le montre la copie écran ci-dessus. Les données modifiées apparaissent en rose et chaque publication donne l’occasion d’annoter chacune de ces modifications.


Annotation des modifications

L’interface bénéficie pleinement d’Excel. L’utilisateur qui en a le droit ajoute une nouvelle colonne pour créer une nouvelle propriété et ajoute une nouvelle ligne pour créer une nouvelle entrée. Les fonctions de tri et de filtre sont celles d’Excel, elles sont connues par l’utilisateur est jugée efficace.

Conclusion

Si vous disposez de MDS v1 et que vous cherchez comme moi une interface utilisateur plus conforme aux attentes générées par la solution de MDM, je vous conseille de vous tourner vers MDS v2. L’effort pour passer de la v1 à la v2 est faible et le gain que ce soit avec l’interface web et surtout avec l’interface Excel est exceptionnel.

Il faut juste espérer maintenant que les problèmes de lenteur du complément Excel soient réglés avec la version finale de SQL Server 2012.

Le passage Projet Produit, étape clé dans le succès des projets BI

December 5th, 2011 No comments

Imaginez… Un matin, vous êtes sereinement en train de travailler sur un nouveau projet… Jusqu’à ce que l’on vous téléphone. C’est un ancien client affolé, qui vous appelle parce que l’application que vous avez livrée 9 mois auparavant est tombée en rade au cours de la nuit. Il vous faut alors vous dégager du temps en urgence, pour vous replonger en catastrophe dans un contexte que vous avez largement eu le temps d’oublier,… et en plus les conditions de votre intervention « pompier » n’ont pas été définies au préalable… Le cauchemar !
Si au moins une partie de ce scénario sonne comme un air de déjà-vu pour vous, cet article consacré à la gestion du passage en maintenance pourrait vous intéresser 😉

Le cas de figure évoqué en introduction est volontairement caricatural, mais c’est pour mettre en lumière la nécessité de bien gérer le passage projet produit dans les projets BI dès qu’ils atteignent une certaine taille.
Le décisionnel n’échappe pas à la règle propre à tout projet informatique ou industriel : quel que soit la technologie utilisée, il faut consacrer du temps à la transformation du projet en produit. Cette étape est indispensable au succès du projet et à son bon ressenti par le client.
Elle permet en outre de clarifier le rôle de chacun et donne l’opportunité à l’équipe projet de « passer le relais » proprement aux personnes qui auront le produit en charge.

Trois bonnes pratiques permettent de préparer « en douceur » le passage en maintenance tout au long du projet :

  1. Anticipation des problématiques maintenance
  2. Rédaction et validation du contrat de maintenance
  3. Période de transition projet-produit

1/ Anticipation des problématiques maintenance

Il est toujours bon d’aborder la problématique maintenance le plus tôt possible dans le cycle de vie du projet. Elle doit faire partie de la phase d’étude et idéalement elle est même évoqué en avant-vente.

Il s’agit de se poser à chaque étape significative du projet les questions indispensables sur le devenir du projet que l’on développe. Par exemple (liste non exhaustive) :

  • Sur quelle plate-forme sera déployée l’application ?
  • Existe-t-il une équipe de maintenance pour cette plate-forme?
  • Ou bien le projet en est-il le « pilote » ? (Auquel cas il va probablement “essuyer les plâtres” de sa mise en place et ce surcoût devra être anticipé)
  • Quel sera le “running cost” (coût d’exploitation) du produit une fois passé en exploitation ?
  • Ce coût a-t-il été budgété lors de l’évaluation du projet ?
  • Cette équipe de maintenance a-t-elle la bande passante pour gérer une application de plus ?
  • Cette équipe est-elle suffisamment formée aux technologies utilisées par le futur produit ?
  • Etc…

Le suivi de ces questions doit être effectué en continue à mesure que le projet progresse. A la manière d’une analyse de risque, il faut réévaluer régulièrement la situation de façon à s’assurer que les choix et les aléas du projet permettent de rester en phase avec les objectifs pour le passage en maintenance.

2/ Contrat de maintenance

Une autre bonne pratique pour envisager sereinement le passage en maintenance, est de se mettre d’accord sur un contrat de maintenance (parfois appelé « maintenance charter » ou « maintenance agreement ») avec l’équipe qui aura en charge l’exploitation du projet devenu produit.
Le meilleur moment pour commencer à rédiger ce contrat est souvent lorsque l’on passe en phase de recette de l’application. A ce stade le projet est suffisamment avancé pour se consacrer de façon efficace au contrat de maintenance, et il reste encore du temps à chaque partie pour préparer ensemble la mise en production.

Le contrat de maintenance est destiné à permettre :

  • A l’équipe de maintenance de valider la documentation livrée par l’équipe projet (avec des aller/retour possible, si elle ne lui parait pas suffisamment complète) :
    • Doc technique de l’application
    • Fiches d’exploitation
    • Procédures de maintenance
    • Doc de reprise en cas de panne (“what if”)
    • Etc…
  • De définir le périmètre de ce qui relève de la maintenance et de l’évolution. C’est à dire qui prendra en compte tel type de demande utilisateur (équipe de maintenance ? nouvelle version ? ou nouveau projet ?)
  • De nommer des key-users fonctionnels qui serviront de référents en cas de panne nécessitant un arbitrage « métier »
  • De définir des référents techniques (souvent issus de l’équipe projet) si l’équipe de maintenance ne parvient pas à se dépêtrer d’une panne, qui pourront intervenir au titre d’une prestation exceptionnelle

Le key-user fonctionnel et le référent technique sont des partenaires essentiels de l’équipe maintenance. En fonction du degré d’autonomie de la maintenance, on devra s’assurer qu’ils aient une disponibilité suffisante pour l’assister.

3/ Période de transition projet-produit

Il est aussi fortement recommandé de prévoir une période de transition durant laquelle l’équipe projet et l’équipe de maintenance travaillent ensemble à la fin du projet. Cela permet d’assurer un transfert de compétence efficace. La durée de cette période dépend à la fois de la complexité du projet et de l’expérience de l’équipe en charge du produit une fois livré.
Durant cette phase l’équipe projet laisse progressivement la main à l’équipe de maintenance et gère avec elle les évènements les plus épineux. C’est une façon de s’assurer que la transmission de connaissance a été réellement efficace.

On peut imaginer cette coopération sur un environnement de production ou un environnement de « pre-prod » (si par exemple la sécurité ne permet pas à l’équipe projet d’avoir les droits d’accès nécessaires). L’essentiel étant de le faire sur un environnement représentatif, dans un contexte aussi proche du réel que possible, et de ne pas laisser la maintenance seule « du jour au lendemain ».
C’est aussi souvent l’occasion de compléter la documentation avec des cas réels de maintenance gérés par les deux équipes.

Enfin, en BI, par manque de ressource, on confie souvent – à tord – la maintenance à l’administrateur de base de données (DBA), alors que les rôle sont quand même sensiblement différents. D’une part le DBA est sans doute surqualifié pour la plupart des tâches de maintenance (ou au moins pour le premier niveau d’intervention), et d’autre part il a souvent un niveau de disponibilité trop faible pour s’en occuper efficacement. Le choix et la composition de l’équipe de maintenance a donc toute son importance.

Ainsi donc se termine cet article qui a tenté de recenser les bonnes pratiques en matière de passage projet produit. N’hésitez pas à laisser des commentaires si vous avez vous aussi des leviers pour faciliter la transmission d’un projet à la maintenance.

Installation d’Oracle client sur un poste 64 bits et configuration de SSIS

December 5th, 2011 No comments

 

1. Introduction

L’objectif de cet article est de vous aidez à configurer votre poste 64 bits pour travailler avec des connexions Oracle client en utilisant SSIS.

2. Installation

Pour commencer nous allons installer la version cliente 32 bits d’oracle. Nous utiliserons comme exemple, la version d’oracle 11.2.0

2.1. Installation Oracle 32 bits.

Choisissez Exécution comme type d’installation, ceci vous permets de notamment de bénéficier d’outil comme sql developper (pour se connecter sur des BDD oracle, faire des requêtes sql etc…)

Après avoir choisi vos langues, choisissez le répertoire où sera installé Oracle. Si vous êtes plusieurs à travailler sur ce poste, je vous conseil de choisir d’installer la version cliente sur un répertoire racine (C : ou D :..)

Pour le reste, faites Suivant jusqu’à la fin de l’installation.

2.2. Installation Oracle 64 bits.

Pour l’installation de la version 64 bits procédez de la même façon que la version 32 bits. Choisissez à nouveau un répertoire à la racine de préférence.

Faites Suivant jusqu’à la fin de l’installation.

3. Configuration des providers Oracle

Vous devez modifier des valeurs de clé de registre, afin de bénéficier des providers Oracle avec SSIS.

3.1. Configuration 32 bits

Connectez vous à la base de registre (tapez la commande regedit dans exécuter). Dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI, modifiez les clés suivantes :

  • OracleOciLib = oci.dll
  • OracleSqlLib = orasql11.dll   (old: SQLLib80.dll) 
  • OracleXaLib = oraclient11.dll  (old: xa80.dll) 

3.2. Configuration 64 bits

Dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI, modifiez les clés suivantes :

  • OracleOciLib = oci.dll
  • OracleSqlLib = orasql11.dll   (old: SQLLib80.dll) 
  • OracleXaLib = oraclient11.dll  (old: xa80.dll) 

Vous devez rebooter la machine.

 

4. Créer votre connexion Oracle dans le TNSNAME

Pour créer votre connexion Oracle vous avez 2 solutions soit vous passez par l’interface d’oracle comme ci-dessous, soit vous allez directement la configurer dans le fichier TNSNAME avec Notepad.

le TNSNAME est dans le répertoire suivant %ORACLE_HOME%/network/ADMIN/ (emplacement du logiciel que vous avez choisi pendant l’installation). Vous devez le configurer dans le répertoire 32 bits et 64 bits

Pour vérifier si votre connexion est valide, ouvrez un éditeur de commande et tapez la commande tnsping
NonDuServiceOracle

Cette commande permet de vérifier que votre service Oracle répond à travers le réseau.

5. Configuration de SSIS

Vous pouvez à présent, utiliser votre connexion cliente Oracle avec SSIS. Dans votre projet SSIS, choisissez une connexion OLEDB de type OLEDB for Oracle Provider. Il y a deux choses importantes à paramétrer. La solution du projet en mode 32 bits et le connecteur OLEDB.

5.1. Forcer la solution du projet SSIS à travailler en 32 bits

Sachez que les providers OLEDB pour Oracle sur les plateformes Microsoft marchent qu’en 32 bits. Dans les propriétés de la solution SSIS changer l’option suivante :

5.2. Modifier la propriété UseDefaultCodePage du connecteur OLEDB

Pour éviter un warning au niveau du connecteur OLEDB modifier la propriété suivante :

 

 

Voilà vous pouvez extraire vos données.

FIN

 

 

Categories: Trucs & astuces Tags: