Les mots Réservés dans SCAN400 Pour détecter dans les sources, les appels indirects dit « spécifiques » *LITTERAL : détecter un ‘ littéral ‘ comme étant un programme appelé, sans autre forme de procès si celui-ci est trouvé dans un source. *NOLITTERAL : détecter un MOT comme étant un programme appelé, sans autre forme de procès si celui-ci est trouvé dans un source. *NEXTP : détecter un MOT après un MOT témoin, avec une parenthèse ouvrante séparant ces deux mots. Le mot détecté est un programme appelé. *EXCLUDE : Pour forcer une exclusion : empêche la détection d’un littéral, d’une commande ou d’un Query. A noter que *EXCLUDE est sans effet si un lien est donné par DSPPGMREF *DATALIT : détecter un ‘ littéral ‘ comme étant une DONNEE interne au programme scanné. Exemple : les MSGID *DATANOLIT : détecter un MOT comme état une DONNEE interne au programme scanné.
Quelques commentaires : 3) Permet de collecter des MSGID par exemple 4) Permet par exemple de lister tous les programmes appelant une sous routine « standard » 5a) est une manière très spécifique de faire l’appel à NOMPG2 5b) Détection d’une DATAQ par son nom : elle sera vue comme étant un programme « appelé »
Dans JDSCAN, (ou bien dans le F4 de JDMORE), il faudra paramétrer ainsi : Les mots variables d’appel sont les mots revenant souvent, récurrents dans les sources Les mots validant sont les mots réservées vus précédemment Remarque importante : ces cas de mots réservés (*DATALIT etc.. ) sont des cas spéciaux, Car en général on utilise le mot Validant comme un mot se trouvant au moins une fois dans le source, afin de bien valider que le littéral lié au « Mot variable d’appel » est bien un appel de programme
Résultat dans JDSEE après le SCAN : Par convention, les détections faites par *DATALIT et *DATANOLIT Seront listées dans la rubrique « Data Area », mais si ce n’en sont pas. Les *DATALIT seront précédés d’un astérisque pour rappeler que ce sont avant tout des constantes. On remarque que LOGEND a bien été exclu grâce à *EXCLUDE
On pourra bien sur interroger en sens inverse (tous les programmes qui utilisent ce MSGID). Il faudra bien penser à mettre l’astérisque dans le sélecteur.
Quelques commentaires : 7) (*NOLITTERAL) Est une détection du mot LOGEND2 sans autre forme de procès : on considère cette détection comme suffisante si le MOT est trouvé 8) (*NEXTP) est une manière très spécifique de faire l’appel à EXE1.
Dans JDSCAN, ou dans le F4 de JDMORE : Paramétrage
Résultat dans JDSEE après le SCAN : On remarque que LOGEND a bien été exclu grâce à *EXCLUDE, contrairement à LOGEND2 qui est un MOT détecté sans autre forme de procès (*NOLITTERAL) EXE1 est le MOT détecté après le mot de référence EXEJOB et après la 1ere parenthèse ouvrante qui le suit (*NEXTP = Next Parenthèse)
En plus des appels indirects LOGIQUES, qui eux n’ont pas besoin de paramétrage, JDMORE présente toutes les détections des appels indirects SPECIFIQUES spéciaux et classiques. A noter que les *DATALIT et *DATANOLIT n’y apparaissent pas car ce ne sont pas des détections d’appel. Il est possible de rajouter (option P devant une ligne, soit générée, soit à créer) ou d’exclure (option E devant une ligne) une ligne de résultat pour l’inclure ou l’exclure de manière permanente au rendu de JDSEE (permanent = lien qui ne dépend plus du SCAN) JDMORE
Les appels indirects SPECIFIQUES dit « classiques », répondent à l’exposé explicatif ci-dessous (touche F5 = Voir exemple dans JDSCAN): Le cas classique diffère par le fait que le mot validant n’est pas un mot réservé (tels que *LITTERAL ou autre), mais bien un vrai mot se trouvant dans le source. Il est facultatif, car le plus important est le mot de variable d’appel, dont les littéraux associés (associés =c’est-à-dire présents sur la même ligne source) seront collectés.