IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AS/400 Discussion :

Demande d'explication sur le CLP Suivant


Sujet :

AS/400

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut Demande d'explication sur le CLP Suivant
    Bonjour,

    J'ai récupérer le clp suivant sur un site web auurriez-vous la possibilité de m'expliquer le fonctionnement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    DCL VAR(&MSGID) TYPE(*CHAR) LEN(7) 
    DCL VAR(&MSG) TYPE(*CHAR) LEN(200) 
    DCL VAR(&MSGDTA) TYPE(*CHAR) LEN(200)
    DCL VAR(&MSGF) TYPE(*CHAR) LEN(10)
    DCL VAR(&MSGL) TYPE(*CHAR) LEN(10)
    MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
    
    ERROR: 
    MSGD: RCVMSG MSGTYPE(*DIAG) MSG(&MSG) MSGDTA(&MSGDTA) +
    MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGL)
    IF COND(&MSGID *NE ' ') THEN(DO) 
    SNDPGMMSG MSGID(&MSGID) MSGF(&MSGL/&MSGF) +
    MSGDTA(&MSGDTA) MSGTYPE(*DIAG)
    MONMSG MSGID(CPF0000)
    GOTO CMDLBL(MSGD)
    ENDDO 
    RCVMSG MSGTYPE(*EXCP) MSG(&MSG) MSGDTA(&MSGDTA) + 
    MSGID(&MSGID) MSGF(&MSGF) MSGFLIB(&MSGL)
    IF COND(&MSGID *NE ' ') THEN(DO)
    SNDPGMMSG MSGID(&MSGID) MSGF(&MSGL/&MSGF) +
    MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE))
    MONMSG MSGID(CPF0000)
    ENDDO
    END:
    ENDPGM
    A quoi sert le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
    La commande permet de lire le MSG mais à quoi correspond le (*DIAG):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MSGD: RCVMSG MSGTYPE(*DIAG)
    La commande suivante envoi un message je pense mais à quoi correspond les variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SNDPGMMSG MSGID(&MSGID) MSGF(&MSGL/&MSGF) +
    MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE))
    Que veut dire le :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF COND(&MSGID *NE ' ') THEN(DO)
    Que veut dire le:


    Merci pour votre aide.

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Bonjour,
    A la vue des questions vous ne codez pas en CLP. Une suggestion pour comprendre en partie une commande: aller en édition sur le source et faire F4 sur la commande. Cela vous donnera les champs requis et une explication par F1. Il est aussi possible de faire f4 sur la ligne de commande.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
    Monitore tous les messages survenus sur la commande précédante et s'il y'en a fait un GOTO vers le flag 'ERROR'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RCVMSG MSGTYPE(*DIAG)
    f1 sur le champ en mode f4: Le message reçu est un message de diagnostic. Ce type de message ne peut provenir que d'une file d'attente de messages de programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SNDPGMMSG MSGID(&MSGID) MSGF(&MSGL/&MSGF) +
    MSGDTA(&MSGDTA) MSGTYPE(*ESCAPE))
    &MSGDTA a préalablement été récupéré du RCVMSG

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF COND(&MSGID *NE ' ') THEN(DO)
    Clause 'IF': si la variable &MSGID n'est pas à blanc (' ') alors faire...


    F1 sur le champ:
    Le message reçu est un message d'exception. Les
    messages d'exception (arrêt programme, avertissement,
    état) sont reçus par le programme dans l'ordre
    "dernier entré premier sorti". Le programme récepteur
    peut intercepter ces messages à l'aide de la commande MONMSG

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Bonjour,

    Merci beaucoup pour ces explications mais tu me dis que ce n'est pas un code CLP mais c'est quoi alors.

    A la réponse:
    Monitore tous les messages survenus sur la commande précédente et s'il y'en a fait un GOTO vers le flag 'ERROR'
    >>En gros cela veut dire que si MSGID est égal à CPF0000 je vais à l'étiquette ERROR
    Ou puis-je retrouver les différents CPF..... et leurs valeurs et la signification

    La touche F1 & F4 me donne des infos mais malheureusement la langue c'est de l'anglais et je ne comprends rien a l'anglais et je pers un max de temps pour traduire chaque ligne de l'aide, aurais-tu un lien pour récupérer de la doc sur ce langage (CLP ou autre?) mais en français ca serait super cool.

    Merci beaucoup pour ton aide.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 91
    Points : 93
    Points
    93
    Par défaut
    Bonjour.

    Ce que voulais dire Yannoche, c'est que c'est bien du CLP et qu'au vu de tes questions tu ne dois pas savoir coder dans ce language.

    Le CPF0000 est un CPF global, voulant dire tous les CPFxxxx quels qu'ils soient.
    Donc la commande MONMSG MSGID(CPF0000) intercepte tous les messages CPFxxxx.
    Si cette commande est la première instruction du CLP, (attention pas la première ligne, mais la première instruction) alors tout message CPFxxxx intervenant durant l'execution du CLP sera monitorée.
    Si cette commande est placée après une autre commande, elle interceptera tous les messages CPFxxxx intervenant durant l'éxécution de la commande seulement.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Bonjour et merci pour ta réponse,

    Oui je débute donc j'ai besoin de quelque base pour pouvoir démarrer existe t-il de la doc en français en ligne sur le web

    une autre question aurais-tu la possibilité de me donner un coup de main sur les query si oui fait mois signe merci

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Citation Envoyé par AAWOOPY56 Voir le message
    Bonjour,
    Ou puis-je retrouver les différents CPF..... et leurs valeurs et la signification

    Pour avoir le détail d'un message CPF:
    puis '5', positionnement sue le message, '5' afficher et '1' texte.

    La meilleur doc est malheureusement en anglais:
    http://www.elink.ibmlink.ibm.com/pub...=SC41-5721-05#

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 375
    Points : 173
    Points
    173
    Par défaut
    Bonjour Yannoche

    Merci pour la commande wrkmsgf et une de plus dans ma poche bon pas cool mon système tout le help est en anglais la barbe

    Je vais qd même regarder le lien que tu ma transmis je retrousse les manches allez hop

    Merci et bonne après midi

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    821
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2008
    Messages : 821
    Points : 1 084
    Points
    1 084
    Par défaut
    De la lecture plus ou moins en Français

    http://publib.boulder.ibm.com/infoce...v5r4/index.jsp

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mars 2003
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Pas de problème AAWOOPY56 (compliqué le nick
    Quand tu ne connais pas une commande, tu peux solliciter les différents menus de commandepar go cmdxxx
    ici: go cmdmsgf

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Demande d explication sur protocole FTP
    Par Mr_Chut dans le forum Réseau
    Réponses: 1
    Dernier message: 04/05/2007, 18h47
  2. Réponses: 4
    Dernier message: 09/10/2006, 22h12
  3. Réponses: 3
    Dernier message: 27/09/2006, 13h11
  4. [C#] demande d'explication sur un sample msdn
    Par legillou dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/06/2006, 17h01
  5. [final]demande d'explication sur ce mot-clé
    Par Invité dans le forum Langage
    Réponses: 10
    Dernier message: 18/04/2006, 11h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo