IBM i Global

 View Only

 ouvrir une session avec un USER différent de celui du profil vérifié sur la mire AS400

Philippe Bourbon's profile image
Philippe Bourbon posted Tue January 06, 2026 04:51 AM

Bonjour à toutes et tous.
Une problématique "technique" m'a été posée, suite à la reprise de notre société.
Les profils de nos utilisateurs vont être modifiés (de type matricule) et donc les sessions vont être ouvertes avec ce nouveau nom de USER retrouvé via RTVJOBA.
Le problème est que nous avons aujourd'hui des profils plus parlants avec le nom de l'utilisateur et c'est celui là que nous remontons dans nos fichiers, sur des documents, pour envoyer des mails ...
La question est donc comment faire, certainement via le point d'exit QIBM_QZSO_SIGNONSRV, format ZSOY0100 pour récupérer ce login, et surtout renvoyer le profil souhaité afin de créer la session avec cet "ancien" profil utilisateur ?
Mais bien sûr, ... est-ce possible ?

Je vous remercie pour vos éclaircissements et votre aide.
Philippe

Paul Nicolay's profile image
Paul Nicolay

Si je comprends bien, vous souhaitez vous connecter avec le user X (qui n'existe pas sur IBM i) et vous aimeriez l'associer quelque part au user Y (qui existe sur IBM i)... non, ce n'est pas possible.

Philippe Bourbon's profile image
Philippe Bourbon

Bonjour Paul
En fait le user X doit exister, être connu et reconnu lors de la connexion, mais la session devra être ouverte avec le user Y qui pourrait exister également (ou pas)
Le but est d'avoir une session ouverte avec numéro/userY/travail plutôt que numéro/userX/travail

Peut-être est-ce plus clair.

Paul Nicolay's profile image
Paul Nicolay

Vous pourriez remplacer le profil utilisateur de votre programme initial par celui de l'utilisateur Y (voir l'API QsyGetProfileHandle). Cependant, la référence de la tâche restera celle de l'utilisateur X (seul l'utilisateur actuel sera Y). Ainsi, la tâche s'exécutera avec les droits de l'utilisateur Y, mais de nombreuses opérations seront toujours enregistrées au nom de l'utilisateur X.

Vous pourriez également utiliser (et parfois détourner) la fonction STRPASTHR pour démarrer une session avec un autre profil, mais je ne sais pas si une telle configuration est vraiment souhaitable. De plus, ces mécanismes ne fonctionneront (si tant est qu'ils fonctionnent) qu'avec des sessions interactives.

Philippe Bourbon's profile image
Philippe Bourbon

Paul, je n'ai malheureusement pas toutes ces connaissances 😕

Comment accéder à l’API QsyGetProfileHandle ?
Comment récupérer le profil X (celui qui s'est connecté) et ensuite renvoyer le profil Y (une fois récupéré dans notre table paramètre) ?

L'idée de départ était de passer par le point d'exit, mais là encore, je suis à la pêche aux infos ...
Votre proposition est peut-être meilleure !

Si vous avez des informations complémentaires, je suis preneur ! 

Paul Nicolay's profile image
Paul Nicolay

La fonction QIBM_QZSO_SIGNONSRV a une fonction totalement différente de celle que vous imaginez ; elle ne vous sera donc d'aucune utilité. Vous pourriez éventuellement utiliser QIBM_QTG_DEVINIT, mais j'ignore l'impact qu'aurait un changement de profil à ce stade.

Vous trouverez plus d'informations sur les API de profils à l'adresse suivante : https://www.ibm.com/docs/en/i/7.4.0?topic=programs-example-using-profile-handles

Philippe Bourbon's profile image
Philippe Bourbon

Merci beaucoup Paul pour ces retours !

J'y vais de ce pas !!