Visualiser des variables de longueur supérieure à 256
Merci à Valérie Couture, qui après s’être heurtée à un problème
avec ISDB, m’a communiqué la solution ci-dessous, trouvée dans un forum :
Comment, dans ISDB, visualiser une variable quand sa longueur dépasse 256 caractères
? Avec F11, il n’est pas possible de modifier le paramétrage alors que cela est possible
avec la commande DSPPGMVAR du débugueur STRDBG. Avec la commande WATCH, il ne semble pas
possible de mettre une longueur en paramètre.
La solution réside dans la commande DSP dont la syntaxe est la suivante :
DSP (debut,lng)<nom de zone>
Attention, ne pas mettre d’espace entre ) et nom de zone. Exemple :
DSP (400,15)Zone-lng
Autres astuces
Merci à Laurent Masson pour les astuces décrites ci-dessous :
1. Au niveau des droits. Il est possible d’éxécuter des commandes sous un autre
profil (sans avoir son mot de passe). Pour cela, il faut une jobd (description de travail)
avec ce profil dans le paramètre utilisateur. Ainsi, il est possible de lancer la
commande :
SBMJOB CMD(commande à lancer) JOBD(jobdavecuser) USER(*JOBD)
Des jobd avec utilisateur sont utilisées pour le paramétrage des travaux à démarrage
automatique (type de travail ASJ), lors des démarrages de sous-systèmes.
2. Au niveau debug. Pour mettre un debug sur un programme d’un autre travail (batch ou
interactif). Il faut utiliser la commande STRSRVJOB JOB(n°job/utilisateur/job)
puis quand on lance une commande STRDBG ou ADDTRC, elles s’appliquent sur le travail
indiqué dans le STRSRVJOB.
Avec ce principe, et en utilisant la commande TRCJOB, il est possible de visualiser les
objets de QTEMP d’un autre travail :
JOB1
JOB2
WRKQTEMP JOB2
!_______________________________
!
WRKQTEMP2 / WRKQTEMP4
!
!
WRKQTEMP3 / WRKQTEMP5
Le programme :
WRKQTEMP
WRKQTEMP4
WRKQTEMP5 sont des CL
WRKQTEMP2
WRKQTEMP3 sont des RPG
il y a aussi une commande et un écran du nom WRKQTEMP.
J’ai fait des tests uniquement par rapport aux interactifs, je n’ai pas essayé avec des
batchs. Le principe consiste à démarrer la maintenance du travail éloigné (WRKQTEMP),
et à faire une trace avec l’appel d’un programme (WRKQTEMP2). Dès qu’une tâche
quelconque est lancée sur le travail (tâche système ou programme applicatif), celle-ci
est interrompue et transfère l’appel à notre programme de la trace (entre autre
WRKQTEMP2 un RPG). Celui ci va donc nous indiquer la liste des objets de QTEMP. Le
programme WRKQTEMP3 permet de visualiser la liste des objets. Pour permettre de
communiquer entre les deux travaux, j’utilise des data areas. Rien ne vous empêche
d’améliorer le système. C’était juste pour faire un test.
A bientôt
Laurent Masson
N.B. : les sources des programmes fournis par Laurent se trouvent dans
le fichier ressources/xpress30.zip (Nom réel : wrkqtemp.zip) que vous pouvez
télécharger en cliquant ici. Les fichiers sont au
format EBCDIC. Pour pouvoir les étudier et les compiler, vous devez les transférer sur
votre AS/400 via FTP.
OPEN adresse_as400 -- User -- Password
BIN PUT fichier_PC bib/source/membre . . .
(c’est l’instruction BIN qui permet de ne pas faire de conversion EBCDIC en ASCII et
inversement).