Volume 18 Numéro 2 Juin 2008 Contenu 1 Service d’audit de projets de modernisation de Speedware 2 Un mégadétaillant télévisé est impressionné par les services de Speedware Speedware nous a permis de réussir l’impossible 3 Le SWS, une véritable mine d’informations Le site Web du soutien de Speedware contient l’information qu’il vous faut 3 Congrès du GHRUG Conférence du groupe d’utilisateurs de Houston au campus Clear Lake 3 Webémission de HP et Encompass Sommaire de haut niveau des nouveautés du marché e3000 4 Trucs et astuces pour l’utilisation de Media Nos experts vous montrent comment tirer le meilleur parti de Media 6 Où est passé le lien? Speedware Autobahn II vous permet de placer des liens où vous le voulez 7 Comment tirer profit du versionnage dans Speedware L’expert Michael Rusk emploie le versionnage pour les mises à jour et le débogage 12 Nouvelle option -c de la ligne de commande d’AMXW Vous pouvez désormais exécuter des instructions nlsh sans être dans nlsh Service d’audit de projets de modernisation de Speedware Afin d’affronter la concurrence actuelle, les sociétés entreprennent des projets de modernisation complexes et de grande envergure visant à améliorer leur rendement et à mettre à jour des systèmes informatiques désuets. Selon la taille de l’organisation, ces projets peuvent coûter des millions de dollars et s’échelonner sur plusieurs mois ou plusieurs années. Étant donné les coûts et le temps requis, la réussite de ces projets constitue un but qui est souvent difficile à atteindre. Des études américaines ont démontré que 18 à 31 % des projets de TI sont annulés avant leur achèvement et que plus de la moitié de ceux-ci encourent des dépassements de coûts allant de 56 % à 189 %. Des chiffres récents montrent que la tendance s’améliore, mais le nombre de projets « mis en doute » demeure constant : 53 % des projets de TI sont terminés en retard, sans que tous les objectifs aient été atteints. Les enjeux étant si importants, les entreprises doivent se munir de systèmes assurant la réussite de leurs projets de modernisation. Grâce au service d’audit de Speedware, vous obtenez une évaluation objective d’un tiers sur la viabilité de votre projet ainsi que des recommandations contribuant à sa réussite. L’audit de Speedware identifie les problèmes et les défis typiques d’un projet de TI tout en se concentrant sur la réussite de celui-ci. Notre évaluation vous fournit aussi des suggestions et des pratiques exemplaires à suivre pour améliorer l’organisation et la gestion de vos projets. Les gestionnaires, les intervenants ainsi que toute l’équipe de projet tirent profit d’une évaluation qui démontre les aspects positifs du projet ainsi que les points devant être améliorés pour en assurer la réussite. Un mégadétaillant télévisé est impressionné par les services de Speedware Information sur la publication Speedware — Une filiale en propriété exclusive d’Activant Solutions Inc. 6380, ch. de la Côte-de-Liesse Bureau 110 Saint-Laurent (Québec) Canada H4T 1E3 Tél. : (+1) 514 747-7007 Téléc. : (+1) 514 747-3380 Courriel : [email protected] Heures d’affaires du soutien technique Comme toujours, de 9 h à 17 h É.-U., Canada : 1 800 361-6782 Int. : (+1) 514 747-9494 R.-U. 0.800.96.77.14 Téléc. : (+1) 514 747-3380 Courriel : [email protected] Site Web du soutien technique : tsunami.speedware.com/ sws-fr.html Marques de commerce AMXW, DBmotion, Decision Server, EasyReporter, Esperant, Media, MobileDev, Speedware, Speedware Autobahn II, SpeedWeb et Visual Speedware sont des marques de commerce de Speedware ltée. Tous les autres noms de produits sont des marques déposées de leurs fabricants respectifs. © 2008 Speedware ltée SPE-MKPROF18-F2 Versions courantes des logiciels de Speedware AMXW DBmotion Esperant Media Speedware Speedware Autobahn II SpeedWeb Visual Speedware Volume 18 Numéro 2 8.05.13 3.00.00 5.20.00 5.20.00 7.13.00 5.01.00 3.04.00 4.00.00 « On nous avait dit que ce projet serait impossible à réaliser dans le temps alloué. Or, Speedware nous a permis de réussir l’impossible. » Le « client » est un détaillant télévisé reconnu comme étant un centre d’achats virtuel qui ne ferme jamais. Un chef de file du marché, l’entreprise diffuse des émissions thématiques 24 heures sur 24, 7 jours par semaine, attirant plus de 100 millions de téléspectateurs à travers le monde. Le temps pressait Un client Hewlett-Packard de longue date, le détaillant utilisait les machines HP e3000 les plus puissantes, mais les activités approchaient leur capacité maximale. Qui plus est, HP annonçait que la plateforme HP e3000 allait être retirée du marché, deux situations qui ont obligé la compagnie à trouver une solution de migration et à l’implanter rapidement. Vu la complexité de l’environnement informatique, le service des TI de l’entreprise a affirmé qu’il serait impossible d’implanter une solution de migration dans le délai prévu. À l’écoute du client Trois critères étaient importants pour le client dans son choix d’une solution de migration : le temps, la performance et le risque. D’abord, il était primordial que la migration soit réalisée dans un délai de 12 mois. Le détaillant avait besoin qu’une solution soit mise en place à temps pour gérer la hausse de volume prévue l’année suivante lors de la période des fêtes. Le client accordait également une importance capitale à la performance, car il fallait que les applications migrées fonctionnent aussi rapidement que les applications d’origine. La transition ne devait pas non plus nuire au temps de réponse. Finalement, le client recherchait une solution à faible risque. Chaque jour, l’entreprise traite une quantité extraordinaire d’informations. Ainsi, elle voulait adopter une approche de migration qui assurerait la continuité de ses opérations. La complexité : un défi de taille La complexité du système de TI de l’organisation constituait le plus grand défi du projet. Le centre informatique du détaillant stocke des quantités impressionnantes de données, atteignant parfois jusqu’à 19 téraoctets. En outre, les applications étaient partagées par trois des entités commerciales de la société. Chacune de ces entités comportait des différences régionales et la solution de migration allait devoir en tenir compte. Solution de migration de Speedware Speedware a obtenu ce contrat, car en plus d’offrir un prix attrayant, la compagnie proposait une approche novatrice qui prenait en considération les préoccupations du client. Grâce à la solution proposée, le détaillant a pu conserver ses bases de données et ses structures sans avoir à les réécrire, ce qui a permis de terminer le projet à temps. De plus, le client a pu garder certains outils essentiels à ses opérations. Faits saillants d’une migration réussie À la fin du projet, Speedware et le client étaient conscients qu’ils venaient de réussir ce qui au départ semblait impossible. Speedware a complété le projet de migration en respectant l’échéance. Le détaillant a donc pu répondre à la hausse des transactions prévue pour la période des fêtes. Grâce à de nouveaux et robustes serveurs HP Integrity avec système d’exploitation HP-UX, la fiabilité n’a aucunement été compromise et le degré de performance était supérieur à ce qui avait été anticipé. Plus de 2 millions de lignes de code ont été migrées avec succès. Malgré la complexité du projet, la transition de HP e3000 vers HP Integrity s’est déroulée sans problème tout en assurant la continuité des opérations. 2 Le SWS, une véritable mine d’informations Le site Web de soutien technique de Speedware contient l’information qu’il vous faut Le SWS en bref • www.speedware.com/sws • Recherche dans la Knowledgebase accessible à partir de la page d’accueil; un clic suffit pour accéder à la recherche avancée • Versions les plus récentes des logiciels et de la documentation • Envoi de notifications en fonction du dossier • La fonction What’s New vous permet de voir les nouveaux ajouts depuis votre dernier accès au SWS • Le Learning Center contient des centaines d’articles Le site Web de soutien de Speedware (SWS, à l’adresse www.speedware.com/sws) est un dépôt qui croît sans cesse et qui contient toutes les informations relatives à Speedware. Par exemple : • Le SWS vous donne accès à toute la Knowledgebase de demandes de services de Speedware, pas uniquement celles que vous avez soumises vous-même. Tous les problèmes, améliorations, demandes ou questions techniques sont saisis dans la Knowledgebase, qui est accessible à tous les clients pris en charge. Vous pouvez la consulter en tout temps pour connaître le statut d’un problème ou d’une amélioration à apporter. • Le dossier Documentation contient tous les manuels de référence, guides d’utilisateurs, etc. Ce dossier était nommé Reference Library auparavant. • Des articles de nature technique sont disponibles dans le dossier Learning Center. • La fonction Advanced Knowledge Search vous offre une liste de corrections de bogues correspondant à la version précise d’un logiciel. Vous pouvez utiliser cette fonctionnalité en cliquant sur le lien approprié dans le coin supérieur gauche de la page d’accueil du SWS. Sélectionnez ensuite un nom dans la liste déroulante Product et spécifiez la version dans le champ Fixed in Version. Cliquez ensuite sur le bouton View Results. Outre ces fonctionnalités fort pratiques, le SWS peut vous informer lorsqu’un correctif, une nouvelle version ou un nouveau document est disponible. Il vous suffit d’activer l’option Email notification dans le SWS. La fonction E-mail notification est définie pour des dossiers individuels dans le SWS. Par exemple, si vous aimeriez être avisé à chaque fois qu’une mise à jour de Speedware version classique est disponible pour la plateforme HP 9000, ouvrez simplement le dossier HP 9000 et activez la fonction Email notification. Vous pouvez activer cette fonction en cliquant sur l’icône prévue à cet effet dans la barre d’outils du SWS ou en cliquant sur l’indicateur OFF dans la ligne Email notification située dans le coin supérieur droit du SWS. L’indicateur changera pour ON et les notifications seront activées pour le dossier en cours. Gourou du SWS Congrès du GHRUG Webémission de HP et Encompass Speedware a été un fier commanditaire du deuxième congrès international annuel du Greater Houston Regional Users Group (GHRUG). Cet événement de deux jours a eu lieu les 14-15 mars 2008 au campus Clear Lake de l’université de Houston. Speedware a été parmi les invités d’une wébémission présentant les nouveautés dans le marché de la technologie e3000. Commanditée par Encompass et HP, la webémission ciblait le marché européen et présentait entre autres des nouveautés et des annonces importantes, en plus de permettre aux clients et partenaires de savoir à quoi s’attendre sur le plan de la R-D et du soutien au cours des prochaines années. La webémission a eu lieu le 15 mai et comportait aussi des discussions sur les migrations ainsi que les partenaires et les outils en matière de transition. La conférence de cette année comportait cinq lignes directrices, dont deux étaient consacrées à la plateforme HP e3000. Speedware a eu le plaisir de donner deux présentations : une introduction à ses solutions de migration ainsi qu’une session d’information sur la gestion de portefeuilles d’applications (APM). Volume 18 Numéro 2 3 Trucs et astuces pour l’utilisation de Media Nos experts vous montrent comment tirer le meilleur parti de Media Trucs et astuces Les utilisateurs de Media expérimentés font appel aux trucs suivants pour accélérer leur travail et assurer le bon fonctionnement de leurs tableaux de bord. Chaque truc est détaillé dans cet article. • Augmenter le nombre de lignes retournées pour une table SQL en augmentant le nombre maximal de points de données permis • Définir le contexte pour chaque utilisateur de La Knowledgebase de Speedware contient de nombreux trucs, conseils et astuces vous permettant de gagner du temps et de maximiser votre utilisation de Media et de Media Web. Cet article présente plusieurs des trucs les plus utiles. Augmentation du nombre de lignes retournées pour les tables SQL Le nombre de lignes retournées par Media dans une table SQL dépend du nombre de points de données permis dans les graphiques. Un point de données est une valeur unique dans un graphique selon des coordonnées x/y. Par exemple, un tableau de 10 rangées et de 5 colonnes compte 50 points de données. Dans Media, la valeur par défaut pour les points de données dans les tables est de 2000. Afin de changer cette valeur, suivez ces étapes : dimension Entrepôts est fixée à New York et la dimension Années est fixée à 05. Sélection de la langue au lancement de Media Media démarrera en anglais ou en français, selon les paramètres régionaux définis sur votre poste. Afin de changer la langue définie, indiquez ce qui suit dans le raccourci : chemin_vers_media.exe /lang:fr ou chemin_vers_media.exe /lang:en Media Web 1. Cliquez avec le bouton droit sur l’arrière-plan • Sélectionner une langue au lancement de Media • Résoudre les problèmes du tableau de bord (ou cliquez sur le menu Fichier) et sélectionnez Propriétés du tableau de bord. liés à la langue/culture avec 2. Cliquez sur l’onglet Graphiques. Windows Vista 3. Sous Nombre maximal de points de données, • Actualiser automatiquement un graphique • Charger adéquatement la page d’introduction avec Media Web • Éviter l’erreur « Il n’y a plus de licence disponible. » • Assurer l’affichage de toutes les données dans un graphique Media. augmentez la valeur de Tableau. Définition du contexte pour chaque utilisateur de Media Web Lorsque vous installez Media V5.2 sur Windows Vista et que vous lancez le programme, vous pourriez obtenir l’erreur suivante : Unknown culture (en:-US), .NET system default used Vous pouvez utiliser un fichier de configuration afin de définir le contexte pour chaque utilisateur dans Media Web. Créez le fichier dans le même emplacement que le fichier users.dat. Appelez-le usersettings.ini. Le fichier possède le format suivant : Ouvrez alors les propriétés du raccourci (cihaut) et, dans le champ Target, enlevez les deux-points supplémentaires qui ont été ajoutés à la ligne. La ligne devrait alors être la suivante : [\vue_de_données\tableau_de_bord] util=dimension=valeur dimension=valeur, etc. Actualisation automatique d’un graphique Par exemple : [\LBMDemo\LBMdemo.dsh] admin=Entrepôts="New York" Années=05 Si vous désirez actualiser un graphique à toutes les n minutes, cliquez à droite sur celuici, choisissez Propriétés dans le menu et cliquez sur l’onglet Rafraîchir. Sélectionnez l’option « Rafraîchir le graphique automatiquement » et indiquez à quelle fréquence le graphique devrait être actualisé. Ceci précise le contexte pour l’utilisateur « admin ». Chaque fois qu’un utilisateur admin ouvre le tableau de bord via Media Web, la Volume 18 Numéro 2 Pour éviter les problèmes liés à la langue/culture avec Windows Vista chemin_vers_media.exe /lang:en 4 Trucs et astuces pour l’utilisation de Media (suite) Nos experts vous montrent comment tirer le meilleur parti de Media Chargement de la page Intro.htm dans Media Web [License] Lorsque vous tentez de charger votre page Media Web V5, il se peut que vous ne voyiez qu’un bouton de connexion, sans texte. Afin de charger la page correctement, votre navigateur doit accepter le langage JavaScript. Suivez ces étapes pour activer JavaScript dans Internet Explorer : LSServerIP=addresse_IP LSServerPortNum=numéro_de_port 2. Assurez-vous que LSServerIP correspond à l’adresse IP où License Server est installé, et LSServerPortNum spécifie le port d’écoute du License Server (8187 par défaut). Cette information 1. Choisissez Tools > Internet Options à partir du menu principal. 2. Cliquez sur l’onglet Security. 3. Cliquez sur le bouton Custom level... 4. Défilez vers le bas jusqu’à la section Scripting. a été fournie lors de l’installation du License Server. Au besoin, vérifiez cette information auprès de votre administrateur de système. Notez que si vous spécifiez localhost en tant qu’adresse IP du License Server, vous pourriez aussi recevoir le message d’erreur. 5. Activez la fonction Active scripting. Il est toujours préférable de spécifier l’adresse IP réelle de l’ordinateur. Affichage de toutes les données dans un graphique Media Afin d’activer JavaScript dans Mozilla Firefox : Si vous utilisez Media avec Decision Server dans une configuration client-serveur, il pourrait arriver qu’un graphique ne comprenne pas toutes les valeurs qui s’afficheraient en local (sans Decision Server). Dans ce cas, essayez d’augmenter la taille maximum des fichiers cache dans Decision Server: 1. Choisissez Tools > Options à partir du menu principal de Firefox. 1. Ouvrez le Gestionnaire de services Speedware. 2. Dans la boîte de dialogue Options, cliquez sur Web Features. 2. Sélectionnez le service approprié dans la liste. Il s’agit du service pour le dépôt qui contient votre tableau de bord. 3. Cliquez sur Enable JavaScript. Une fois que vous avez effectué le changement, chargez de nouveau la page Intro.htm de Media Web V5. Elle devrait s’afficher correctement. 3. Cliquez sur Modifier. Dans la boîte de dialogue Propriétés du serveur, trouvez le champ Taille maximale des fichiers cache (octets). 4. Augmentez la taille du fichier et redémarrez le service. Message d’erreur « Il n’y a plus de licence disponible » Vous cliquez sur le bouton Connexion au serveur afin de lancer Media Web, mais l’erreur suivante apparaît parfois : Il n’y a plus de licence disponible. Ce message s’affiche généralement lorsque Media Web ne peut pas atteindre le License Server. Vous devez vérifier l’exactitude de l’adresse IP du fichier ls.ini. Suivez ces étapes : 1. Ouvrez le fichier ls.ini à l’emplacement suivant : C:\Documents and Settings\All Users\Application Data\ Speedware\Media5\ Vinay Sethi Le fichier contient l’information suivante : Volume 18 Numéro 2 Consultant au soutien technique 5 Où est passé le lien? Speedware Autobahn II vous permet de placer des liens où vous le voulez Speedware Autobahn II vous fournit une grande flexibilité pour la création d’applications, de programmes et de liens. Les assistants d’Autobahn font la majeure partie du travail pour vous. Par contre, il arrive que vous vouliez effectuer certains choix par vous-même. Par exemple, avez-vous déjà ajouté un lien avec le Link Wizard d’Autobahn sans vouloir que celui-ci se retrouve au bas de la liste? Le Link Wizard vous permet de placer un lien à l’endroit de votre choix sur votre page HTML sans avoir à accéder au Document Editor. Suivez simplement ces étapes : 1. Ouvrez le Document Editor de la page où vous créerez le lien. Le Document Editor affiche le code HTML de la page. 2. Placez le curseur dans le code HTML à l’endroit où vous souhaitez que le lien apparaisse. Cette fonctionnalité est surtout utile lorsque vous développez des pages Web, car vous n’avez pas à modifier les liens après les avoir ajoutés. Il arrive souvent dans une page Web que vous voulez incorporer un lien dans un paragraphe de texte. Autobahn vous permet de placer le curseur dans le texte et de créer le lien à cette position exacte. Quelques pièges Vous pouvez placer les liens où vous voulez, mais faites attention aux points suivants : • En utilisant cette méthode, tout le code des liens est généré à l’endroit où vous avez placé le curseur, et non pas à l’emplacement par défaut. Vous devez éviter que des liens soient incorporés dans d’autre code qui pourrait modifier le comportement de votre page. 3. Dans la fenêtre Application Map, créez un lien à partir du programme en cours vers un autre programme. 4. Le code du lien apparaîtra dans le Document Editor à l’endroit où votre curseur était positionné au lieu d’apparaître au bas de • Tenez compte des SPWBLOCK, car ils déterminent parfois la façon dont votre lien s’affiche ou si celui-ci apparaît ou non. Faites-en l’essai. Cette fonction accélère et simplifie le développement de pages Web dans Speedware Autobahn. la page. Tony Aversa Consultant au soutien technique Dans la page Web générée, le lien apparaît à l’endroit exact où vous l’avez créé. Pour un programme donné, ouvrez Document Editor et placez le curseur à l’endroit où vous voulez que le lien apparaisse. Utilisez ensuite le Link Wizard afin de créer le lien dans la fenêtre Application Map. Volume 18 Numéro 2 6 Comment tirer profit du versionnage dans Speedware L’expert Michael Rusk emploie le versionnage pour les mises à jour et le débogage On demande très souvent aux programmeurs de supprimer des fonctionnalités qui ne sont plus utilisées. La mesure de protection consiste à conserver les segments de code de ces applications et à les traiter en tant que commentaires. Par contre, au fil du temps, le programme devient si chargé de données qu’il est difficile de distinguer le code des commentaires. Il est alors avisé de créer une nouvelle version, exempte de code désuet et facile à lire. Plusieurs trouvent qu’il est compliqué de créer et gérer plusieurs versions d’un programme, mais les avantages sont considérables : • Il est facile de revenir à la version précédente du programme sans avoir à trouver et à supprimer tout le code non nécessaire. • Vous pouvez supprimer le code désuet du programme sans perdre le code nécessaire. Je suis un grand partisan du versionnage, et ce procédé est facile à mettre en application avec Speedware. J’ai eu la chance de rencontrer Steve Reeve de Londres, qui est responsable de l’architecture de Speedware Designer. Sa connaissance de Designer et de ses outils et fonctionnalités dépasse largement ce que le client moyen en retire. Son savoir est exposé ici en partie pour vous permettre de tirer profit des avantages de Designer en matière de versionnage. de programme. Maintenant, dites-moi : est-ce possible de le faire sans afficher le code si l’introduction et le journal des changements sont intégrés au code réel? Ça me semble peu probable, à moins que vous prévoyiez passer de longues heures dans un centre de copies avec des ciseaux, de la colle et un photocopieur! À la fin de cet article, je vous montrerai le script Sysdoc qui vous permettra d’avoir ce résultat, pourvu que vous soyez ouverts à mes conseils et à la vision de Steve Reeve pour Designer. Saisies d’écrans dans cet article Les saisies d’écrans dans cet article proviennent du système HP 9000 de Virginia International Terminals. Ce sont des programmes de simulation conçus pour illustrer mes idées. Implantation du versionnage dans Speedware Commencez à partir de l’écran Application Definition et assurezvous que vous ne créez pas des applications avec *All inscrit dans la liste de programmes, tel qu’affiché ci-dessous. Importance de la documentation En plus d’être un adepte du versionnage, je crois aussi énormément en l’importance d’avoir une bonne documentation, si bien que certains m’ont donné le surnom de Monsieur Documentation. Comme vous verrez dans cet article, un bon contrôle des versions dépend beaucoup de la qualité de la documentation. À ce chapitre, ma méthode est simple : j’utilise des modèles pour avoir une longueur d’avance lors de la création d’un programme. Je mettrai donc l’accent sur la documentation, mais gardez en tête que c’est toujours dans l’optique d’avoir un bon contrôle des versions. Un dernier point : beaucoup des programmeurs de Speedware insèrent les introductions de programme et le journal des changements à un endroit quelconque dans le haut du code. Ils le font par habitude, mais il existe une meilleure façon de faire. Supposons, par exemple, que la haute direction vous demande de produire un rapport pour un audit éventuel. Le rapport doit contenir l’identification du programme, son nom, l’introduction, le journal des changements ainsi que le format, mais aucun code Volume 18 Numéro 2 N’utilisez pas *All. Vous devez indiquer vos programmes dans Application Designer si vous voulez utiliser plusieurs versions. Assurez-vous également que vous ne placez pas les programmes d’une application dans la liste avec l’option Cascade activée, tel qu’illustré ci-dessous : N’utilisez pas Cascade. Rappelez-vous que tous les programmes doivent être affichés 7 Comment tirer profit du versionnage dans Speedware (suite) Comment déterminer qu’une nouvelle version est requise Pourquoi ces restrictions? Je vous répondrai en vous posant une question : vous êtes-vous déjà demandé à quoi servait la troisième colonne nommée Substitute dans l’écran Application Definition? Elle est destinée spécifiquement au versionnage. Toutefois, afin d’en tirer profit, chaque programme de votre application doit figurer dans la liste. Ainsi, vous savez exactement quels programmes se trouvent dans l’application donnée et surtout, n’importe quel programme de l’application peut être substitué par un nouveau programme avec un nom différent. Nouvelle version requise? Comment décider qu’il est temps de créer une nouvelle version? Il n’y a pas de réponse facile, car il faut tenir compte de plusieurs facteurs. Voici une liste de questions que je me pose afin de déterminer s’il serait avantageux de créer une nouvelle version plutôt que de modifier le programme existant : 1. Est-ce que le programme doit subir beaucoup de changements? 2. Les changements sont-ils majeurs? Petite parenthèse au sujet des dépôts Tandis qu’il est question de l’identification des programmes contenus dans une application, j’aimerais m’adresser aux programmeurs qui associent encore un seul dépôt de données (design) à chaque application Speedware. Jusqu’à la version 5 3. La structure du programme est-elle mauvaise ou difficile à suivre? 4. Le programme est-il chargé de code désuet sous forme de commentaires? 5. Le programme comporte-t-il un bogue? Dois-je ajouter le traçage pour effectuer un débogage? inclusivement, Speedware possédait une architecture dictant une application par design. Cette restriction a été éliminée à la version 6, mais beaucoup de développeurs continuent toujours de s’y soumettre. Je crois que les programmeurs ont souvent peur de perdre leurs programmes dans une vaste mer. Isoler leurs programmes en utilisant une application par design semble être la solution logique. Il s’agit en effet d’une solution, mais c’est sans doute la pire. Pourquoi? Parce qu’ils gèrent alors plusieurs dépôts avec de nombreux profils et catalogues, ce qui se traduit par la duplication des définitions de bases de données et de fichiers et souvent par la duplication de programmes. La duplication est déconseillée, car elle engendre plus de travail et plus de problèmes. Steve Reeve a créé une entité nommée Category pour chaque objet dans le dépôt de Speedware. Une fois que vous comprenez comment utiliser efficacement la fonction Category dans Designer, vous verrez comment regrouper logiquement des programmes et objets liés à une fonction spécifique. C’est comme si vous aviez un design logique à l’intérieur de votre design physique. Volume 18 Numéro 2 Bien entendu, si vous n’avez qu’un changement mineur à apporter, le versionnage n’est pas nécessaire, même si 3 ou plus des énoncés ci-dessus s’avèrent exacts. Par contre, si le temps vous le permet, vous pourriez tout de même créer une nouvelle version simplement pour faciliter la lecture du code. Lorsque le point 5 se révèle vrai, vous devriez toujours créer une nouvelle version. Vous ne voudriez pas un programme de production chargé d’instructions CREATE vers un fichier plat pour suivre les événements et ensuite être obligé de les retracer après avoir résolu le problème. Vous voulez simplement avoir une version temporaire de débogage qui peut être utilisée à des fins précises pour ensuite être remplacée par la version précédente. Les rouages du versionnage : un exemple Ma méthode de versionnage est-elle la plus efficace qui soit? Je n’en suis pas certain, mais mon expérience au sein de Speedware et les consultations que j’ai effectuées auprès de nombreux clients importants m’ont permis de perfectionner ma méthode. J’ai toujours constaté qu’elle facilitait le travail. L’exemple que j’utiliserai dans le reste de cet article est très simple et servira à démontrer les concepts fondamentaux du versionnage dans Speedware. L’accent sera mis sur un écran de client simple avec une version secondaire du programme ainsi qu’un rapport de client et sa version secondaire. 8 Comment tirer profit du versionnage dans Speedware (suite) Utilisation de Sysdoc pour faire le suivi de plusieurs versions Première étape : la documentation La documentation est essentielle au versionnage. Au bas de cette page, le curseur du Program Definition pour l’écran Customer est positionné sur le champ Sys Doc. La plupart des programmeurs ne nomment pas leur documentation de système, mais nous avons utilisé le nom CUSTSCRNSYSDOC. Lorsque vous utilisez un nom, vous créez un objet de document indépendant qui peut être référencé n’importe où dans Designer. Ce document vous permet de faire le suivi de vos versions. En fait, une fois que le document est lié au programme de base, il sera préservé à chaque fois que vous copierez le programme afin d’en faire une nouvelle version. Même si vous avez dix versions différentes du programme, elles se partageront toutes le document, lequel affichera les modifications historiques pour chaque version. De plus, peu importe la version de programme que vous ouvrez, la documentation et l’historique que vous voyez seront toujours les mêmes, car le document est lié et partagé par toutes les versions. Pas mal comme concept, n’est-ce pas? L’écran en bas à droite affiche une partie de l’objet CUSTSCRNSYSDOC. Il contient l’introduction de base du programme, son nom, sa date de création ainsi que l’information sur les versions (nom de la version de base et des versions subséquentes). Cette information est importante, car le nom de la version de base correspond au nom de programme utilisé dans l’application d’origine, et Designer change ce nom pour le nouveau nom que vous spécifiez. Voilà pourquoi le contrôle des versions est si facile dans Speedware : vous n’avez pas à faire un suivi de toutes les références (menus, touches de fonction, logique, etc.) et changer tout le code CUSTOMERS pour CUSTOMERS-V1. Qui plus est, vous pouvez créer le document à partir d’un modèle. Ainsi non seulement le document est-il cohérent et utile, mais aussi facile à créer : il suffit de remplir les champs! Deuxième étape : implantation de nouvelles versions Après avoir créé de nouvelles versions de vos programmes, implantez-les dans votre application Speedware. À la page suivante, vous verrez de nouveau l’écran Application Definition, qui différera un peu cette fois-ci. L’écran présente désormais tous les programmes de l’application, ce qui signifie que vous pouvez ajouter des versions à partir du champ Substitute. Dans le document Sysdoc, saisissez toutes les données sur les versions pour le programme afin de savoir quelle est la version de base et pourquoi les autres versions ont été créées. Dans PD, utilisez le champ Sys Doc afin de donner un nom descriptif au document. Ce document sera lié à toutes les versions du programme et servira à consigner les versions et les modifications. Volume 18 Numéro 2 9 Comment tirer profit du versionnage dans Speedware (suite) Implantation de nouvelles versions de vos programmes Ci-dessous, vous pouvez voir que les versions plus récentes ont été remplacées par les programmes originaux. Lorsque Designer génère l’application, il code SCREEN-CUSTOMERS et REPORTCUSTREPORT dans le fichier spec mais effectue une correspondance avec les nouveaux noms à travers tout le code. Dans la liste des codes du fichier spec, Designer insère des commentaires pour indiquer les nouveaux noms de sections. Aussi souvenez-vous de toujours copier la dernière version d’un programme lorsque vous créez une nouvelle version et de mettre à jour la documentation en conséquence. User Doc, un autre outil utile Vous devriez aussi ajouter de la documentation sur les versions dans le User Doc de l’application. Vous pouvez toujours voir les versions dans la liste de l’Application Designer, mais si l’application est volumineuse, il vous faudra peut-être naviguer à travers de nombreux écrans afin de trouver ce dont vous avez besoin. L’image ci-dessous présente le contenu de la portion User Doc de l’application VERAPP. Cette documentation présente simplement les programmes originaux ainsi que les versions actuelles qui s’y rattachent. Gardez à l’esprit que le rapport Sysdoc standard d’une application n’affiche pas les substitutions. Toutefois, en plaçant les données dans les champs User Doc ou Sys Doc, elles figureront dans le rapport AREP. Cette méthode de versionnage repose évidemment sur une documentation de qualité afin de faire le suivi du contenu d’une application. Avec les outils de Designer et un peu de pratique, vous y parviendrez facilement. L’avantage principal de cette stratégie est la possibilité de revenir à n’importe quelle version précédente en saisissant simplement le nom de programme de la version précédente dans le champ Substitute, puis en générant de nouveau l’application. Si vous n’avez qu’une seule version précédente, supprimez simplement la valeur du champ Substitute et vous reviendrez au programme d’origine. Il se peut que vous souhaitiez mettre à jour votre dépôt lorsque votre version originale devient trop désuète. Supprimez alors l’original, copiez la version la plus récente vers le nom d’origine et supprimez la substitution. Vous aurez ainsi un nouveau programme de base comprenant toutes les révisions. Les versions les plus récentes des programmes sont indiquées dans le champ Substitute SCREEN-CUSTOMERS:LISTING; (* Substituted by CUSTOMERS-V1 *) (* Release Label (3) *) SET TITLE ("Customer Master Screen"); SET WINDOW(ROW=2,COL=0,HEIGHT=19,WIDTH=80,LINE=SINGLE,FORE=BLACK, BACK=MAGENTA,COORDROW=UP,COORDCOL=LEFT); ... Le fichier spec indique où les substitutions ont eu lieu REPORT-CUSTREPORT:LISTING; (* Substituted by CUSTREPORT-V1 *) (* Release Label (1) *) SET TITLE ("Customer Report"); SET WINDOW; DCLPRINTER PRINTER ASSIGN(DEVICE=WINDOW,WIDTH=132,HEIGHT=60); ... User Doc spécifie les versions en cours d’utilisation Volume 18 Numéro 2 10 Comment tirer profit du versionnage dans Speedware (suite) Pour en revenir au fameux script Sysdoc... Script Sysdoc En résumé J’ai presque oublié! Au début de cet article, je vous ai promis le script d’un rapport indiquant l’identification du programme, sa description, son format ainsi que la documentation Sysdoc. Afin d’exécuter ce script, vous devez posséder une licence d’utilisation des outils Sysdoc dans Speedware. Ces outils vous aident à extraire des informations utiles du dépôt avec des scripts simples. Il m’est déjà arrivé d’utiliser Sysdoc et User Doc pour produire le manuel d’utilisateur complet d’une application que j’ai conçue pour American Airlines. Le script est affiché au bas de cette page. Cet article servait d’introduction aux capacités de Speedware en matière de versionnage. Vous avez des lignes directrices à suivre, telles que l’identification de tous les objets d’une application et la création d’une documentation adéquate pour assurer le suivi des versions, mais autrement les décisions vous appartiennent. Dans ce cas, le script présentera chaque programme dans le dépôt dont la catégorie est « AR », le type de programme est un « Report », et il indiquera la référence du programme, son nom, la date et l’heure de la modification, la dernière personne qui a modifié le programme, le format de celui-ci et finalement la documentation du système. Je suis d’avis que lorsque vous commencerez à comprendre les concepts et les avantages du versionnage, vous y ferez appel pour faciliter votre travail de développement. Même si vous l’utilisez uniquement pour le débogage (où vous ajoutez du code pour les programmes de traçage), le versionnage en vaut la peine. Faites-en l’essai : vous ne voudrez plus vous en passer. Michael Rusk Virginia International Terminals, Inc. #HEADING 0,2 Virginia International Terminals Visual Programs Listing ============================================================= #ENDHEADING #FOOTING 2,0 ============================================================= !TIMESTAMP[1:12] #ENDFOOTING #FOR PROGRAM WHERE '!CATEGORY' = 'AR' AND \ '!TYPE' = 'REPORT' ORDER BY REF SELECTED Program Reference: !REF____________ Program Name: !NAME Modification Info: !MODTIME___________ !MODIFIER Program Format # LISTFORMAT # LISTSYSDOC #ENDFOR Volume 18 Numéro 2 11 Nouvelle option -c de la ligne de commande d’AMXW Vous pouvez désormais exécuter des instructions nlsh sans être dans nlsh Avez-vous déjà souhaité exécuter des instructions nlsh sans être dans nlsh? Désormais, dans AMXW V8.05.12, l’option -c de la ligne de commande vous le permet. L’avantage principal de cette fonctionnalité est la possibilité d’exécuter des instructions nlsh à l’intérieur d’un script UNIX. Grâce à l’option -c de la ligne de commande, vous pouvez communiquer de l’information entre l’environnement UNIX et l’environnement nlsh. La syntaxe est l’une des suivantes : nlsh -c instruction_amxw nlsh INFO="-c instruction_amxw" Le saviez-vous? AMXW V8.05.12 comprend les mises à jour suivantes : Où instruction_amxw est : • N’importe quelle instruction AMXW (BUILD, LISTF, etc.) • !CMD (où CMD est une variable d’environnement déjà définie) • • Option -c de la ligne de • Des programmes AMXW commande • Des instructions UNIX Soutien pour l’instruction LIMIT avec HP-UX et AIX • Amélioration de la gestion des fichiers spoule • • Des fichiers de commandes La première forme de la syntaxe est normalement utilisée à l’extérieur de nlsh. Il est possible de l’utiliser dans nlsh ou dans un fichier job, mais vous recevrez un message d’erreur si l’emplacement est défini dans la variable HPPATH ou si votre répertoire courant est PUB.NEWLAB. Le message d’erreur est le suivant : Changement des permissions • • Des commandes définies par l’utilisateur Amélioration de This is not a valid keyword for this command. (CIERR 10007) Si vous devez utiliser nlsh -c à l’intérieur d’un environnement AMXW, vous pouvez éviter cette erreur de deux façons : l’instruction COPY • Utilisez la deuxième syntaxe (avec INFO=), ou • et bien d’autres... • Supprimez PUB.NEWLAB de HPPATH et ne travaillez pas à partir de PUB.NEWLAB. • Pour plus d’informations Voici un exemple de base d’un script UNIX nommé TESTSCRPT qui est exécuté à partir de nlsh et qui définit une variable globale dans votre environnement nlsh. Le SHOWVAR dans nlsh démontre que la variable existe maintenant dans votre environnement nlsh. sur les nouvelles fonctions, voir les AMXW Release Notes 8.05.12 sur le SWS de Speedware. ::cat TESTSCRPT echo mon script unix nlsh -c "SETVAR ABC '123'" nlsh -c "SHOWVAR ABC" ::TESTSCRPT mon script unix ABC = 123 ::SHOWVAR ABC ABC = 123 Volume 18 Numéro 2 12 Nouvelle option -c de la ligne de commande d’AMXW Utilisation des barres verticales pour combiner les instructions nlsh et UNIX Dans nlsh, les barres verticales UNIX vous permettent aussi de combiner les instructions nlsh avec les utilitaires UNIX. L’exemple suivant montre comment utiliser la barre verticale UNIX et l’instruction grep pour retrouver uniquement les fichiers binaires d’une instruction LISTF @,2. ::LISTF NEW@,2 À l’aide de la barre verticale UNIX, l’instruction grep reçoit les résultats de l’instruction LISTF @,2 et recherche des fichiers binaires fixes (FB). ACCOUNT= NEWLAB FILENAME CODE NEWFILE NEWFILE2 GROUP= DEMO ------------LOGICAL RECORD----------SIZE TYP EOF LIMIT R/B 128W 72B FB FA ::nlsh -c "LISTF @,2" | grep " FB " NEWFILE 128W FB ----SPACE---SECTORS #X MX 8 4 1023 1023 1 1 8 2 1 1 * * 0 1023 1 0 1 * Cet exemple affiche tous les fichiers ASCII à longueur fixe ne contenant aucun enregistrement. Semblable à l’exemple ci-haut nlsh -c LISTF @,2 | grep " FA " | awk '{ if ($4 == 0) \ print $1" " $2 " " $4 }' L’exemple suivant montre comment utiliser les barres verticales UNIX pour interrompre toutes les tâches planifiées ou en cours : Cet exemple construit une instruction que nlsh exécute finalement avec l’option -c. nlsh -c | xargs nlsh -c | xargs SHOWJOB | grep "#J" | grep "SCHED" | awk '{ print "ABORTJOB " $1 }' \ -n2 nlsh -c SHOWJOB | grep "#J" | grep "EXEC" | awk '{ print "ABORTJOB " $1 }' \ -n2 nlsh -c L’option -c gère aussi les arguments STDIN et STDLIST afin de rediriger respectivement les données d’entrée et de sortie en utilisant des mots-clés MPE. Veuillez noter que l’argument STDLIST doit pointer vers un fichier existant. Par exemple : Ex. utilisant la première syntaxe nlsh STDLIST=OUT -c LISTF NEWFILE,2 Même exemple avec la chaîne INFO. Notez que seule l’instruction est entre guillemets dans la chaîne INFO nlsh INFO="-c LISTF NEWFILE,2" STDLIST=OUT nlsh STDIN=input_file STDIN implicite nlsh input_file Nlsh peut aussi être utilisé en tant que shell implicite dans un script UNIX. Lors de l’exécution, UNIX démarrera nlsh et tentera d’exécuter toutes les lignes qui suivent. Le fichier script peut donc contenir toute instruction normalement disponible à l’invite nlsh. Par exemple : La première ligne, débutant par #!, identifie nlsh comme étant l’interpréteur d’instructions subséquentes dans le fichier. #! ../../NEWLAB/PUB/nlsh BUILD NEWFILE touch unixFile rm unixFile LISTF NEWFILE,2 Tony Aversa Consultant au soutien technique Volume 18 Numéro 2 13 ">

Link público atualizado
O link público para o seu chat foi atualizado.