GestraNet est une solution logicielle visant à déployer très rapidement une application avec une architecture de données complexe.
GestraNet se divise en deux parties principales :
GestraCompta est un exemple d'implémentation orienté gestion-comptabilité d'entreprise.
L'idée sous-jacente est simple : avoir un lien fort entre classes du code et classes du SGBD. Ainsi, pour une table FACTURE, il devrait être possible de faire (en Perl) :
my $facture= FACTURE->new();
$facture->loadById('FA0012');
my $montant_ht = $facture->getValueOf('montantht');
return $montant_ht;
En gros, le code généré permet d'utiliser Perl comme un langage de script de l'application, en gardant toute la puissance du langage.
Dans le repertoire de source (qui doit être une copie du repertoire gestranet), un repertoire myBase est rempli de fichiers pm.
Ces fichiers sont les descripteurs de classes en perl (ou modules).
Pour rajouter un événement à l'insert d'une facture, par exemple, on peut surchager la méthode Insert de FACTURE :
# dans FACTURE.pm
sub Insert {
my $self = shift;
print STDERR "nouvelle facture !!\n";
return $self->SUPER::Insert(@_);
}
rules/make.rules.
Vous pouvez éditer ce fichier à la main, ou utiliser le ./configure.pl à la racine. Ce programme ne fait que reprendre les lignes du make.rules et demander à l'utilisateur ce qu'il veut changer.
pgml situés dans ./pgml/.
Son fonctionnement est intuitif, et pour l'instant répond aux besoins courants.
Si vous vous posez déjà la question de savoir comment gérer les procédures stockées, sachez qu'elles n'ont plus lieu d'être. Elles sont avantageusement remplacées par du code, qui sera inséré dans les classes générées (voir plus bas).
object, qui contient quelques champs obligatoires (voire l'exemple de GestraCompta),
object possède un champ uid (pour User Id), qui est une séquence (SERIAL) servant pour tout enregistrement de la base de données.
Par exemple, si vous voulez que l'affichage d'une facture se fasse via une page particulière (mise en page spéciale ou fonctionnalité différente de celles en standard), il vous suffit de créer le script facture_single.pl en reprenant single.pl, puis d'y ajouter vos spécificités.
Si seule la mise en page doit changer, alors vous pouvez créer le
fichier template/facture_single.html, sans rien changer d'autre à l'application.
Ce fichier sera pris automatiquement en compte lors de l'affichage.
httpd.conf :
<Files *.pl> SetHandler perl-script PerlHandler Apache::Registry PerlSendHeader On Options ExecCGI FollowSymLinks PerlModule Apache::DBI </Files>
Les modules Perl suivants sont nécessaires :
Après avoir configuré le make.rules, vous pouvez lancer un make install-common depuis la racine de gestranet-common.
Vous pourrez faire un make uninstall si vous voulez nettoyer proprement votre disque.
Vérifiez que vous avez bien renseigné les champs :
La procédure d'installation comporte les étapes suivantes :
La variable AUTHNEED determine si une identification est nécessaire. Si vous avez mis 0, vous pouvez dès maintenant utiliser gestranet en vous connectant à la bonne url.
tar zxvf gestranet-common.tgz tar zxvf gestranet.tgz tar zxvf gestracompta.tgz
Allez dans gestranet-common et installez le tout :
cd gestranet-common ; make install-common ; cd -
Allez dans gestranet et configurez les variables d'environnement :
cd gestranet ; emacs rules/make.rules
Modifiez les variables suivantes :
| APPNAME | nom de l'application; sera utilisé pour le nom du repertoire |
| APPSRC | le chemin vers le repertoire Gestracompta |
| FSROOTDIR | le repertoire d'installation pour le web (p.ex. /var/www/gestracompta) |
| UPLOADDIR | un repertoire où charger les fichiers uploadés (attention aux droits!) |
| SERVERURL | préfixe de lien (p.ex. http://127.0.0.1/gestracompta/) |
| HTTPROOTDIR | idem ci-dessus |
| DBSUPERUSER | super utilisateur postgres |
| DBSUPERUSERPWD | mot de passe super utilisateur postgres |
| DBNAME | nom de la base de données, p.ex. gestracompta |
| DBPWD | mot de passe |
| DBUSER | utilisateur accédant à la base |
| DBHOST | machine hébergeant la base de données |
Attention : tous les repertoires doivent s'écrire sans oublier le slash (/) à la fin !
Ces données doivent se trouver dans des fichiers XML dans le repertoire gestracompta/entities/.
Elles seront parsées et chargées dans la phase suivante.
GestraCompta est prête à fonctionner.
GestraNet a été testée sur une Debian Sarge x86, avec Perl 5.8, apache 1.3.27.0-2, apache-mod-perl 1.27-4, postresQL 7.3.2r1-5.
Le choix de Perl a été fait en raison de la quantité de modules déjà disponibles et fort bien documentés. Cependant, il est tout à fait envisageable de faire générer autre chose que du Perl, à condition de respecter les contraintes de la programmation orientée objet.
This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.48)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html -split 0 -no_navigation doc.tex
The translation was initiated by Manganneau Emmanuel on 2003-09-22