MapReport Configuration

De MappingDoc

MAPPING : Configuration de bases de données pour MapReport


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 M-Connect.

Cette procédure est validée avec toutes les versions de M-PS Windows, M-PS Linux et M-Connect / MapReport.

Pré-requis

Niveau de connaissance produit requis pour utiliser ce document : M-PS Windows et Linux – Avancé

Configuration de la base de données

ORACLE

Oracle et Mapping sont installés sur le même serveur.

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/prod

Assurez-vous que vous parvenez à accéder à la base de données serveur à l’aide de sqlplus avant de configurer Mapping.

Paramètres requis dans Mapping.conf :

  • [LIB_PATH] dll folder of instantclient
  • [MAPREPORT_SERVERTYPE] oracle
  • [MAPREPORT_SERVERADDRESS] instance_name : _ORCL
  • [MAPREPORT_SERVERUSER] oracle_user_name
  • [MAPREPORT_SERVERPASSWORD] oracle_pwd
  • [ORACLE_HOME] dossier home: /u01/app/oracle/product/9.0.1

Vérifiez toujours la connexion en exécutant map_036 sur une ligne de commande. D’abord sans paramètres puis ensuite avec map_036 –mode:1 pour lister toutes les tables (la réponse est en HTML mais s’il y a une erreur de connexion, cela sera facilement lisible.)

Messages 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 .profil 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

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 "bin/safe_mysqld --user=mysql &" dans les scripts de démarrage de votre machine

Placer le fichier libstaticmysql.so (sur AIX et LINUX) ou libmysql.so (sur HPUX) dans /apps/mapping/bin

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

  • Aller dans le Panneau de configuration
  • Outils d’administration / Sources de données (ODBC)
  • Cliquer sur Ajouter
  • Descendre jusqu'à SQL Server
  • Taper le nom du lien ODBC ainsi que sa description et l’adresse/nom_DNS du serveur base de données.
  • Cliquer sur Terminer et effectuer un test de connexion.
  • Normalement la connexion devrait être OK.

Connexion de l’ODBC à MAPPING

  • Aller sur le serveur 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 exécuter
/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 choisir Démarrer le serveur de développement.
  • En telnet, il faut faire
/apps/mapping/bin/map_855

Arrêt du serveur de développement

Pour arrêter le serveur :

  • En mode web, il faut aller dans le menu de MAPREPORT, puis choisir Arrêter le serveur de développement.
  • En mode telnet :
/apps/mapping/bin/map_855

Extraction des fichiers de définition de base de données

Pour extraire les définitions des bases de données :

  • Utiliser l'interface Web
  • Dans le Menu MAPREPORT, sélectionner Extraction définitions

Vous pouvez à partir de ce moment-là soit parcourir la base de données (pour cela cliquer sur l’icône à gauche du nom de la base de données), 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.

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.