Contourner le problème d'accès par clé en CLP
Il n'existe pas de solution simple pour lire un fichier par en clp (comme un chain RPG) mais voici une astuce qui peut vous permettre de contourner ce problème dans certains cas (par exemple paramètage)

L'idée est simple il faut utiliser un fichier message

1) Créer le fichier message
CRTMSGF MSGF(MALIB/MONMSGF) TEXT('Fichier message')

2) Ajouter vos messages
texte de premier niveau 132 caractères, texte de deuxième niveau 3000 caractères
par exemple les mois avec le nombre de jour
ADDMSGD MSGID(MOI0001) MSGF(MONMSGF) MSG(31) SECLVL(JANVIER) SEV(64)
ADDMSGD MSGID(MOI0002) MSGF(MONMSGF) MSG(28) SECLVL(FEVRIER) SEV(64)
ADDMSGD MSGID(MOI0003) MSGF(MONMSGF) MSG(31) SECLVL(MARS) SEV(64)
ADDMSGD MSGID(MOI0004) MSGF(MONMSGF) MSG(30) SECLVL(AVRIL) SEV(64)
ADDMSGD MSGID(MOI0005) MSGF(MONMSGF) MSG(31) SECLVL(MAI) SEV(64)
ADDMSGD MSGID(MOI0006) MSGF(MONMSGF) MSG(30) SECLVL(JUIN) SEV(64)
ADDMSGD MSGID(MOI0007) MSGF(MONMSGF) MSG(31) SECLVL(JUILLET) SEV(64)
ADDMSGD MSGID(MOI0008) MSGF(MONMSGF) MSG(31) SECLVL(AOUT) SEV(64)
ADDMSGD MSGID(MOI0009) MSGF(MONMSGF) MSG(30) SECLVL(SEPTEMBRE) SEV(64)
ADDMSGD MSGID(MOI0010) MSGF(MONMSGF) MSG(31) SECLVL(OCTOBRE) SEV(64)
ADDMSGD MSGID(MOI0011) MSGF(MONMSGF) MSG(30) SECLVL(NOVEMBRE) SEV(64)
ADDMSGD MSGID(MOI0012) MSGF(MONMSGF) MSG(31) SECLVL(DECEMBRE) SEV(64)

3) Vous pouvez maintenant utiliser dans un programme CLP
//
DCL &MOIS *CHAR 2
DCL &JOURS *CHAR 2
DCL &LIBMOIS *CHAR 10
DCL &SEV *DEC 2
//

RTVMSG MSGID('MOI00' *TCAT &MOIS) MSGF(MONMSGF) +
MSG(&JOURS) SECLVL(&LIBMOIS) SEV(&SEV)
IF COND(&SEV *EQ 64) THEN(DO)
// traitement trouvé
ENDDO
ELSE DO
// traitement non trouvé
ENDDO

Remarque :
Très utile pour les paramétrage et les traductions
Le paramétre sev sert à tester un message non trouvé (pas de cpf d'erreur)
Vous pouvez avoir des variables plus longue avec des extractions
Si vous avez crée un menu type AS/400, vous générer en même temps un msgf du même nom, les options ont pour identifiant USR00nn et vous pouvez ainsi les utiliser en batch