Créer de nouveaux datatypes
Chaque datatype est implémenté sous forme de classe ; il est propre à une version de SGBD. Il est possible d'utiliser des masques avec les datatypes.
Créer des datatypes - Exemple pour Oracle 10
Objectif
Faire apparaître un datatype Data8 (numérique avec une longueur et une décimale) dans les scripts ORACLE.
Etapes
Les étapes sont les suivantes :
1. Créez un nouveau datatype dans HOPEX.
2. Reliez le datatype à la version du SGBD cible (en l'occurrence Oracle 10).
3. Reliez le datatype au type correspondant dans le paquetage "Pivot".
4. Paramétrez les conditions sur chaque lien, et ce dans les deux sens (du datatype aux types pivots et du type pivot aux datatypes).
*Pour plus d'informations sur les liens d'équivalence et les conditions, voir Déduire les datatypes des colonnes à partir des types des attributs.
Conditions préalables
Pour voir apparaître les paquetages contenant les datatypes des SGBD, vous devez importer le module correspondant. Voir Importer une version de SGBD.
*Il est recommandé de ne définir un datatype que dans une seule version de SGBD.
Pour importer le module des datatypes :
1. A partir de votre version HOPEX, ouvrez la console d'administration HAS Console.
2. Dans le menu de navigation, cliquez sur Modules.
La console HAS affiche :
les modules installés
le store dans lequel vous pouvez télécharger des modules
les modules à mettre à jour
3. Dans le store, recherchez le module à installer puis téléchargez-le.
De plus, certaines données sont protégées dans HOPEX. Afin de pouvoir modifier les objets contenus dans les paquetages des SGBD :
1. Ouvrez le bureau d'administration avec le profil Administrateur HOPEX.
2. Dans la partie supérieure droite du bureau, cliquez sur le menu associé au compte de l'administrateur puis cliquez sur Options.
3. Dans les options, dépliez le dossier Installation.
4. Cliquez sur le dossier Personnalisation.
La liste des options liées à la personnalisation apparaît dans la partie droite de la fenêtre.
5. Dans le champ Autoriser la modification des données HOPEX, sélectionnez "Autoriser".
6. Cliquez sur OK.
Créer un nouveau datatype
Pour créer un nouveau datatype dans HOPEX Data Governance :
1. Cliquez sur le menu de navigation Architecture > Dictionnaires de données.
*Dans HOPEX Data Architecture, cliquez sur le menu de navigation Dictionnaires > Vue hiérarchique.
2. Dépliez le dossier des dictionnaires de données.
3. Cliquez sur l'icône du paquetage "Oracle 10" et sélectionnez Nouveau > Classe.
La fenêtre de Création d'une classe s'ouvre.
4. Nommez votre classe "Data8 (@L,@D)".
5. Ouvrez la fenêtre de propriétés de cette nouvelle classe.
6. Dans la page Caractéristiques, sélectionnez dans le champ Stéréotype la valeur "Expression".
7. Dans le champ Type expression qui apparaît, un peu plus bas, sélectionnez la valeur "Data8 (@L,@D)".
Vous pouvez constater dans le navigateur qu'une nouvelle classe "Data8" a été créée.
*Cette nouvelle classe est créée automatiquement pour les besoins de fonctionnement d'UML.
Relier le datatype au type pivot
Si vous voulez obtenir ce datatype après synchronisation, vous devez lui donner un équivalent au niveau logique :
1. Ouvrez la fenêtre de propriétés du datatype "Data8 (@L,@D)".
2. Cliquez sur la page Compléments.
3. Faites un clic droit sur le dossier "Equivalence conceptuelle" et sélectionnez Relier.
4. Dans la fenêtre de recherche, sélectionnez la classe "P-Numeric".
Paramétrer les conditions sur les liens
Pour paramétrer la condition sur les liens :
1. Faites un clic droit sur la classe "Data8" et sélectionnez Explorer.
2. Dépliez le dossier "Equivalence conceptuelle".
3. Sélectionnez le dossier vert "Programming Language Equivalence".
Vous constatez qu'il existe trois autres correspondances pour Oracle 10.
Il s'agit donc de modifier les conditions sur ces correspondances pour qu'elles soient cohérentes avec les conditions posées sur le nouveau datatype.
4. Faites un clic droit sur le datatype "NUMBER(@L,@D)" et sélectionnez Propriétés.
5. Dans la page Textes, sélectionnez "Condition d'équivalence de langage", et modifiez le texte pour qu'il corresponde à ceci :
Sub ConditionInvoke (Colonne, ByRef bValid)
bValid = False
Dim IsNumericLength
IsNumericLength = IsNumeric(Colonne.Length)
Dim IsNumericDecimal
IsNumericDecimal = IsNumeric(Colonne.Decimal)
If (IsNumericLength and IsNumericDecimal) Then
If (Colonne.Length <> 8) Then
bValid = True
End If
End If
End Sub
 
6. De la même façon, ajoutez le texte suivant dans la fenêtre de propriétés du nouveau datatype "Data8".
Sub ConditionInvoke (Colonne, ByRef bValid)
bValid = False
Dim IsNumericLength
IsNumericLength = IsNumeric(Colonne.Length)
Dim IsNumericDecimal
IsNumericDecimal = IsNumeric(Colonne.Decimal)
If (IsNumericLength and IsNumericDecimal) Then
If (Colonne.Length = 8) Then
bValid = True
End If
End If
End Sub
Vérifier les datatypes
Pour vérifier les datatypes :
1. Dans les propriétés de la base de données, cliquez sur la page Tables.
2. Ouvrez les propriétés de la table.
3. Cliquez sur la page Colonnes.
4. Affichez les propriétés d'une colonne concernée par les conditions posées sur le datatype.
5. Vérifiez que le masque affiché dans la colonne Datatype est bien "Data8 (%l, %d)" pour cette colonne.
Créer des datatypes - Exemple pour SQL Server 7
Objectif
Relire des colonnes SQL Server 7 comportant un datatype non standard.
Les manipulations sont les mêmes que pour Oracle (voir Créer des datatypes - Exemple pour Oracle 10). Cette fois-ci, nous ne créerons pas de masque.
Créer un nouveau datatype
Pour créer un nouveau datatype :
1. Dans le bureau, cliquez sur le menu de navigation puis sur Architecture des données > Données logiques.
2. Cliquez sur la tuile Dictionnaires de données.
3. Cliquez sur l'icône du paquetage "Oracle 10" et sélectionnez Nouveau > Classe.
La fenêtre de Création d'une classe s'ouvre.
4. Nommez votre classe "TLibelleLong".
5. Ouvrez la fenêtre de propriétés de cette nouvelle classe.
6. Dans la page Caractéristiques, sélectionnez dans le champ Stéréotype la valeur "Expression", puis cliquez sur OK.
Relier le datatype au type pivot
Pour relier le datatype au type pivot :
1. Ouvrez la fenêtre de propriétés du datatype "TLibelleLong".
2. Sélectionnez la page Compléments.
3. Faites un clic droit sur le dossier "Equivalence contextuelle" et sélectionnez Relier.
4. Dans la fenêtre de recherche, sélectionnez la classe "P-Text".
Paramétrer les conditions sur les liens
Pour paramétrer la condition sur les liens :
1. Faites un clic droit sur la classe "TLibelleLong" et sélectionnez Explorer.
2. Sélectionnez le dossier vert "Programming Language Equivalence".
Vous constatez qu'il existe une autre correspondance pour SQL Server 7.
3. Ouvrez la fenêtre de propriétés du datatype "text".
4. Dans la page Textes, sélectionnez "Condition d'équivalence de langage", et modifiez le texte pour qu'il corresponde à ceci :
Sub ConditionInvoke (Colonne, ByRef bValid)
bValid = False
Dim IsNumericLength
IsNumericLength = IsNumeric(Colonne.Length)
If (IsNumericLength) Then
If (Colonne.Length > 255) Then
bValid = True
End If
End If
End Sub
5. De la même façon, ajoutez le texte suivant dans la fenêtre de propriétés du nouveau dataype "TLibelleLong".
Sub ConditionInvoke (Colonne, ByRef bValid)
bValid = False
Dim IsNumericLength
IsNumericLength = IsNumeric(Colonne.Length)
If (IsNumericLength) Then
If (Colonne.Length <= 255) Then
bValid = True
End If
End If
End Sub