M-PS DT Unix Windows MapReport Configuration
Sommaire
- 1 Présentation / Objectif
- 2 Pré-requis
- 2.1 ORACLE
- 2.2 Message d’erreur
- 2.3 Utilisation de plusieurs instances
- 2.4 Informations utiles sur Oracle
- 2.5 Test de connexion sous un utilisateur autre que oracle
- 2.6 Informations sqlplus
- 2.6.1 Voir les erreurs
- 2.6.2 Execution de la procédure
- 2.6.3 Auto-connexion sans user/login
- 2.6.4 Liste des procédures disponibles
- 2.6.5 Suppression d'une procédure
- 2.6.6 Création de la procédure
- 2.6.7 Création de la procédure select
- 2.6.8 Exécution d’une procédure retournant une valeur
- 2.6.9 Utilisation des procédures dans MapReport
- 2.7 MYSQL
- 2.7.1 Procédure d'installation de MySQL
- 2.7.2 Démarrage du serveur MySQL
- 2.7.3 Arrêt du Serveur
- 2.7.4 Lancement d'une session utilisateur
- 2.7.5 Pour lister les databases
- 2.7.6 Pour utiliser une base
- 2.7.7 Pour lister les tables
- 2.7.8 Pour voir les informations sur une table
- 2.7.9 Pour créer un index
- 2.7.10 Pour créer une database
- 2.7.11 Pour détruire une database
- 2.7.12 Pour créer une table
- 2.7.13 Pour détruire une table
- 2.8 SQL Server 2000
Présentation / Objectif
Ce document présente comment connecter le serveur MAPPING à une base de données et comment générer des tables exploitables dans MAPREPORT.
Pré-requis
Niveau de Connaissance Produit Requis pour utiliser ce document : MAPPING WINDOWS et UNIX – Débutant / Intermédiaire / Avancé
Procédure
Configuration de la base de données
ORACLE
Il faut configurer dans le menu d'exploitation, Gestion de la configuration les variables suivantes :
[LIB_PATH] /apps/mapping/bin
[MAPREPORT_SERVERTYPE] oracle [MAPREPORT_SERVERADDRESS] nom_de_l_instance_ORCL_par_exemple [MAPREPORT_SERVERUSER] nom_du_user_oracle [MAPREPORT_SERVERPASSWORD] pwd_du_user_oracle [ORACLE_HOME] /u01/app/oracle/product/9.0.1
Il faut créer dans /apps/mapping/bin, un lien sur libclntsh.sl qui se nomme liboracle.sl. Pour information, s’il existe une version lib32, il faut utiliser cette version.
"ln -s /u01/app/oracle/product/9.0.1/lib32/libclntsh.sl.9.0 liboracle.sl"
Pour trouver cette bibliothèque vous pouvez
taper "find / -name "libclntsh.* 2>/dev/null".
Puis "ln -s /u01/app/oracle/product/9.0.1/lib32/libclntsh.sl.9.0 liboracle.sl"
Tester en lançant map_036, il doit afficher un usage sans erreur.
Message d’erreur
Si vous avez un problème pour la bibliothèque, contrôler [LIB_PATH] /apps/mapping/bin Si le message suivant apparaît "Error OCILogon - Error while trying to retrieve text for error ORA-12154", il faut définir la variable d'environnement ORACLE_HOME :
- dans le .profile de l'utilisateur lançant le report (mapadmin ou nobodyma) faire export ORACLE_HOME=/u01/app/oracle/product/9.0.1
- ou dans la configuration de mapping.conf ajouter [ORACLE_HOME] 01/app/oracle/product/9.0.1
Si vous avez des problèmes de caractères, vérifier que la variable d’environnement NLS_LANG est correctement définie. NLS_LANG=french_france.WE8ISO8859P15
Utilisation de plusieurs instances
Pour utiliser une autre instance d'oracle, il faut faire export MAPREPORT_SERVERADDRESS=nom_de_l_autre_instance export MAPREPORT_SERVERUSER=nom_du_user_oracle export MAPREPORT_SERVERPASSWORD=pwd_du_user_oracle puis lancer le maprunrpt.
ou
Dupliquer le fichier /etc/mapping/mapping.conf en /etc/mapping/mapping.conf.oracle_bis Modifier dans /etc/mapping/mapping.conf.oracle_bis [MAPREPORT_SERVERTYPE] oracle [MAPREPORT_SERVERADDRESS] nom_de_l_instance_ORCL_par_exemple [MAPREPORT_SERVERUSER] nom_du_user_oracle [MAPREPORT_SERVERPASSWORD] pwd_du_user_oracle Puis faire export MAPPING_PATH=/etc/mapping/mapping.conf.oracle_bis puis lancer le maprunrpt
Informations utiles sur Oracle
Si vous avez des problèmes, à titre d'information Le profil administrateur d'oracle est souvent : oracle Il faut contrôler les variables d’environnement d’Oracle par la commande "set | grep ORACLE" La réponse doit être ORACLE_BASE=/u01/app/oracle ORACLE_DOC=/u01/app/oracle/product/9.0.1/doc ORACLE_HOME=/u01/app/oracle/product/9.0.1 ORACLE_SID=orcl
Le démarrage d'Oracle se fait de la manière suivante (sous le profil oracle, doit être sous SQLPLUS ) sqplplus /nolog connect SYS/change_on_install as SYSDBA startup exit
Le démarrage du listener d'Oracle se fait par " lsnrctl start" sous oracle (Ne doit pas être sous SQLPLUS), ce qui permet la connexion depuis une machine différente.
Test de connexion sous un utilisateur autre que oracle
"sqlplus user:pwd" se connecte en local pour tester la connexion par le listner (méthode de connexion utilisée par MapReport) faire : "sqlplus user:pwd@INSTANCE"
Creation d'un utilisateur
"create user map_user IDENTIFIED BY map_user_pwd;" "grant connect,resource to map_user;"
Donner l'autorisation d'utiliser une table d'un autre utilisateur
"grant SELECT on autre_user.table_autre_user to map_user;"
Donne les tables accessibles du user connecté
"select TABLE_NAME from user_tables;"
Informations sqlplus
Voir les erreurs
show errors;
Execution de la procédure
EXEC MAPROCEDURE;
Auto-connexion sans user/login
sqlplus alexis/alexis@ORCL
Liste des procédures disponibles
SELECT OBJECT_NAME FROM USER_PROCEDURES;
Suppression d'une procédure
DROP PROCEDURE MAPROCEDURE;
Création de la procédure
CREATE OR REPLACE PROCEDURE MAPROCEDURE AS BEGIN INSERT INTO MATABLE (MYFLOAT) VALUES(1.23); END; . RUN MAPROCEDURE;
CREATE OR REPLACE PROCEDURE MAPROCEDUREINOUT (valeurin IN NUMBER, valeurout OUT NUMBER) AS BEGIN valeurout := 2 * valeurin; END; . . RUN MAPROCEDUREINOUT;
Création de la procédure select
create or replace package types as type cursorType is ref cursor; end; / CREATE OR REPLACE PROCEDURE MAPROCEDURESELECT (p_cursor in out types.cursorType) AS BEGIN open p_cursor for SELECT * FROM MATABLE; END; . RUN MAPROCEDURESELECT;
Exécution d’une procédure retournant une valeur
variable c refcursor exec MAPROCEDURESELECT ( :c ) print c
variable c NUMBER exec MAPROCEDURINOUT ( 2 , :c ) print c
Utilisation des procédures dans MapReport
Cas d'une procédure qui renvoie une table, à mettre dans une table de type SQL dans REPORT, avec pour description d'utilisation. SQL "BEGIN myprocedure(:mycursor); END;"
!! Attention le mot clé :mycursor est réservé.
Cas d'une procédure qui renvoie une valeur
DB.MAVALEUR = SQL "BEGIN myfunc(12); END;"
Cas d'une procédure qui renvoie plusieurs valeurs PARAM ( $DB.RESULTAT , $DB.RESULTAT2 ) SQL "BEGIN MAPROCEDUREINOUT" ( $TRIE.ID , ":param1 , :param2 ) ; END;"
MYSQL
Procédure d'installation de MySQL
Sous root, - Télécharger la version de MySQL pour votre plateforme, exemple sur AIX (mysql-max-4.0.13-ibm-aix4.3.3.0-powerpc.tar) shell> groupadd mysql shell> useradd -g mysql mysql shell> cd /usr/local shell> gunzip < /path/to/mysql-VERSION-OS.tar.gz | tar xvf - shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql shell> scripts/mysql_install_db shell> chown -R root . shell> chown -R mysql data shell> chgrp -R mysql . shell> bin/safe_mysqld --user=mysql & - Demander à votre administrateur d'ajouter dans les scripts de démarrage de votre machine "bin/safe_mysqld --user=mysql &" - Placer dans /apps/mapping/bin, le fichier libstaticmysql.so (sur AIX et LINUX) ou libmysql.so (sur HPUX).
Dans Gestion de la configuration Sur AIX : [MAPREPORT_SERVERTYPE] mysqlstatic Sur LINUX : [MAPREPORT_SERVERTYPE] mysqlstatic Sur HPUX : [MAPREPORT_SERVERTYPE] mysql
Indépendant de la plateforme [MAPREPORT_SERVERADDRESS] 127.0.0.1 [MAPREPORT_SERVERUSER] root [MAPREPORT_SERVERPASSWORD] [LIB_PATH] /apps/mapping/bin
Démarrage du serveur MySQL
cd /usr/local/mysql bin/safe_mysqld --user=mysql &
Arrêt du Serveur
cd /usr/local/mysql/bin ./mysqladmin shutdown
Lancement d'une session utilisateur
cd /usr/local/mysql/bin ./mysql
Pour lister les databases
show databases;
Pour utiliser une base
use MADATABASE;
Pour lister les tables
show tables;
Pour voir les informations sur une table
describe tables;
Pour créer un index
CREATE INDEX iMonIndex ON MATABLE (NOMCHAMP);
Pour créer une database
CREATE DATABASE MADATABASE;
Pour détruire une database
DROP DATABASE MADATABASE;
Pour créer une table
CREATE TABLE MATABLE (MONCHAMP CHAR(10))
Pour détruire une table
DROP TABLE MATABLE
SQL Server 2000
Installation de SQL Server 2000
Procéder à l’installation de SQL Server 2000. La procédure par défaut est suffisante.
Connexion Base de données au Serveur Mapping
Mapping ne se connecte pas directement à la base de données mais il se connecte à un lien ODBC qui se connecte à la base de données. Il faut donc tout d’abord créer un lien ODBC et ensuite connecter Mapping à ce lien ODBC.
Création d’un lien ODBC
Allez dans le panneau de configuration Outil d’administration / Sources de données (ODBC)
Cliquez sur Ajouter
Descendre jusqu'à SQL Server.
Cliquez sur Terminer
Tapez le nom de votre ODBC ainsi que sa description et l’adresse/nom_DNS du serveur base de données.
Ici le serveur tourne sur ce poste là donc j’ai mis l’adresse loopback.
Cliquez sur terminer et faites un test de connexion.
Normalement la connexion devrait être OK.
Connexion de l’ODBC à MAPPING
Allez sur le server MAPPING. MAPPING Operations Menu / Configuration Management
=Contrôle du fonctionnement.
Pour contrôler qu'il n'y a pas de problème,
- Ouvrir une session telnet
- Puis /apps/mapping/bin/map_036
Un message doit apparaître sans erreur.
Démarrage du serveur de développement
Sur le serveur de production, vous n'avez pas besoin de lançer ce serveur, il permet juste à l'application de développement d'obtenir une preview sur les bases réelles. Le serveur de développement est le programme /apps/mapping/bin/map_855, il tourne en tache de fond. A chaque preview, il lance un travail nommé /apps/mapping/bin/map_854. Il utilise le port configuré dans /apps/mapping/bin/mapping.conf ou dans la gestion de la configuration en web [MAPREPORT_PORT] 6789 Vous devez configurer les postes de développement de MAPREPORT sur le bon port. Pour le démarrer : en mode web, il faut aller dans le menu de MAPREPORT, puis faire démarrer le serveur de développement. en telnet, il faut faire /apps/mapping/bin/map_855 sur une ligne de commande
Arrêt du serveur de développement Pour arrêter le serveur : en mode web , il faut aller dans le menu de MAPREPORT, puis faire arrêter le serveur de développement. en mode telnet : faire /apps/mapping/bin/map_855
Extraction des fichiers de définition de base de données
Pour extraire les définitions des databases :
- utiliser l'interface Web
- dans le Menu MAPREPORT, sélectionner Extraction définition
Vous pouvez à partir de ce moment là soit browser la base de données (pour cela cliquer sur l’icône à gauche du nom de la base de données qui vous intéresse), soit exécuter une commande SQL quelconque.
Si on clique sur la commande SQL, il faut ensuite taper la commande SQL désirée, puis cliquer sur Exécuter.
Cliquez sur , le résultat de la requête apparaît :
Si on clique sur l’icône, il faut ensuite sélectionner l’une des trois sous icônes. La base de données pour voir la structure de la table. La vue pour voir les 1000 premiers enregistrements de la table. L’extraction pour envoyer la définition de la table au format MAPREPORT.
Les descriptions sont copiées dans :
/apps/mapping/import/mapreport/mapreport/MADATABASE.LIB/MATABLE.FILE
Il faut configurer le poste de développement de MAPREPORT pour utiliser /apps/mapping/import/mapreport.
Utiliser le profil administrateur de MAPPING "mapadmin" pour éviter tout problème de droits.