Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > AS/400
AS/400 Le Forum d'entraide sur IBM AS/400 - iSeries. RPG.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/05/2011, 09h19   #1
Futur Membre du Club
 
Femme Julie
Étudiant
Inscription : mai 2011
Messages : 18
Détails du profil
Informations personnelles :
Nom : Femme Julie
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 18
Points : 16
Points : 16
Par défaut Passage de paramètres variables dans STRPCCMD

Bonjour à toutes et à tous,

Voici mon problème:
J'utilise actuellement la commande système STRPCCMD pour exécuter un script .bat prenant lui-même un argument. Cet argument, US400 contient le nom d'un utilisateur renseigné précédemment dans le programme. Or, quand j'exécute le tout, le programme prend US400 en tant que tel et pas son contenu. J'ai essayé plusieurs syntaxes trouvées dans les méandres d'internet sans succès. Existe-t-il une solution?

Merci
juju666 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 10/05/2011, 10h58   #2
Membre éclairé
 
Homme
Inscription : septembre 2008
Messages : 251
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : septembre 2008
Messages : 251
Points : 309
Points : 309
STRPCCMD reçoit une chaîne de caractères comme commande à exécuter.

Il suffit de construire sa chaîne de caractères et d'appeler STRPCCMD
Attention toutefois à ne pas oublier de doubler les quotes s'il y en a !

Exemple dans un CLP :
Code :
1
2
3
4
5
6
7
8
9
10
11
PGM
DCL  &CMD *CHAR 50
DCL  &USER *CHAR 10
RTVJOBA USER(&USER)
CHGVAR &CMD ('C:\Repertoire\fichier.bat' *BCAT &USER)
STRPCO
MONMSG CPF0000
STRPCCMD &CMD
MONMSG CPF0000
ENDPGM
FORMULARY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2011, 11h38   #3
Futur Membre du Club
 
Femme Julie
Étudiant
Inscription : mai 2011
Messages : 18
Détails du profil
Informations personnelles :
Nom : Femme Julie
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 18
Points : 16
Points : 16
Merci, je vais essayer
juju666 est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 10/05/2011, 14h54   #4
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Quelques remarques en passant.

1/ Derrière STRPCO, il faut ignorer le message IWS4010 et non pas CPF0000.
Code :
1
2
 strpco         
 monmsg iws4010 /* Intégrateur déjà démarré */
2/ La commande STRPCCMD est ultra limitative :
  • Le paramètre PCCMD de la commande STRPCCMD ne peut pas excéder 128 caractères.
  • La commande STRPCCMD ne peut s'exécuter que sur le PC qui lance le programme qui la contient.
  • Le traitement est uniquement interactif et asynchrone entre l'AS400 et le PC.
3/ Ignorer tous les éventuels messages CPF en retour d'une commande ou d'un programme n'est pas la bonne méthode. Il vaut mieux que le programme se plante plutôt que de ne pas savoir qu'il y a eu un problème.

4/ Il vaudrait mieux démarrer le service "Fonction Commande à distance d'iSeries Access for Windows" et utiliser ensuite la commande RUNRMTCMD qui offre de bien meilleures possibilités.
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 09h48   #5
Futur Membre du Club
 
Femme Julie
Étudiant
Inscription : mai 2011
Messages : 18
Détails du profil
Informations personnelles :
Nom : Femme Julie
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 18
Points : 16
Points : 16
Bon!
ça fonctionne, mais j'ai tout fait en RPG free, pas en CLP. J'avais un problème de quote mal placée. Merci pour tout
juju666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 09h53   #6
Futur Membre du Club
 
Femme Julie
Étudiant
Inscription : mai 2011
Messages : 18
Détails du profil
Informations personnelles :
Nom : Femme Julie
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 18
Points : 16
Points : 16
Pour celles et ceux qui s’intéressent au code, voici la partie principale:

cmd='''d:\netuse.bat '+%trim(US400);
cmdc=%trim('STRPCCMD PCCMD('+%trim(cmd)+''')');
qcmdexc (cmdc:cmdl);

avec cmdl qui a la même taille que cmdc, à savoir, 128. Et US400 est le paramètre contenant le nom d'utilisateur.
juju666 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h12.


 
 
 
 
Partenaires

Hébergement Web