M3 ERP , Lawson Infor : Guide - Help : 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 de M3, les appels indirects (logiques ou spécifiques) seront récoltés : 
Lancez la commande « M3MORE » 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 les appels indirects spécifiques dans M3, vous devez indiquer à 
SCAN400 comment le reconnaitre, au travers du paramétrage ci-dessus ,
que vous présentera la commande M3SCAN à 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 saisir ce type de paramétrage, vous saisissez des CHAINEs de
Caractères. Une chaine peut contenir tout type de caractère spécial. Lors sa saisie,
le début de cette chaîne correspond au 1er caractère de la zone de saisie (qui 
peut être blanc), et sa fin est le dernier caractère non blanc saisi.
(Nb : la saisie est en majuscule car le source scanné sera converti en majuscules)
Exemple : la saisie :     "   ABC.#DE À "  est la chaîne   «   ABC.#DE à»