JD Edwards, MOVEX , BPCS , MAPIX , ERP sur AS400 : Guide - Aide : Analyse sur programmes Spéciques et Standards Bienvenue dans « SCAN400 » Références croisées Outil pratique d’observation de vos applications AS400 CLIQUEZ ICI Pour RETOURNER à la page IMAGE d'origine CONTENANT CE TEXTE « SCAN400 - Références Croisées » - Détection des appels indirects SCAN400 est capable de reconnaitre des appels Indirects de programmes. Les appels indirects sont des appels inter programme non détectables par les procédés standards. Par exemple: Pour les RPG : Les appels non détectables par DSPPGMREF Pour M3 : Les APCALL utilisant une variable plutôt qu’un littéral La détection des appels indirects représentent en général très peu de cas (moins de 1% dans M3 ou Movex), mais rendent l'outil encore plus complet, et permettent de rendre compte de ce qui est très spécifique à un progiciel , une entreprise, ou à une manière de coder Exemples de détections possibles : Des programmes M3 appelant des programmes RPGs Des programmes RPG appelant des programmes M3 Des programmes appelant des programmes au travers d'une variable (M3 ou RPGs) On distingue deux catégories d' appels indirects : Les appels indirects LOGIQUES , c’est-à-dire que SCAN400 peut trouver de lui-même, sans aide Les appels indirects SPECIFIQUES , c’est-à-dire que SCAN400 détecte grâce à un paramétrage de reconnaissance que vous devrez fournir. Les deux catégories d'appels indirects. Dans les deux types d' appels indirects présentés ci dessous, c'est le littéral 'NOM_PROGRAMME_APPELé' qui doit être détecté.: 1- Cas des appels indirects LOGIQUES - exemple : MOVE du littéral 'NOM_PROGRAMME_APPELé' dans &VARIABLE et plus loin dans le source : CALL &VARIABLE 2- Cas des appels indirects SPECIFIQUES , c'est à dire propres à une manière de coder, à un progiciel, qui seront identifiés au travers d'un PARAMETRAGE de Reconnaissance , saisi au préalable dans SCAN400 - exemple : MOVE du littéral 'NOM_PROGRAMME_APPELé' dans &VARIABLE et plus loin dans le source : CALL 'NOM_PROGRAMME_LANCEUR' passant en paramètre &VARIABLE Un exemple typique d'appel indirect spécifique dans M3 ou dans Movex RPG est l'appel de programmes au travers du lanceur MNS230 : bien que les appels via MNS230 soient déjà identifié dans le moteur standard de SCAN400 pour M3, elle ne l'est pas coté RPG si vous scannez une application Movex RPG, qui nécessitera alors de paramétrer un critère de reconnaissance de cet appel indirect. MOVEL 'GLS040CL 'PXPGM et plus loin dans le source : CALL 'MNS230' PARM PXCONO PARM .... PARM PXPGM Contrairement aux appels indirects spécifiques, les appels indirects logiques peuvent être détectés par SCAN400 sans qu’il y aie besoin de lui spécifier un paramétrage. Voici un exemple d’appel indirect logique : extrait du source SOS620 dans Movex RPG : MOVEL 'CRS155' PROG Ici, alimentation de la variable d’appel « PROG » avec le littéral ’ CRS155’ Et un peu plus loin dans le source.. CALL PROG Ici, appel indirect du CRS155 au travers de la variable « PROG » Un appel indirect s’oppose par définition, à un appel « direct » qui aurait eu la syntaxe suivante : CALL ‘CRS155’ Après un SCAN des appli. RPG*, tous les appels indirects détectés sont consultables : Lancez la commande « JDMORE » depuis une ligne de commande AS400 pour afficher le résultat des liens d’appel indirects identifiés, que vous pourrez valider ou invalider. . Pour détecter un appel indirect spécifique à votre appli RPG*, indiquez à SCAN400 comment le reconnaître, au travers du paramétrage ci-dessus , que vous présentera la commande JDSCAN à l’étape 3. Actionnez : - F6 pour créer une ligne de paramétrage après avoir saisi les zones du sélecteur - F5 « Voir Exemple » pour comprendre comment renseigner les zones. (Voir Page suivante) Remarque : pour ce paramétrage propre aux RPG, vous saisissez des MOTS (et non des chaînes). Un mot peut contenir tout type de caractère spécial mais pas de blanc au milieu. Lors sa saisie, le début du mot correspond au 1er caractère NON blanc de la zone de saisie , la fin du mot est aussi le dernier caractère NON blanc saisi. (la saisie est en majuscule car le source scanné sera converti en majuscules) Exemple : la saisie : " ABC.#DÀ " est le mot «ABC.#Dà»