Archives par mot-clé : NOHANDLE

CICS – Option NOHANDLE

Si vous souhaitez désactiver toutes les conditions d’une commande CICS particulière, codez NOHANDLE.

Cette commande désactive temporairement toutes les autres conditions de poignée. Si une exception survient lors de l’exécution de la commande, le contrôle sera transféré à l’instruction suivante après la commande. Il peut être utilisé avec Lire, Écrire, Supprimer, etc.

L’option NOHANDLE peut être codée sur n’importe quelle commande CICS pour ignorer toute condition qui se produit lors de l’exécution de cette commande. Cette option s’applique uniquement à la commande CICS sur laquelle elle est incluse. L’utilisation de l’option REEE implique NOHANDLE. NOHANDLE remplace la commande HANDLE AID et les tests des touches PF sont ignorés.

EXEC CICS HANDLE CONDITION
	MAPFAIL(PARA-1)
	PGMIDERR(PARA-2)
	LENGERR(PARA-3)
	ERROR(PARA-X)
END-EXEC.

Il existe des possibilités de boucle infinie lorsque la commande CICS dans la routine d’exception de HANDLE CONDITION se termine par la même exception. Dans l’exemple ci-dessus, s’il y a LENGERR dans PARA-3 pour l’une des commandes CICS codées ici, alors le contrôle revient à PARA-3 et forme une boucle infinie. Dans de tels cas, NOHANDLE sera utile (dans les commandes CICS de la routine ABEND).


Syntaxe:

L’option NOHANDLE peut être codée comme suit :

EXEC CICS
   program statements
   NOHANDLE
END-EXEC.

Exemple:

Voici l’exemple de la commande Nohandle. Nous l’utilisons avec une instruction RECEIVE. Si l’instruction RECEIVE échoue, elle n’arrêtera pas le programme.

EXEC CICS RECEIVE
    INTO (WS-INPUT)
    LENGTH (WS-LONGUEUR)
    NOHANDLE
END-EXEC