> Tech > Arguments pour obtenir un renvoi propre

Arguments pour obtenir un renvoi propre

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

La combinaison du nom de l’API, de ses paramètres, et du type de renvoi devrait indiquer clairement comment utiliser cette API. L’API devrait définir explicitement si un paramètre est entré, sorti ou entrée et sorti. On fait cela dans l’instruction SQL Create Procedure avec les mots-clés In/Out/InOut. En RPG, on

lefait en n’utilisant pas le champ de résultat de paramètre n’importe où dans le programme, puis en utilisant les instructions de paramètre Factor 1 et Factor 2. Comme paramètres d’entrée, mettez une variable dans Factor 1 et, à l’entrée, la valeur du champ résultat sera placée dans la variable Factor 1. Pour les paramètres de sortie, mettez une variable dans Factor 2 et, en sortie, sa valeur sera placée dans le champ résultat. Pour les paramètres d’entrée et de sortie, comme ils obscurcissent l’objet de l’API, évitez d’utiliser des paramètres qui sont à la fois entrée et sortie. Par exemple :

C *ENTRY PLIST
C VARIN1 PARM PARM1
C VARIN2 PARM PARM2
C PARM VAROUT PARM3

Par le passé, les appels de programmes qui avaient des paramètres non caractères posaient des problèmes.
C’est pourquoi beaucoup de développeurs à l’ancienne n’utilisent que des paramètres de type caractère.
Mais, si un paramètre sert à passer un nombre, il faut le définir comme zoné, packé ou binaire (selon le cas). Rappelons que le type de données aide à définir la manière d’utiliser l’API. Pour qu’une API reste simple, les paramètres doivent être atomiques.
Quand ils sont composites (une structure qui a un ou plusieurs éléments atomiques et peut même être une matrice), vous forcez l’utilisateur de l’API à trouver ou à construire la structure de ce paramètre composite.
Il vous semble peut-être qu’un paramètre composite est nécessaire.
Peut-être, par exemple, vous ne pouvez pas renvoyer un jeu de résultats SQL, donc il vous faut un paramètre de sortie composite. Dans ce cas, utilisez une définition de structure définie en externe. Et le moyen le plus simple pour cela consiste à créer une spécification de description de données pour un fichier physique, puis à créer le fichier avec l’option members none. Une structure de données RPG peut ensuite spécifier le fichier physique comme sa définition de fichier externe. Les développeurs Java pourront ensuite utiliser les classes AS/400File RecordDescription et RecordFormat de l’iSeries Java Tools Box, pour effectuer les conversions d’EBCDIC en objet et pour lever l’obligation de définir en interne la structure de ce paramètre composite.

A noter que cette stratégie est excellente pour décrire le contenu de files d’attente de données.

J’ai entendu un autre argument qui plaide contre l’utilisation des jeux de résultats : le programme a besoin de renvoyer plus d’une chose. Ma première réponse à cela est qu’il vous faut un programme pour chaque chose que vous envisagez d’obtenir. La seconde est que le SQL imbriqué vous permet de renvoyer plus d’un jeu de résultats.

Téléchargez cette ressource

Guide inmac wstore pour l’équipement IT de l’entreprise

Guide inmac wstore pour l’équipement IT de l’entreprise

Découvrez toutes nos actualités à travers des interviews, avis, conseils d'experts, témoignages clients, ainsi que les dernières tendances et solutions IT autour de nos 4 univers produits : Poste de travail, Affichage et Collaboration, Impression et Infrastructure.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010