EGL - Notes sur l'édition


1.0 Spécifications et logiciels pris en charge
2.0 Restrictions
   2.1 Utilitaire de conversion d'I4GL en EGL : les valeurs 'null' ne sont pas définies pour les variables liées lors de la lecture à partir d'un formulaire de la console
   2.2 Utilitaire de conversion d'I4GL en EGL : différence d'exécution entre des instructions de boucle 'FOR' I4GL et EGL
   2.3 Utilitaire de conversion d'I4GL en EGL : les enregistrements d'écran référencés par la notation .* ne sont pas correctement convertis
   2.4 Utilitaire de conversion d'I4GL en EGL : les conditions IF I4GL (IF ! xxx ou IF xxx) et les expressions booléennes ne sont pas totalement prises en charge dans EGL
   2.5 Formulaires TUI : utilisation de la propriété "validValuesMsgKey" avec des champs non numériques
   2.6 Prise en charge de services Web : les annotations XSD dans les éléments de données, les enregistrements ou les éléments d'enregistrements s'appliquent uniquement aux interfaces
   2.7 Prise en charge de services Web : types de fichier WSDL pris en charge
   2.8 Prise en charge de services Web : emplacement de la bibliothèque de liaisons de service créée par l'assistant
   2.9 Débogueur EGL
3.0 Incidents connus
   3.1 Prise en charge de services Web : erreurs lors de l'utilisation de tableaux multidimensionnels comme paramètres pour des projets J2EE 1.3
   3.2 Prise en charge de services Web : erreurs lors de l'utilisation d'enregistrements fixes avec des sous-structures comme paramètres pour des projets J2EE 1.3
   3.3 Prise en charge de services Web : erreurs lors de l'utilisation de types de données d'intervalle ou d'heure comme paramètres pour des projets J2EE 1.3
   3.4 Prise en charge de services Web : erreurs lors de la génération d'éléments de données EGL en double à partir de plusieurs fichiers WSDL
   3.5 Variables hôtes pour l'accès à la base de données Oracle
   3.6 Compilation de fichiers Jasper (.jrxml) dans EG
   3.7 Questions de migration

1.0 Spécifications et logiciels pris en charge

L'éditeur d'options de compilation indique que WebSphere Application Server 5.1 est un type de serveur pris en charge. Toutefois, seules les versions 5.1.1. ou supérieures de WebSphere Application Server sont prises en charge.

2.0 Restrictions

2.1 Utilitaire de conversion d'I4GL en EGL : les valeurs 'null' ne sont pas définies pour les variables liées lors de la lecture à partir d'un formulaire de la console

Description : lors de l'exécution d'une instruction openUI d'un formulaire de la console, les valeurs renvoyées dans les variables liées ne contiennent jamais de valeur null. Dans I4GL, si aucune valeur n'est entrée dans un champ du formulaire, une valeur null est renvoyée.

Solution : si votre application recherche spécifiquement une valeur null pendant ou après une instruction openUI dans un formulaire, la logique doit être modifiée afin de rechercher une valeur de chaîne vide au lieu d'une valeur null.

2.2 Utilitaire de conversion d'I4GL en EGL : différence d'exécution entre des instructions de boucle 'FOR' I4GL et EGL

Description : dans I4GL, l'instruction ?for I = 0 to 1 by -1 ? fait que le bloc de code de boucle soit exécuté zéro (0) fois. Dans EGL, le même bloc de code entraîne une boucle sans fin qui finit par provoquer une exception hors limites d'entier ou de dépassement de pile.

Solution : révisez l'instruction for d'EGL pour que le bloc de code de boucle soit exécuté le nombre de fois souhaité. Sinon, vous pouvez convertir la boucle for en instruction while exécutant le bloc de code le nombre de fois souhaité.

2.3 Utilitaire de conversion d'I4GL en EGL : les enregistrements d'écran référencés par la notation .* ne sont pas correctement convertis

Description : parfois, l'utilitaire de conversion étend les enregistrements d'écran pour toutes les colonnes dans le tableau, même si seul un sous-ensemble de colonnes est utilisé pour définir ces enregistrements.

Solution : supprimez les noms de colonnes inhabituels dans les instructions EGL converties.

2.4 Utilitaire de conversion d'I4GL en EGL : les conditions IF I4GL (IF ! xxx ou IF xxx) et les expressions booléennes ne sont pas totalement prises en charge dans EGL

Description : les conditions IF dans "IF ! xxx" ou "IF xxx" entraînent des erreurs de validation. Les expressions booléennes ne sont pas prises en charge dans EGL et entraînent des erreurs de validation.

Solution : l'utilitaire de conversion convertit automatiquement ces fonctions IF selon le contexte dans lequel elles sont utilisées. Cette restriction est sans incidence sur la conversion de l'application I4GL. Elle est mentionnée ici afin que les utilisateurs I4GL connaissent le niveau de prise en charge des conditions IF lors de l'écriture de nouvelles applications dans EGL.

Pour les expressions booléennes, convertissez le résultat booléen d'une condition en une valeur numérique 0 ou 1.

2.5 Formulaires TUI : utilisation de la propriété "validValuesMsgKey" avec des champs non numériques

Lorsque vous utilisez l'éditeur de formulaire EGL ou modifiez manuellement la source EGL pour une partie du formulaire, le message suivant de validation est émis si la propriété "validValuesMsgKey" est employée avec un champ dont le type primitif n'est pas numérique (par exemple, char ou db char) :

IWN.VAL.5381.e 76/0 Propriété : validValuesMsgKey. La valeur de cette propriété pour la zone ... dans le formulaire ... est incorrecte. La propriété est une propriété d'élément numérique.

Pour utiliser cette propriété avec un type primitif non numérique, la solution suivante est proposée :

  1. Ouvrez le fichier contenant le formulaire avec l'éditeur EGL. Cliquez avec le bouton droit sur le fichier et sélectionnez Ouvrir avec > Editeur EGL dans la vue Explorateur de projets.
  2. Au lieu d'indiquer un type primitif dans la déclaration du champ pour lequel validValuesMsgKey est définie, entrez une partie d'élément de données. Celle-ci doit désigner le même type primitif que le champ.

Par exemple, si le champ d'origine était défini comme suit :

ACTION char(1) {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //cette ligne doit comporter l'erreur IWN.VAL.5381 Changez la définition de la zone en :

ACTION charOneItem {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //cette ligne ne doit pas comporter d'erreur.

Dans le même fichier hors de formGroup, entrez ce qui suit :
DataItem charOneItem char(1) { validValuesMsgKey="1000" } end

2.6 Prise en charge de services Web : les annotations XSD dans les éléments de données, les enregistrements ou les éléments d'enregistrements s'appliquent uniquement aux interfaces

Les annotations XSD appliquées aux définitions d'éléments de données, aux définitions d'enregistrements et aux déclarations d'éléments d'enregistrements, reflétant les aspects des types de données du schéma XML qui figurent dans le fichier WSDL du service Web, n'ont de sens que si elles sont utilisées sur des paramètres de fonctions d'interface et renvoient des valeurs dérivées d'un fichier WSDL.

Exemple :

DataItem weekend string {@xsd {enumeration=["Saturday", "Sunday"] }} end // reflète la restriction WSDL sur des valeurs de week-end

Interface calander

public function weekendPlanner (weekendDay weekend in, . . .); // seules les valeurs d'arguments Saturday et Sunday peuvent être envoyées à cette fonction du service Web

end

2.7 Prise en charge de services Web : types de fichier WSDL pris en charge

L'assistant Créer des interfaces EGL prend uniquement en charge les fichiers WSDL RPC/Encoded, RPC/Literal et Document/Literal (Wrapped). Les fichiers WSDL de type Document/Literal (Unwrapped) ne sont pas pris en charge.

2.8 Prise en charge de services Web : emplacement de la bibliothèque de liaisons de service créée par l'assistant

L'assistant Créer une bibliothèque de liaisons de service à partir d'un service EGL ne copie aucun fichier WSDL dans un projet distinct. Si la bibliothèque de liaisons de service est créée dans un projet autre que celui où le service est généré, l'utilisateur doit placer manuellement une copie de tous les fichiers WSDL créés et auxquels cette bibliothèque fait référence à l'emplacement indiqué par la liaison Web.

2.9 Débogueur EGL

Vous ne pouvez pas utiliser le débogueur EGL pour des programmes contenant des rapports. Cette fonction sera prise en charge dans une mise à jour ultérieure.

3.0 Incidents connus

3.1 Prise en charge de services Web : erreurs lors de l'utilisation de tableaux multidimensionnels comme paramètres pour des projets J2EE 1.3

Les services générés en tant que services Web ou les bibliothèques de liaisons de service avec des liaisons Web génèrent du code Java avec des erreurs de compilation si des tableaux multidimensionnels sont employés comme paramètres ou définis dans des enregistrements employés comme paramètres dans des fonctions de service ou d'interface, en cas de génération dans un projet Web avec un niveau J2EE 1.3.

Service myService

function f1(param string[][][] in) // entraîne des erreurs de compilation en cas de génération comme service Web dans un projet Web avec J2EE 1.3

. . .

end

end

Service myService

function f1(param string[] in) // génération réussie dans un projet Web avec J2EE 1.3

. . .

end

end

3.2 Prise en charge de services Web : erreurs lors de l'utilisation d'enregistrements fixes avec des sous-structures comme paramètres pour des projets J2EE 1.3

Les services générés en tant que services Web ou les bibliothèques de liaisons de service avec des liaisons Web génèrent du code Java avec des erreurs de compilation si des enregistrements fixes contenant des éléments de données sous-structurés ou des éléments de données avec des occurrences > 1 sont employés comme paramètres ou définis dans des enregistrements employés comme paramètres dans des fonctions de service ou d'interface, en cas de génération dans un projet Web avec un niveau J2EE 1.3.

Exemple :

Record mySubstructuredRecord 10 item1 char(10); 20 item 2 char(10); end

Service myService public function f1(param mySubstructuredRecord in) // entraîne des erreurs de compilation en cas de génération comme service Web dans un projet Web avec J2EE 1.3 . . . end end

Record myFlatRecord 10 item1 char(10); 10 item2 char(10); end

Service myService public function f1(param myFlatRecord in) // génération réussie dans un projet Web avec J2EE 1.3 . . . end end

3.3 Prise en charge de services Web : erreurs lors de l'utilisation de types de données d'intervalle ou d'heure comme paramètres pour des projets J2EE 1.3

Les services générés en tant que services Web ou les bibliothèques de liaisons de service, avec des liaisons Web et des type de données d'intervalle ou d'heure employés comme paramètres ou définis dans des enregistrements employés comme paramètres dans des fonctions de service ou d'interface en cas de génération dans un projet Web avec un niveau J2EE 1.3, lancent une exception Java au cours de l'exécution.

3.4 Prise en charge de services Web : erreurs lors de la génération d'éléments de données EGL en double à partir de plusieurs fichiers WSDL

Si vous utilisez l'assistant Créer des interfaces EGL avec deux fichiers WSDL ou plus contenant les mêmes types de définition de schéma XML dans le même projet EGL, vous obtenez des définitions de données EGL en double en raison d'erreurs de validation EGL.

3.5 Variables hôtes pour l'accès à la base de données Oracle

Si le programme EGL accède à une base de données Oracle et utilise une instruction OPEN pour ouvrir un ensemble de résultats, la clause SELECT contenue dans cette instruction ne peut pas utiliser des noms de variable hôte. Si les noms de variables hôtes sont indiqués, aucune valeur n'est définie dans l'élément correspondant de la clause use de l'instruction OPEN.

3.6 Compilation de fichiers Jasper (.jrxml) dans EG

EGL comporte un générateur qui compile les fichiers JasperReport à chaque fois que ces derniers sont sauvegardés. Si les applications EGL comprennent des gestionnaires de rapport, vérifiez que le kit Java SDK 1.3.1 (ou version suivante) est installé sur la machine de développement et que le répertoire bin de SDK est répertorié comme faisant partie de la variable d'environnement PATH du système (à savoir C:\jdk1.3.1_14\bin). Si le kit Java SDK n'est pas installé, un message d'erreur du type suivant s'affichera lors de la génération d'un fichier .jrxml : Error compiling report java source file.

3.7 Questions de migration

Ce pack de correctifs inclut plusieurs changements par rapport à la syntaxe EGL antérieure. Si vous avez créé des parties EGL avec la version 5.1.2 ou 6.0 de ce produit, des erreurs risquent de se produire lors de la validation de celles-ci une fois le présent pack de correctifs installé. Un outil de migration simple est fourni pour mettre à jour la syntaxe dans les fichiers source. Pour plus d'informations sur l'outil de migration d'EGL Version 6.0, voir l'aide correspondante.

Retour au fichier Readme principal