Paramètres d'Up ! Shell
Up ! Shell est l'outil multi-plates-formes d'interprétation en interactif de commandes ou de scripts écrits en Up ! 5GL.
Up ! Shell nécessite un script de démarrage dont le contenu varie selon le contexte d'emploi. Les scripts sont rangés dans le répertoire ${UPS_HOME}/upssdk/sources/${UPS_LANGUAGE} en mode mono-utilisateur ou ${UPS_HOME}/upssdk/sources/${UPS_USER} en mode multi-utilisateur.
Le contexte d'emploi peut être soit :
- Un composant.
Le script de démarrage est alors upsshl.upl par convention.
Selon les Application Program Interface (API) utilisées :
- Up ! Kernel.
Up ! Shell offre alors des fonctionnalités similaires à Lisp, outil interactif d'algorithmie sur des objets.
Le modèle de script de démarrage est upsshl-upskrn.upl.
- Up ! Mathematical.
Up ! Shell offre alors des fonctionnalités similaires à MathLab, outil interactif de manipulation de concepts mathématiques - Vecteurs, matrices, équations, etc.
Le modèle de script de démarrage est upsshl-upsmat.upl.
- Up ! Network, ses pilotes et Up ! Object Request Broker.
Up ! Shell offre alors des fonctionnalités similaires à Rebol, outil interactif de manipulation de ressources accessibles via le Internet - Boîtes aux lettres électroniques, contenu, transferts de fichiers, etc.
Les modèles de script de démarrage sont upsshl-upscns.upl ou upsshl-upsmls2.upl.
- Up ! Query et ses pilotes.
Up ! Shell offre alors des fonctionnalités similaires à Sql * Plus d'Oracle, outil interactif d'insertion, d'interrogation, de mise à jour et de suppression des données d'une base.
Le modèle de script de démarrage est upsshl-upsqry.upl.
- Up ! System.
Up ! Shell offre alors des fonctionnalités similaires au shell d'Unix, outil interactif de manipulation de ressources du système d'exploitation - Fichiers, programmes, processus, répertoires, etc.
- Une ressource.
Celle-ci peut être gérée par le module :
- Up ! Electronic Data Interchange.
Up ! Shell offre alors des fonctionnalités d'importation et d'exportation de données.
Le script de démarrage est alors upsshl-upsedi.upl par convention.
- Up ! Graphical Engine.
Up ! Shell offre alors la possibilité de tester des feuilles de styles - Pinceaux, motifs, images, etc.
Le script de démarrage est alors upsshl-upsgng.upl par convention.
- Up ! Mail Service.
Up ! Shell offre alors des fonctionnalités d'insertion, d'interrogation, de mise à jour ou de suppression dans un annuaire électronique.
Le script de démarrage est alors upsshl-upsmls.upl par convention.
- Up ! Picture.
Up ! Shell offre alors des fonctionnalités similaires à Logo, outil interactif de dessin vectoriel - Ellipses, images, rectangles, traits, etc.
Le script de démarrage est alors upsshl-upspct.upl par convention.
- Up ! Object Request Broker.
Up ! Shell offre alors des fonctionnalités d'insertion, d'interrogation, de mise à jour ou de suppression dans un annuaire.
Le script de démarrage est alors upsshl-upsorb.upl par convention.
- Up ! Security Manager.
Up ! Shell offre alors des fonctionnalités d'insertion, d'interrogation, de mise à jour ou de suppression dans un profil de sécurité.
Le script de démarrage est alors upsshl-upssec.upl par convention.
Le script de démarrage peut comporter des modules importés, des définitions globales, des procédures et des fonctions et des instructions à exécuter au lancement.
En outre, il est possible en interactif de :
Le résultat des commandes tapées interactivement ou exécutées en batch sont formatées en une édition dans la sortie standard qui compte des paramètres de présentation d'Up ! Shell présentés dans la section suivante.
L'édition peut être personnalisée en spécifiant préalablement à son exécution :
- La feuille de styles.
Le document produit utilise la feuille de styles désignée par le paramètre UpsGng.FeuilleDeStyles, qui est généralement ${UPS_HOME}/upsvtm/resources/${UPS_LANGUAGE}/normal_couleurs_vraies.upl.
- Les méthodes de rappels du type FluxFormateSysteme.
Elles sont définies dans le script de démarrage ou dans un module importé par celui-ci.
- Les propriétés de pagination des objet Ecran ou Imprimante.
Elles sont définies dans le script de démarrage ou dans un module importé par celui-ci.
Pour plus de précisions sur les propriétés possibles, merci de se référer à la fiche HauteurPage et all.
Quel que soit son mode d'invocation, Up ! Shell possède les mêmes paramètres cités dans la section suivante. La commande est, selon les plates-formes, upsshl, upsshl.exe ou upsshl.com.
Up ! Shell peut être invoqué soit :
- En ligne de commande en mode fenêtré.
En ce cas, pour les plates-formes graphiques, une fenêtre sommaire est ouverte contenant le dialogue d'interprétation.
- Encapsulé dans l'atelier de réalisation d'application Up ! Workbench.
Certains paramètres font référence à des fichiers ou à des chemins d'accès. En ce cas, il est possible d'employer des variables environnement dans l'expression des chemins d'accès. Exemple :
Tmp=${UPS_HOME}/demo/tmp/${UPS_USER}
D'autre part, le séparateur de répertoire est le caractère division /
et les noms de fichiers ou de répertoires peuvent utiliser les partitions montées automatiquement par Up ! System.
Les paramètres sont lus successivement dans :
Les valeurs des paramètres comportant des caractères espace doivent être mises entre caractères guillemet " ou entre caractères apostrophe ' .
Pour connaître le source d'Up ! Shell, merci de se référer à la fiche Source d'Up ! Shell.
Paramètres d'interprétation
Up ! Shell étant un programme Up ! Application System particulier, les paramètres de lancement de Up ! Virtual Technical Machine et celles d'exécution de Up ! Kernel s'appliquent. En revanche, la configuration de Up ! Object Management System est imposée. Elle correspond au fichier ${UPS_HOME}/ini/upssdk.ini.
CadreCorpsTableau
CadreCorpsTableau permet de spécifier le style de cadre pour le corps des tableaux produits automatiquement. La valeur par défaut est CadreSimple
.
Style de cadre. | Valeur du paramètre. |
Pas de cadre. | CadreAucun |
Cadre simple. | CadreSimple |
Cadre double. | CadreDouble |
Cadre ombré. | CadreOmbre |
CadreEnteteTableau=CadreSimple
CadreEnteteTableau
CadreEnteteTableau permet de spécifier le style de cadre pour l'en-tête des tableaux produits automatiquement. La valeur par défaut est CadreDouble
.
Style de cadre. | Valeur du paramètre. |
Pas de cadre. | CadreAucun |
Cadre simple. | CadreSimple |
Cadre double. | CadreDouble |
Cadre ombré. | CadreOmbre |
CadreEnteteTableau=CadreOmbre
Source
Source permet de spécifier le script en Up ! 5GL qui sert à définir le contexte de l'interprétation. La valeur par défaut est ${UPS_HOME}/upssdk/sources/${UPS_LANGUAGE}/upsshl.upl.
Il s'agit d'un source d'un composant, d'un module ou d'une ressource en Up ! 5GL.
Pour un source d'un composant ou d'un module, si le script comporte :
- Une fonction sans paramètres de nom UpsPs1.
Alors le résultat de la fonction est utilisé en invité de premier niveau pour saisir les commandes. Par défaut, il s'agit de =>.
Cela correspond à la variable environnement PS1 d'Unix.
- Une fonction sans paramètres de nom UpsPs2.
Alors le résultat de la fonction est utilisé en invité de second niveau pour saisir la suite des commandes. Par défaut, il s'agit de ?>.
Cela correspond à la variable environnement PS2 d'Unix.
Source=${UPS_HOME}/demo/sources/${UPS_LANGUAGE}/monscript.upl
TailleCelluleBooleen
TailleCelluleBooleen permet de spécifier la largeur en nombre de caractères d'une cellule d'un tableau produit automatiquement pour une valeur booléenne. La valeur par défaut est permet d'écrire intégralement Oui ou Non dans la langue sélectionnée.
TailleCelluleBooleen=1
TailleCelluleDate
TailleCelluleDate permet de spécifier la largeur en nombre de caractères d'une cellule d'un tableau produit automatiquement pour une valeur de type date. La valeur par défaut est 11.
TailleCelluleDate=11
TailleCelluleDateEtHeure
TailleCelluleDateEtHeure permet de spécifier la largeur en nombre de caractères d'une cellule d'un tableau produit automatiquement pour une valeur de type date et heure. La valeur par défaut est 20.
TailleCelluleDateEtHeure=20
TailleCelluleEntier
TailleCelluleEntier permet de spécifier la largeur en nombre de caractères d'une cellule d'un tableau produit automatiquement pour une valeur entière. La valeur par défaut est la longueur du filtre FiltreEntier.
TailleCelluleEntier=10
TailleCelluleHeure
TailleCelluleHeure permet de spécifier la largeur en nombre de caractères d'une cellule d'un tableau produit automatiquement pour une valeur de type heure. La valeur par défaut est 8.
TailleCelluleHeure=8
TailleCelluleIdentifiant
TailleCelluleIdentifiant permet de spécifier la largeur en nombre de caractères d'une cellule d'un tableau produit automatiquement pour un identifiant i.e. un mot. La valeur par défaut est 15.
TailleCelluleIdentifiant=30
TailleCelluleLibelle
TailleCelluleLibelle permet de spécifier la largeur en nombre de caractères d'une cellule d'un tableau produit automatiquement pour un libellé i.e. plusieurs mots. La valeur par défaut est 25.
TailleCelluleLibelle=50
TailleCelluleReel
TailleCelluleReel permet de spécifier la largeur en nombre de caractères d'une cellule d'un tableau produit automatiquement pour une valeur réelle. La valeur par défaut est la longueur du filtre FiltreReel.
TailleCelluleReel=10
Formatages particuliers
Up ! Shell formate le résultat de certaines Application Program Interface (API) de la sorte à améliorer la lisibilité :
Up ! Shell formate sinon le résultat en fonction de son type :
- Un objet du type AbonnementElectronique.
L'abonnement électronique est formaté sous forme d'un tableau détaillant :
- Nom de l'abonnement.
- Adresse électronique de l'abonnement.
- Description de l'abonnement.
- Liste des abonnés.
- Un objet du type AnnuaireUpsOrb.
L'annuaire est affiché sous forme d'un tableau détaillant :
- Nom de l'annuaire.
- Témoin de chargement.
- Un objet du type ArbreBinaire.
L'arbre binaire est affiché sous forme d'arbre binaire d'objets.
- Un objet du type Binaire.
Le contenu est affiché sous forme d'une suite d'octets.
- Un objet du type Caractere.
Le contenu est affiché sous forme d'une chaîne de caractères.
- Un objet du type Complexe.
Le complexe est formaté en un couple de réels ou de décimaux.
- Un objet du type CourrierElectronique.
Le courrier électronique est formaté sous forme d'un tableau détaillant :
- Liste des émetteurs.
- Liste des destinataires.
- Liste des destinataires en copie.
- Objet du courrier.
- Date d'envoi.
- Attributs du courrier.
- Corps du courrier.
- Pièces jointes au courrier.
- Un objet du type Date.
La date est formatée avec le filtre FiltreDateHeure.
- Un objet du type Decimal.
Le décimal est formaté avec une extension du filtre FiltreReel.
- Un objet du type EnregistrementSql.
L'enregistrement est formaté en deux lignes :
- Une ligne d'en-tête pour le nom des champs.
- Une ligne de détail pour les valeurs des champs.
- Un objet du type Entrepot.
L'entrepôt est affiché sous forme d'un tableau détaillant :
- Numéro de l'entrepôt.
- Nom de l'entrepôt.
- Mode d'accès à l'entrepôt.
- Témoin de mémoire mobile.
- Taille de la mémoire allouée.
- Taille de la mémoire totale.
- Taille du fichier d'échange allouée.
- Taille du fichier d'échange totale.
- Nombre de verrous posés.
- Nombre de verrous au total.
- Nombre d'objets créés.
- Un objet du type Enumere.
La valeur de l'énuméré est écrit sous forme d'un entier.
- Un objet du type Entier.
L'entier est formaté avec le filtre FiltreEntier.
- Un objet du type EntiteContenuInternet.
L'entité de contenu est affiché sous forme d'un tableau détaillant :
- Uniform Resource Identifier (URI) de contenu.
- Description.
- Date de dernière modification.
- Date d'expiration.
- Type de contenu.
- Contenu stricto sensus s'il est affichable en mode caractère.
- Un objet du type FichierListe.
Le fichier est affiché sous forme d'un tableau détaillant :
- Attributs du fichier ou du répertoire.
- Taille pour un fichier.
- Nom du fichier ou du répertoire.
- Date de création pour un fichier.
- Date de modification pour un fichier.
- Date de dernier accès pour un fichier.
- Un objet du type Hachage.
La table de hachage est affichée sous forme d'une table de listes.
- Un objet du type IBlocSql et all.
- Les paramètres d'entrée sont demandés interactivement.
- Le bloc Sql est exécuté.
- Les paramètres de sortie sont écrits en séquence.
- Un objet du type IOrdreSql et all.
- Les paramètres d'entrée sont demandés interactivement.
- L'ordre Sql est exécuté.
- Le nombre d'enregistrements impactés est affiché.
- Un objet du type IRequeteSql et all.
- Les paramètres d'entrée sont demandés interactivement.
- La requête Sql est exécutée.
- Les enregistrements sélectionnés sont affichés en tableau.
- Le nombre d'enregistrements sélectionnés est affiché.
- Un objet du type Licences.
La licence est affichée sous forme d'un tableau détaillant :
- Sorte de la licence.
- Portée de la licence.
- Un objet du type Liste.
La liste est affichée sous forme de liste.
- Un objet du type Matrice.
La matrice est affichée sous forme d'une matrice d'objets.
- Un objet du type Module.
Le module est affiché sous forme d'un tableau détaillant :
- Priorité du module.
- Nom du module.
- Version du module.
- Révision du module.
- Correction du module.
- Type du module.
- Etat de mise au point.
- Etat de profilage.
- Un objet du type ProcessusListe.
Le procéssus est affiché sous forme d'un tableau détaillant :
- Identifiant du processus.
- Priorité du processus.
- Nom du processus.
- Temps écoulé.
- Temps système.
- Temps utilisateur.
- Un objet du type Reel.
Le réel est formaté avec le filtre FiltreReel.
- Un objet du type ReponseContenu.
La réponse sur du contenu est affiché sous forme d'un tableau détaillant :
- Uniform Resource Identifier (URI) de la réponse.
- Date de nouvelle tentative.
- Avertissement.
- Provenance en terme d'anté-mémoire du serveur.
- Corps du contenu de la réponse.
- Pièces jointes du contenu de la réponse.
- Un objet du type RequeteContenu.
La requête sur du contenu est affiché sous forme d'un tableau détaillant :
- Uniform Resource Identifier (URI) de la requête.
- Date de dernière modification ou non.
- Provenance en terme d'anté-mémoire du client et du serveur.
- Corps du contenu de la question.
- Pièces jointes du contenu de la question.
- Un objet du type Role.
Le rôle est affiché sous forme d'un tableau détaillant :
- Nom du rôle.
- Description du rôle.
- Nom du rôle père.
- Un objet du type Tableau.
Le tableau est affiché sous forme d'un tableau d'objets
- Un objet du type Tache.
La tâche est affichée sous forme d'un tableau détaillant :
- Nom de la tâche.
- Témoin de terminaison.
- Code retour.
- Témoin de relance.
- Un objet du type UniteListee.
L'unitée est affichée sous forme d'un tableau détaillant :
- Sorte de l'unité.
- Nom de l'unité.
- Place libre.
- Place occupée.
- Place totale.
- Temps utilisateur.
- Un objet du type Utilisateur.
L'utilisateur est affiché sous forme d'un tableau détaillant :
- Nom de l'utilisateur.
- Description de l'utilisateur.
- Nom du rôle.
- Heure de début de connexion.
- Heure de fin de connexion.
- Un objet du type Vecteur.
Le vecteur est affiché sous forme d'un vecteur.
Up ! Shell formate sinon le résultat par appel à la méthode privée Tracer implémentée automatiquement qui tient compte de l'inflexion Trace.
Script de lancement
Voici le script de lancement par défaut ${UPS_HOME}/upssdk/sources/${UPS_LANGUAGE}/upsshl.upl :
Source Composant "Up ! Shell" Version 4.0.0;
Fonction UpsPs1() Retourner Caractere
/***********************************/
Debut
Retourner LireRepertoireCourant()+" =>";
Fin Fonction
Fonction UpsPs2() Retourner Caractere
/***********************************/
Debut
Retourner LireRepertoireCourant()+" ?>";
Fin Fonction
Principal
/*******/
Debut
Ecran.Ecrire("Up ! Shell - version 4.0.0 - Copyright Up ! Company (c) 2003-2007\n");
Ecran.Ecrire(Caractere(DateSysteme(), "Le %j/%m/%A à %HH:%Mi:%S\n"));
Fin Principal
Exemple de configuration d'Up ! Shell
; -------------------------------------------------------------------
; Fichier : upsshl.ini
; Objet : Initialisation d'Up ! Shell.
;
; Module : Up ! Application System.
; Auteur-Date : DUVAL Jean-Pierre - Novembre 2003.
; -------------------------------------------------------------------
; Observations
;
;
; -------------------------------------------------------------------
[UpsShl]
CadreEnteteTableau=CadreSimple
CadreEnteteTableau=CadreOmbre
Source=${UPS_HOME}/demo/sources${UPS_LANGUAGE}/monscript.upl
TailleCelluleBooleen=1
TailleCelluleDate=11
TailleCelluleDateEtHeure=20
TailleCelluleIdentifiant=30
TailleCelluleEntier=10
TailleCelluleHeure=8
TailleCelluleLibelle=50
TailleCelluleReel=10