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 :

Problème avec API QSYSGETH


Sujet :

AS/400

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France, Oise (Picardie)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 29
    Par défaut Problème avec API QSYSGETH
    Bonjour,

    Voici le problème :
    Cette Api est appelée par un programme développé en Adélia dont voici une partie du code

    ALPHA(10) PW_LOGIN
    ALPHA(10) PW_PASSWORD
    ALPHA(16) PW_ERR
    ALPHA(12) PW_HAN

    SI CHS_LOGIN <> *BLANK ET CHS_PASSWORD <> *BLANK
    /* appel de l’api 400 pour vérification du profil
    PW_LOGIN = &MAJUSCULE(CHS_LOGIN)
    PW_PASSWORD= &MAJUSCULE(CHS_PASSWORD)
    PW_ERR = *BLANK
    PW_HAN = *BLANK
    APPELER AD_CONNEXION PW_LOGIN PW_PASSWORD PW_ERR PW_HAN

    SI PW_ERR <> *BLANK
    WW_NUM_MSG = &EXTRACTION(PW_ERR ;9 ;7)

    Comme vous le verrez dans le fichier ci-joint AD_CONNEXION appelle le CLP WCTLPRF dont voici la description
    PGM PARM(&PRF &PWD &ERR &HAN)

    DCL VAR(&PRF) TYPE(*CHAR) LEN(10)
    DCL VAR(&PWD) TYPE(*CHAR) LEN(10)
    DCL VAR(&ERR) TYPE(*CHAR) LEN(16)
    DCL VAR(&HAN) TYPE(*CHAR) LEN(12)
    DCL VAR(&LEN) TYPE(*INT) LEN(4) VALUE(10)
    DCL VAR(&CCS) TYPE(*INT) LEN(4) VALUE(37)

    CALL QSYGETPH (&PRF &PWD &HAN &ERR &LEN &CCS)

    Quand on appelle le CL ci-dessus en passant les paramètres suivants et qu’on le debug
    &PRF = XCITC33582 (compte existant sur l’AS)
    &PWD = ‘TITI’ (mot de passe non valide)
    &HAN = ‘ ‘
    &ERR = ‘ ‘

    On a le résultat suivant dans :
    &HAN = ‘????????????’
    &ERR = ‘ ????CPF22E20’

    Le problème est qu’en retour de AD_CONNEXION le paramètre PW_ERR est toujours vide.

    Que faut-il faire?
    Images attachées Images attachées  

  2. #2
    Membre expérimenté
    Homme Profil pro
    Architecte technique & logiciel IBM i
    Inscrit en
    Septembre 2010
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte technique & logiciel IBM i
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2010
    Messages : 179
    Par défaut
    Comme la plupart des API, il y a un champ composé passé/renvoyé qui contient les anomalies rencontrées par l'API. C'est le champ &ERR dans ton exemple.
    Il faut se référer à la doc ibm (https://www.ibm.com/docs/api/v1/cont....htm#hdrerrcod en V7R3 par exemple, mais ça ne varie pas vraiment selon les versions d'OS) pour décomposer ce champ et déterminer qu'il y a eu une erreur.
    Dans ton exemple, on voit bien que le CPF22E2 a été émis (indiquant un mauvais mot de passe), donc le handle (&HAN) est renvoyé à NULL.
    C'est dons ton CL qu'il faut faire des choses pour éviter de renvoyer de manière brute les retours de l'API, mais il faut retravailler le contenu de tes propres paramètres.

  3. #3
    Membre émérite
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Octobre 2006
    Messages
    727
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Octobre 2006
    Messages : 727
    Par défaut
    Bonjour,

    Normal, le paramètre Password est seulement en entrée. Tu n'auras pas de valeur en sortie.
    Et pour ce qui est des autres paramètres, essaye de t'inspirer de l'exemple d'IBM :
    https://www.ibm.com/docs/en/i/7.4?to...rofile-handles

Discussions similaires

  1. Problème avec API OutText dans une DLL
    Par KlausGunther dans le forum API, COM et SDKs
    Réponses: 20
    Dernier message: 11/05/2014, 15h55
  2. Réponses: 3
    Dernier message: 30/08/2009, 11h47
  3. Problème avec API et Me.hWnd
    Par mixka13 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/04/2009, 20h04
  4. Problème avec API GetDlgItem
    Par crazyman8 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 02/01/2008, 23h38
  5. problème avec "API Windows en C"
    Par Vince-le-fou dans le forum Windows
    Réponses: 2
    Dernier message: 23/11/2005, 15h22

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