Présentation d'Oracle APEX
- Oracle France, 21 novembre 2011
RCI Informatique SAS
Jean-Pierre LOISON
Partenariats avec Oracle France depuis 1989 :
- Oracle 5/Macintosh/HyperCard
- Oracle 6 -Windows /Multimedia Toolbook
- Interfaçage Oracle 6 et 7 /Excel, Second Wind
- Oracle 7, Oracle 8 - Interface OPO (Oracle Power Objects)
- Oracle 9 / HTML DB
- Oracle 10 et 11, APEX
http://rcitools.blogspot.com
SQL developer
- Couvre une part importante des besoins du développeur en environnement Oracle pour :
- Explorer des structures de données existantes
- Mettre au point des requêtes
- Analyser les données existantes en cas de dysfonctionnements applicatifs constatés
- Créer de nouvelles structures de données ou les faire évoluer
- Rechercher la syntaxe exacte d'une commande SQL
- Mettre au point des scripts (ensembles d'ordres SQL)
- Créer et modifier des procédures stockées et des packages
- Sauvegarder les structures de données et packages en cours de développement
Introduction à APEX, environnement de développement rapide d'Oracle
- 1990-2000, client/serveur, Oracle Forms, OPO (Oracle Power Objects)
- 1997, client léger (navigateur HTML), Packages HTP, OWA_UTIL, Oracle Application Serveur
- 2000, Oracle WebDB
- 2004, Oracle HTML DB (1.5, ..puis 1.6)
- 2006, Oracle APEX (Application Express 2.0)
- 2011, Oracle APEX 4.1
- Environnement de développement déclaratif
- Structuration et description sous forme d'objets de l'interface HTML
- Une application = un ensemble d'objets dont les attributs sont stockés dans des rubriques de
tables Oracle
- Collections d'objets liés aux données
- Les applications sont dans la base Oracle
- Le développeur peut créer et mettre au point avec un simple navigateur HTML
- Hébergement mutualisé de l'environnement de développement
- sur le Web
- En Intranet d'entreprise
- Langage PL/SQL ( lignée des langages orientés "algorithmes": Algol, Simula, Pascal UCSD, Pascal
Borland, ADA, Delphi,)
Les fondements de l'accès à Oracle depuis un navigateur HTML: cgi, dad, packages OWA_UTIL et HTP
- Packages HTP, HTF, OWA_UTIL, UTL_HTTP
- Cgi sous forme de Procédures stockées PL/SQL (structurées en packages)
- DAD, data access descriptor, MOD-PL/SQL
- Oracle HTTP Serveur (Apache+mod PL/SQL)
- Embedded HTTP Serveur (Oracle XE 10.2, Oracle 11)
DBMS_XDB, WebDav, ...
Rappel sur l'évolution des versions d'APEX
- 2004, version 1.5 d' Oracle HTML DB
- La version 1.6 d' Oracle HTML DB a été disponible depuis janvier 2005, elle a été suivi par une version
2.0.
- En mars 2006, avec la mise en production d'Oracle XE (Express Edition), une version 2.1 est intégrée à
Oracle XE. C'est avec cette version que l'interface d'administration d'Oracle XE a été programmée. Oracle
XE ne comporte pas de serveur Apache, mais un serveur HTTP intégré à la base de données. Les fichiers
statiques (images, icônes, etc.) ne sont plus stockées dans un répertoire physique sur le disque, mais
dans une structure XDB accessible par l'interface WebDAV.
- En Août 2006, la version 2.2 a été rendue disponible.
- En 2007, version 3.0 puis 3.1 d'Oracle Application Express
- En 2008, versions 3.10, 3.11 et 3.12 d'Oracle Application Express
- En 2009, versions 3.2, puis 3.21 d'Oracle Application Express
- Depuis fin Juin 2010, la version 4.0 d'Oracle Application Express a été disponible. Elle est prévue pour
une utilisation en collaboration avec SQL Developer qui permet de visualiser les applications, les pages,
les branchements, directement à partir de ce qui est stocké dans la base Oracle.
- Depuis fin Août 2011, la version 4.1 d'Oracle Application Express est disponible.
Les types de développements pour lesquels Oracle APEX est adapté
- Applications de gestion basées sur des données Oracle
- Applications documentaires intranet / internet
- Développements complémentaires à des applications Packagées en environnement Oracle
- Interrogations par client léger HTML de Bases de données existantes
- Requêtes et reporting, infocentre "léger", interfaçage à des collections de vues
- Prototypages, applications "instantanées"
- Profils d'ingénieur/développeur
- Développement itératif en lien étroit avec les utilisateurs finaux
- Délais très courts et budgets parfois modestes
- Petites équipes et compétences multiples (métier, SQL, HTML, ... )
- Développements pours lesquels d'autres outils qu'Apex sont plus adaptés:
- Drivers, applications système, extensions
- Scripting Applicatif (Bureautique, PAO, )
- Informatique embarquée, temps réel
-Exemples d'applications Oracle / APEX réelles, mises en oeuvre par des entreprises et organismes
utilisateurs d' Oracle, en France :
- Gestion d'incidents industriels avec gestion documentaire intégrée (rapports, photos, ..)
- Gestion de contrôle et non conformités des équipements et pièces livrées par les fournisseurs
- Gestion documentaires de données mondiales en agriculture
- Catalogues raisonnés (Oeuvres d'art, musées, collectionneurs)
- Base de données des hôtels et de leur environnement de grands chaînes hôtelières
- Bases de données de Substances chimiques répondant à la réglementation européenne REACH
- Saisie de notes de frais dans des formulaires HTML, contrôle, validation par les managers
- Bases de données photographiques d'objets archéologiques
- Gestion des demandes de travaux et de leur suivi (en environnement industriel)
- Présentation visuelle de tests d'échantillonnages (contrôle qualité)
- Demandes et suivi des formations des agents (collectivité territoriale)
- Gestion du courrier (demandes, réponses, délais) (collectivité territoriale)
- Suivi de comptes bancaires en dates de valeur, consolidation, prévisions de trésorerie
- Sélection et Génération de questionnaires PDF aux adhérents (Organisme consulaire)
- Consultation en temps réel de stocks de matières premières chimiques gérés pour des tiers
- Consultation via Internet de prévisions météorologiques en viticulture et arboriculture
- Prévisions et simulations en matière de gestion de parc immobilier (habitat social)
- Infocentre sur des données de gestion de personnel (nettoyage industriel)
- Application WEB de diffusion et paramétrage de modèles de contrats (conseil juridique)
- Gestion de commandes auprès de la pharmacie intégrée (Domaine Hospitalier)
- Bases de données en botanique
- Gestion de plannings et horaires, concours groupé de grandes écoles
- Gestion de lexiques multilingues destiné à la maitrise documentaire de traductions
......
Le modèle de conception d'une page HTML sous forme d'objets APEX
Espaces de travail APEX, associés à des schémas Oracle
n applications APEX dans un même espace de travail
Application = ensemble de pages + ensemble de ressources
Page = ensemble de régions + ensemble de processus évènementiels
Région = sous-ensemble de la page HTML orientée vers un but précis
Les objets de base du langage HTML (champs, listes sélect, boutons, ..) sont déclarés à l'intérieur des
régions
requêtes SQL et scripts PL/SQL sont des attributs de différents objets
Principaux objets APEX
- Applications
- Ressources
- Listes de valeurs (LOV)
- Processus (PL/SQL)
- Listes (collections de choix possibles dans des sous-menus)
- Images, logos
- Styles (CSS) Modèles (ensembles de styles)
- méthodes d'identification
- Groupes d'utilisateurs
- Pages
- Régions
Etats SQL
- Attributs d'impression
- Sources statiques (SQL, ou dynamiques (SQL avec clauses Where, PL/SQL)
Etats interactifs
- Outils de personnalisation
- Mémorisation de requêtes et de sélection d'attributs
- Choix de la représentation
Formulaires de saisie
- Champs et zones de texte
- Boutons et contrôles
Grilles de saisie
Arborescences
Graphiques (barres, secteurs, ...)
Objets cartographiques
- Liens hypertexte
- Prise en compte d'évènements
- Actions conditionnelles
- Interfaces de consultation: Etats, états interactifs, listes
- Interfaces de saisie: Formulaires, Formulaires tabulaires, liste de choix, listes avec requêtes
- Outils de navigation: Menus, Listes, Onglets, Arborescences, Présentations cartographiques
- Gestion des évènements
Mise en oeuvre du langage PL/SQL dans APEX, scripts, utilisation de packages applicatifs
- Blocs PL/SQL "anonymes"
- Appels de procédures stockées
- Collection de procédures et de fonctions dans des packages
- Permanence des variables de session d'une application APEX
- lecture du contenu d'une variable de session
- les syntaxes possibles
- affectation d'une valeur à une variable de session
- Quelques packages très souvent utilisés dans les applications APEX
- XDB....
- HTMLDB_UTIL (APEX_UTIL)
- wwv_flow_epg_include_mod_local (fonction et non package)
- DBMS_SQL
- DBMS_LOB
-OWA_UTIL
- UTL_FILE
- UTL_HTTP
Outils de reporting, intégrés et optionnels
- Report Apex classique
- Report interactif
- Présentations graphiques (Charts, Cartes, )
- Interfaçage avec Oracle BI Publisher
- Génération vers systèmes de traduction
Outils complémentaires
- génération de documents PDF
- génération de documents Excel (classeurs avec n feuilles de calcul)
- interfaçage vers autres logiciels de reporting
Interactivité et JavaScript avec Apex, les apports des versions 3.2, 4.0 et 4.1
- Client/Server des années 1990: Serveur + client "lourd", SQL*Net serveur et client
- Apex: Clients "léger" (Navigateur HTML) + serveur HTTP (css, images, DAD) + serveur Oracle
- Nouvelle interface d'Application Builder
- Evolutions JavaScript , Ajax générés automatiquement par Apex
Méthodes d'identification des utilisateurs, groupes et droits applicatifs, NTLM
- Méthodes standard d'identification
- Environnement Windows
Apache + NTLM
Microsoft IIis + Kerberos
- Groupes et droits applicatifs
- Applications "multi-identifications"
Méthodologie de développement APEX, les bonnes pratiques
- Prendre le temps de découvrir et maitriser les différentes fonctionnalités
- Une application APEX = un package PL/SQL + une interface utilisateur
- Développeur APEX = Connaissances multiples (métier, SQL, PL/SQL, algorithmique, HTML,....)
- Productivité de l'outil APEX: 75% contacts avec les utilisateurs et analyse, et seulement 25% de
codage
- Définir en versions les avancements successifs d'un développement
- Privilégier la qualité de la programmation et la fiabilité (vis à vis de qq millisecondes)
- Intégrer la documentation utilisateur aux applications
- S'en tenir aux fonctionnalités actuelles d'Apex, et à celles que l'on maitrise effectivement
- Ne pas chercher à obtenir avec une interface HTML toutes les caractéristiques des interfaces
Macintosh ou Windows
- En équipe, établir une liste minimale de pratiques à respecter
- Placer le moins possible de requêtes SQL et de scripts PL/SQL dans l'application Apex
- Définir le plus possible de requêtes SQL sous forme de vues et scripts PL/SQL sous forme de
fonction et procédures stockées dans des Packages
- Maitriser les copier/coller d'objets, de SQL et de scripts. Si possible généraliser au travers de
procédures stockées à plusieurs comportements.
- Développer une bonne connaissance du langage PL/SQL
- Découper les requêtes SQL trop longues en requêtes SQL courtes, lisibles et fiables, faire appel à
des vues.
- Organiser les appels à des schémas distants avec des vues, des synonymes, des vues
matérialisées afin que tous les objets Oracle utilisés dans une application Apex soient définis dans un
unique schéma.
Quels outils et quels téléchargements pour commencer tout de suite avec Oracle APEX
- Oracle 11.2 XE (Express Edition)
ou création d'un schéma dans une base standard ou entreprise existante
- Serveur HTTP intégré à Oracle 11 (XDV, WebDAV)
- Apex 4.1, version multilingue
- SQL developer 3.0
- Espace de tests gratuit d'Oracle, pour les applications APEX
ou hébergement mutualisé Oracle / Apex
- Démonstrations
- Questions-réponses
- Bibliographie et liens
Oracle Apex, site officiel
http://www.oracle.com/technetwork/developer-tools/apex/overview/index.html
Installation Oracle XE et APEX, tutoriel en Français
http://www.rci-informatique.fr/oracle_xe/
Installation Oracle XE 11.g et activation d' Apex, tutoriel en Français
http://www.rci-informatique.fr/oracle11_xe/
Informations, liens à propos d' Oracle Apex
http://rcitools.blogspot.com/
Exemples Oracle APEX
Interface APEX, premiers exemples
http://htmldb.oracle.com/pls/otn/f?p=2163
Prototype Appli Bilingue
http://htmldb.oracle.com/pls/otn/f?p=38446
Timer dans une page APEX, en javaScript
http://htmldb.oracle.com/pls/otn/f?p=2807
Exemples de générations avec BI Publisher
http://htmldb.oracle.com/pls/otn/f?p=17077
Exemple de report Interactif
http://htmldb.oracle.com/pls/otn/f?p=28974
Exemple de cartographie interactive
http://htmldb.oracle.com/pls/otn/f?p=42654
Exemples d'actions dynamiques
http://htmldb.oracle.com/pls/otn/f?p=43548
Interactive Report depuis du SQL dynamique
http://htmldb.oracle.com/pls/otn/f?p=44149