M-PS DT Unix Windows MapReport Configuration

De MappingDoc

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.