Tutoriel Oracle Application Express Présentation de l'IDE

Récemment, j'ai été surpris de constater qu'il se trouve qu'il n'y a pas de tutoriels sensés sur Oracle Application Express (alias APEX, apex, mais à ne pas confondre avec le langage apex utilisé dans Salesforce) dans la nature.


Ce n'est pas la technologie la plus courante, bien sûr, mais néanmoins très demandée. Il existe des dizaines de blogs sur l'apex (principalement en anglais), quelques milliers de questions sur Stackoveflow, une section spéciale sur l'apex sur les forums officiels de l'oracle, l'apex lui-même existe depuis 15 ans et se développe tout le temps. J'étais sûr qu'il y avait plein de bons tutoriels. Mais non!


J'ai immédiatement trouvé une idée géniale pour combler cette lacune.


Table des matières


Pourquoi les tutoriels existants sont mauvais
Informations d'introduction
Présentation de l'IDE
Générateur d'applications
Page d'application
Propriétés d'application
Composants partagés
Concepteur de page
Atelier SQL
Navigateur d'objets
Commandes SQL


Pourquoi les tutoriels existants sont mauvais


Je vais expliquer un peu pourquoi je pense que les tutoriels existants sont mauvais. Apex n'est pas un langage de programmation, c'est un outil de développement de très haut niveau, l'analogue idéologique le plus proche que j'appellerais MS Access. En conséquence, l'essentiel du développement à l'apex consiste à travailler avec l'interface web de cet environnement: cliquer sur les boutons, suivre les liens, remplir les champs avec les noms des composants, choisir les valeurs dans les listes, etc. À quoi sert un didacticiel type? Il montre des captures d'écran de ces mêmes écrans avec des légendes "cliquez ici". Dans le même temps, l'IDE lui-même est assez pratique et compréhensible, presque tous les éléments sont fournis avec des explications de référence, il y a une aide intégrée. Par conséquent, si vous devez expliquer à l'utilisateur comment créer une application, il y aura une grande capture d'écran dans le tutoriel expliquant comment cliquer sur le bouton "Créer une nouvelle application". Ici, jetez un œil au tutoriel officiel d'Oracle:


Capture d'écran d'un exemple de didacticiel Apex


Ils expliqueraient également avec des captures d'écran qu'un «clic» est un simple clic sur le bouton gauche d'un manipulateur de type souris.
Bien sûr, ces tutoriels contiennent également des informations utiles, mais elles sont minuscules. Environ 80% des didacticiels se composent de ces captures d'écran, et d'après ma propre expérience, je peux dire qu'une personne qui n'a lu aucun didacticiel trouvera indépendamment comment créer une application, ajouter une page, placer un rapport dessus, etc. Et puis il devra organiser une interaction plus ou moins non triviale de plusieurs éléments de l'apex, et il s'avère que cette question n'est presque pas couverte par le tutoriel. Permettez-moi de vous donner une analogie: vous apprenez simplement à programmer, avez étudié des variables, des tableaux, des boucles, des conditions et obtenu une tâche, dans le cadre de laquelle vous devez trier le tableau. Le tri d'un tableau est en quelque sorte assez simple, mais dès que la tâche se complique en «triant rapidement un grand tableau», il s'avère que vos connaissances ne suffisent pas. Googler, creuser Stackoverflow et forums, vous trouverez un algorithme de tri rapide. Bien sûr, quelqu'un réinventera lui-même cet algorithme tôt ou tard, mais un moyen plus efficace serait de lire immédiatement un livre avec une analyse des algorithmes typiques. Et un tel ensemble d'algorithmes typiques pour l'apex est généralement introuvable, et la même méthode de piquer scientifique, les moteurs de recherche, les forums et Stackoverflow (et, j'espère, ce tutoriel) viennent à la rescousse.


Informations d'introduction


Il est supposé que le lecteur connaît la version d'Oracle Database d'au moins le 11, SQL, PL / SQL, et en particulier ce qu'est EXECUTE IMMEDIATE et comment il fonctionne.


L'IDE apex a considérablement changé lors de la transition de la version 4.2 à 5.0 (la sortie était il y a seulement 4 ans, en mars 2015). Depuis lors, l'IDE a peu changé, mais parfois de nouvelles fonctionnalités sont ajoutées. Je vais prendre des captures d'écran sur apex.oracle.com, où la version 19.1 est maintenant installée, mais si vous avez une version antérieure quelque part (5.x, 18.x), vous pouvez facilement trouver l'élément dont vous avez besoin, sauf s'il apparaît dans une version ultérieure à la vôtre.


Je vais commencer par passer en revue les sections les plus couramment utilisées de l'EDI. Je vais également montrer quelques captures d'écran. Où sans eux, car ici tout est fait de composants visuels. Mais il n'y en aura pas autant que dans les mauvais tutoriels, et en gros ils seront dans les chapitres initiaux, puis je vais simplement indiquer le nom de la section IDE, qui contient les éléments nécessaires. Je vais immédiatement attirer votre attention sur le fait que ce n'est que la première connaissance de l'IDE. Des informations plus détaillées sur quand cliquer sur quel bouton et où regarder ce qui sera donné plus tard lorsque je passerai à des sujets spécifiques.


Allons-y.


Présentation de l'IDE


L'écran de démarrage, que vous verrez immédiatement après être entré dans l'IDE:


Accueil IDE


Les principaux éléments ici sont 4 grandes images cliquables:


  1. "App Builder": c'est en fait l'endroit où vous pouvez créer des applications et où vous passerez jusqu'à 99% du temps.
  2. "SQL Workshop": un substitut à l'IDE standard pour travailler avec Oracle DBMS. Vous pouvez y voir des objets de base de données (tables, index, packages, etc.) et exécuter des requêtes SQL. Si vous avez la possibilité de faire tout cela via l'IDE "ordinaire" (comme Oracle SQL Developer ou PL / SQL Developer) - faites-le via eux. Néanmoins, cette section peut également être utile, et j'en parlerai également.
  3. "Team Development": outils de développement d'équipe. Honnêtement, je n'ai jamais vu personne les utiliser dans la pratique (y compris moi). Par curiosité, j'ai aussi regardé là-dedans et je n'appellerais pas cette section complètement inutile, bien que je le veuille vraiment.
  4. "App Gallery": une section avec des applications de démonstration. Au moment où il est apparu, je connaissais déjà assez bien l'apex et je n'y ai presque pas regardé, mais pour les débutants, je pense que ce sera utile. Il existe de nombreuses applications sans prétention différentes, en utilisant leur exemple, vous pouvez apprendre à utiliser certaines fonctionnalités.

Dans le menu tout en haut de la page, les mêmes 4 points sont dupliqués.


De plus, il y a plusieurs autres choses inutiles: voici une certaine quantité d'informations statistiques (telles que les applications les plus fréquemment éditées ou les développeurs les plus actifs). Et il y a une colonne à droite, où il y a aussi des statistiques et des liens supplémentaires.


Jetons un coup d'œil à App Builder et à SQL Workshop plus en détail.


Générateur d'applications


Cette page ressemble à ceci:



Les principaux éléments de cette page: quatre gros boutons comme sur la page précédente, une liste des applications existantes, la colonne de droite avec une liste des applications récemment modifiées et des actions supplémentaires. Quatre boutons sont:


  1. "Créer": créez une nouvelle application. La même fonction est dupliquée un peu plus bas (le bouton bleu "Créer" au dessus du rapport avec la liste des applications). Le bouton lance l'assistant de création d'application.
  2. "Importer": importez l'application. Apex vous permet de transférer des applications d'un serveur à un autre sous forme de fichiers texte (qui sont essentiellement de longs scripts PL / SQL avec des appels à des fonctions pour créer tous les éléments d'application).
  3. "Dashboard": une petite collection utile de statistiques de développement d'applications. Qui, quand, où, combien de modifications ont été apportées. Je pense que même votre patron ne sera pas intéressé à y chercher.
  4. "Workspace Utilities": un ensemble d'outils supplémentaires pour gérer l'application. Honnêtement, je n'y regarde presque jamais.

Je veux également attirer votre attention sur un si petit bouton dans le panneau de rapport:


Commutateur d'affichage des rapports


Elle bascule la vue du rapport de celle de la capture d'écran ci-dessus (avec les "images" des applications) vers le rapport sous la forme d'un tableau:


Générateur d'applications dans Oracle APEX


Des rapports similaires se trouvent dans d'autres sections de l'IDE. Je préfère une vue tabulaire, donc toutes les captures d'écran seront accompagnées.


Page d'application

Après avoir créé une application ou ouvert une application existante, vous verrez la page suivante (très similaire à la précédente dans la structure):


Page d'application


Vous reviendrez très souvent sur cette page, et il y a beaucoup de fonctions utiles ici. Gros boutons avec photos:


  1. "Exécuter l'application": ce bouton lance votre application. Il s'ouvrira dans une fenêtre séparée. Par défaut, il se trouve dans la fenêtre et non dans l'onglet du navigateur, mais ce comportement est configuré (plus d'informations à ce sujet plus tard).
  2. "Objets pris en charge": cette section traite des problèmes liés à l'installation, la mise à jour et la désinstallation des applications. Habituellement, ils sont à peine utilisés.
  3. "Composants partagés": je dirais que c'est la première ou la deuxième section la plus importante de l'EDI (une autre est l'éditeur de page). Si vous vous développez beaucoup au sommet, vous remarquerez très bientôt que vous avez appris la structure de cette section en tant que "Notre Père".
  4. "Utilitaires": un autre ensemble de (quelques) fonctions d'aide utiles.
  5. "Exporter / Importer": permet d'exporter ou d'importer des applications ou des parties de l'application.

Et deux boutons supplémentaires, qui sont entourés d'un cadre orange dans la capture d'écran:


  1. Bouton "Modifier les propriétés de l'application". En cliquant dessus, vous serez redirigé vers la page des paramètres des propriétés de l'application. Vous ne pouvez pas visiter cette section souvent, mais elle est très importante car elle stocke les paramètres d'application, dont dépendent beaucoup de choses. De plus, si je mentionne quelque part "propriétés d'application" - recherchez-les dans cette section.
  2. Pour une fois, une fonctionnalité utile dans le volet droit est "Supprimer cette application". Bien que de nombreuses fonctions de l'apex soient dupliquées à différents endroits, cette fonction n'est disponible qu'ici, et il est difficile de la trouver pour la première fois sans habitude.

Propriétés d'application

Tout d'abord, il est intéressant d'organiser l'accès à un grand nombre de paramètres.


Propriétés d'application


Les paramètres sont regroupés en 4 groupes (voir le cadre supérieur), et chaque groupe a plusieurs autres sous-groupes (voir le cadre inférieur), chaque groupe a son propre nom. De même, les paramètres sont organisés à de nombreux endroits dans l'apex. À l'avenir, je vais simplement indiquer le chemin vers le paramètre souhaité comme ceci: "Propriétés de l'application" → "Définition" → "Nom" → "Version".


De plus, si vous regardez le fil d'Ariane en haut de la page, vous verrez qu'il dit "Modifier la définition d'application", bien que vous sembliez aller dans "Propriétés de l'application". Ignorez-le.


Composants partagés

Les composants partagés sont notre tout. Cette section est un point intermédiaire sur le chemin vers des composants d'application spécifiques. Je vais montrer ici une vue générale, juste pour que vous puissiez imaginer où se trouve:


Composants partagés


Il n'y a presque pas de bêtises ici. Vous pouvez avoir besoin de chaque section d'une manière ou d'une autre. Les noms des sections parlent d'eux-mêmes, il n'y a presque rien à ajouter:


  1. "Application Logic": commandes de logique d'application.
  2. "Sécurité": problèmes de sécurité et de contrôle d'accès pour l'ensemble de l'application et pour les composants individuels en fonction des rôles des utilisateurs.
  3. "Autres composants": ce sont "tous les autres composants". Dans le bon sens, cette section devrait être la dernière, mais pour une raison quelconque, elle est ici. Et je transférerais le sous-élément "List of Values" en général dans Application Logic.
  4. "Navigation": composants d'application pour la navigation.
  5. "Interface utilisateur": personnalisez l'apparence de l'application, les styles, etc.
  6. "Fichiers": section pour les fichiers (par exemple, css ou js). Il est indispensable si vous n'avez pas accès à l'OS, et c'est quand même pratique, même s'il y a accès.
  7. "Data Sources": travailler avec des sources de données (pour le chargement et le déchargement).
  8. "Rapports": rapports, évidemment.
  9. "Mondialisation": section de traduction d'applications dans d'autres langues.

Pleurer Yaroslavna à propos de la traduction des applications dans l'apex

La traduction des applications dans l'apex a été rendue horrible (honnêtement, j'ai essayé de comprendre comment l'aggraver - et je ne pouvais pas), et il n'y a aucune preuve qu'elle s'améliorera à l'avenir.
Terrible en termes d'architecture et de facilité de travail sur la traduction. Je peux seulement dire aux développeurs: "Merci pour au moins pas de bugs" (mais voici comment regarder: les traductions sont arrangées de sorte que certaines fonctionnalités de leur travail ne sont pas très différentes des bugs).
Nous devons vivre avec.


Concepteur de page

Page Designer - éditeur de page. C'est probablement la place principale dans l'IDE. Ici, vous allez créer ce avec quoi l'utilisateur interagit directement - les pages de l'application. C'est juste un tas de fonctionnalités, presque comme dans le cockpit. Pour accéder à Page Designer, vous devez cliquer sur le lien avec le nom de la page sur la page d'application (désolé pour la tautologie). Dans la capture d'écran, les principaux composants de l'éditeur sont mis en évidence avec des cadres colorés:


Concepteur de page


Barre de boutons en haut (dans un cadre rouge):


  • Le champ de saisie du numéro de page, les flèches haut et bas et le bouton "Go": navigation dans les pages de l'application. Chaque page a un numéro, ici vous pouvez soit entrer le numéro de la page souhaitée, soit utiliser les flèches pour aller à la suivante / précédente, ou cliquer sur le bouton le plus à gauche et sélectionner une page dans la liste dans la fenêtre modale apparue.
  • Bouton avec verrou: permet de bloquer la page contre les modifications d'autres développeurs.
  • Boutons Annuler / Rétablir
  • Deux boutons avec accès aux fonctions auxiliaires.
  • Lien du bouton vers les composants partagés. Utile, car vous devez faire des allers-retours tout le temps. (Moi, cependant, je préfère simplement conserver les composants partagés dans un onglet séparé - c'est encore plus rapide).
  • Bouton Enregistrer: enregistre les modifications apportées à la page.
  • Bouton "Exécuter": "lance" la page, c'est-à-dire que vous la voyez comme l'utilisateur la verra plus tard.

À gauche (dans un cadre orange) se trouve un panneau avec des composants de page. Il y a 4 signets dans ce panneau:


  • "Rendu": affiche les composants de la page, quels processus sont exécutés pendant le rendu;
  • "Actions dynamiques": actions effectuées sur le client (par exemple, les gestionnaires d'événements javascript);
  • "Traitement": processus serveur associés à la page;
  • "Composants partagés de la page": pour une transition directe vers les composants communs utilisés sur la page (les mêmes composants partagés).

Au centre (dans un cadre vert) - un panneau contenant beaucoup d'informations hétérogènes. En haut du panneau, il y a 5 onglets sur lesquels vous pouvez trouver:


  • "Disposition": montre la disposition approximative des composants sur la page;
  • "Vue des composants": dans l'ensemble, il s'agit d'une relique du passé (l'éditeur de page avait l'air similaire dans la version 4 de l'apex, dans la version 5.0 ou 5.1, cette ancienne "vue" a reçu le statut obsolète, bien qu'elle ait été utilisée en parallèle avec la nouvelle, mais maintenant elle reste seulement son ombre pâle);
  • "Messages": il y aura des messages d'erreur (par exemple, un message indiquant que certains champs obligatoires ne sont pas remplis);
  • "Page Search": recherche sur la page. Recherche la chaîne souhaitée dans tous les endroits où vous pouvez saisir quelque chose (dans le code, dans les textes des messages, dans les noms des composants, etc.);
  • "Aide": aide. Assez sensible, mais pas toujours. Vous pouvez sélectionner une propriété de composant dans le panneau de gauche et voir sa description.

Le panneau central comporte également un autre panneau supplémentaire ci-dessous, qui peut être utilisé pour ajouter rapidement des composants à la page.


À droite (dans un cadre bleu) se trouve le panneau des propriétés. Tout est simple ici - il montre les propriétés du composant actuellement sélectionné. Certaines des propriétés des composants sont simples: texte, nombre, valeur de la liste. Mais les propriétés plus complexes des composants ont des fonctionnalités d'interface supplémentaires qui facilitent considérablement la vie lorsque vous travaillez avec eux.
Une propriété qui est un grand texte. Par exemple, codez en PL / SQL ou JavaScript. Cela ressemble à ceci:


Capture d'écran de la propriété Memo


Vous pouvez écrire le code directement dans ce champ, ou vous pouvez cliquer sur le bouton en haut de la page, puis une fenêtre modale s'ouvre avec un éditeur de code où la coloration syntaxique (pour SQL, JavaScript, CSS, HTML), la recherche de texte et d'autres fonctions d'éditeur sont disponibles.


Propriété - Composant partagé. Si la propriété est l'un des composants de l'application (composant partagé), vous pouvez sélectionner un composant spécifique dans la liste et en cliquant sur le bouton à droite de la liste


Aller au bouton des composants partagés


Vous pouvez passer directement à la section Composants partagés pour accéder aux propriétés du composant sélectionné (pour, par exemple, les modifier).


Si la valeur de votre propriété est sélectionnée dans la liste, parfois sur la droite, vous pouvez voir un autre bouton supplémentaire:


choix rapide


Il s'appelle "Quick pick" et est utilisé quand il y a beaucoup d'options. La «sélection rapide» donne un accès légèrement plus rapide à un petit sous-ensemble d'options - en règle générale, il existe les options les plus couramment utilisées. Les «options couramment utilisées» ici ne sont pas les vôtres, mais «en général». Il s'agit d'une liste fixe et ne change pas avec le temps.


Atelier SQL


Comme je l'ai déjà dit, SQL Workshop est un substitut à l'IDE standard (si pour une raison quelconque vous n'avez pas la possibilité de l'utiliser).


Atelier sql


Il se compose de 5 sections:


  1. "Object Browser": un navigateur d'objets de base de données (tables, packages, fonctions et procédures, index, séquences, etc.);
  2. "Commandes SQL": une section où vous pouvez exécuter n'importe quelle requête SQL ou code PL / SQL;
  3. "Scripts SQL": ici vous pouvez télécharger un fichier texte avec un script et l'exécuter;
  4. "Utilitaires": diverses fonctionnalités supplémentaires liées à la base de données: par exemple, il existe un générateur de requêtes graphiques (mais pas seulement);
  5. "Services RESTful": création de services REST. Apex a également REST (et pendant longtemps, ils étaient déjà en version 4.2)!

Navigateur d'objets

Navigateur d'objets


Il y a tout ce dont vous avez besoin pour travailler avec des objets de base de données: créer, modifier, supprimer, afficher les propriétés des objets, saisir des données dans des tableaux - pour tout cela, cette section a une interface graphique. En haut à gauche dans la liste déroulante, vous pouvez sélectionner le type d'objets (les tableaux sont affichés dans la capture d'écran), en haut à droite, vous pouvez sélectionner le schéma dont vous pouvez voir les objets. Dans la liste des régimes disponibles, vous ne verrez pas tous les régimes à la fois - c'est normal. Comment rendre les schémas visibles dans l'apex, je vous dirai quand j'arriverai à l'administration.
De plus, je ne vois pas grand-chose à décrire cette section plus en détail: si vous savez ce que signifie l'expression "ajouter une colonne au tableau", vous pouvez facilement deviner quand vous devez cliquer sur le bouton "Ajouter une colonne" et ce qui peut vous attendre ensuite.


Commandes SQL

Dans cette section, vous pouvez exécuter des requêtes SQL et du code PL / SQL.


Commandes sql


En termes de capacités, cette section est presque aussi bonne que les environnements de développement à part entière. La seule chose qui manque est l'achèvement du code et la mise en évidence de la syntaxe (et il y a d'ailleurs la mise en évidence de la syntaxe dans l'Explorateur d'objets). Caractéristiques disponibles:


  • Exécution SQL, y compris avec paramètres (une fenêtre séparée apparaîtra pour entrer les valeurs des paramètres);
  • Exécution PL / SQL avec possibilité de sortie de texte via dbms_output (la sortie apparaîtra dans la fenêtre ci-dessous);
  • exécution uniquement de la partie sélectionnée du code (sélectionnez le texte avec la souris, puis "Exécuter");
  • visualiser le plan de demande;
  • enregistrement des demandes.

***

Comme vous le comprenez, cela est loin de tout ce qui se trouve dans l'IDE APEX, mais à ce stade, il n'est pas logique d'aller plus loin. Les éléments individuels de l'interface apex seront discutés plus en détail dans des sujets qui leur sont directement liés.


PS Je ne peux pas encore dire que j'ai clairement réfléchi à la structure de ce tutoriel, peut-être qu'à l'avenir, j'ajouterai des captures d'écran et des descriptions à cet article ou décrirai des fonctionnalités supplémentaires dans d'autres articles. Il reste à déterminer comment informer les parties intéressées des modifications importantes apportées aux anciens articles.

Source: https://habr.com/ru/post/fr445128/


All Articles