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à»