Execution commande AS400 depuis Excel

25-01-2007 à 17:15:37
Bonjour,

j'essaie de lancer l'execution d'un CLP depuis une macro excel avec la fonction VBA : CwbRemoteCommandButton

Ceci fonctionne très bien, par contre si je veux faire la même chose en passant des paramètres au CLP rien ne se passe, aucun message retour et excel plante...

j'ai essayé diférentes syntaxes sans résultats.

La commande :

CALL PGM(P2PP/QTRF1) PARM(8 20061201 20061231)

fonctionne si je tape directement sur la ligne de commande AS.

La même chaine de caractères envoyée depuis excel ne marche pas.

pour info : si j'envoye la commande sans aucun paramètre, j'ai bien un retour : "paramètres attendus pas conformes"


Le CLP :

0001.00 DEBUT: PGM PARM(&SOC &DD &DF)

0003.00 DCL VAR(&SOC) TYPE(*DEC) LEN(15 5)
0004.00 DCL VAR(&DD) TYPE(*DEC) LEN(15 5)
0005.00 DCL VAR(&DF) TYPE(*DEC) LEN(15 5)
0006.00 CLRPFM FILE(FQTRF1)
0007.00 CALL PGM(P2PP/PQTRF1) PARM(&SOC &DD &DF)

Une idée ?


  • Liens sponsorisés



25-01-2007 à 15:20:31
Bonjour,

As tu essayé (histoire de tester) avec des paramètres alpha dans ton clp ?

Wilfrid.
25-01-2007 à 16:09:04
C'est du côté VBA qu'il faut regarder, pas du côté AS400.
Je pense qu'il faut passer les parametres en packé depuis le VBA.

NB: Mes connaissances VB sont limitées mais toutefois j'ai réussi à appeler un programme en lui passant des paramètres. Voila ce que j'ai écrit dans mon VBA :

Dim MYAS400 As New cwbx.AS400System
Dim servers As New cwbx.systemNames
Dim Command As New cwbx.Command
MYAS400.Define servers.DefaultSystem
Set Command.system = MYAS400

Command.system.UserID = "Profil"
Command.system.Password = "MotDePasse"

' Appel du programme MYLIB/MYPGM sur l'AS400
' Ce pgm attend 2 parametres:
' - le 1er en char ( 10 ) = 'ABCDEFGHIJK',
' - le 2nd en packé ( 15 5 ) = 12345,00000
Command.Run "CALL MYLIB/MYPGM ('ABCDEFHIJK' X'000001234500000F')"
Debug.Print "Erreur = "; Err.Number; " "; Err.Description; " "; Err.Source



25-01-2007 à 16:41:34
j'ai trouvé !

en fait il manquait le chargement des bibliothèques dans le CLP.


J'avais déjà testé en alpha, merci de t'être interessé à mon problème.

25-01-2007 à 16:46:12
Comment as-tu passé les zones en packé depuis ton VBA ?
25-01-2007 à 16:49:52
Merci Philippe,

en ce qui me concerne, je n'ouvre pas de session avec

Command.system.UserID = "Profil"
Command.system.Password = "MotDePasse"

d'où mon pb de LIBLE pas en phase, et les messages erreur arrivaient pour QSYSOPR, je ne les ai pas vu tout de suite...






25-01-2007 à 17:15:37
Philippe, voici l'ordre VBA

ActiveSheet.cwbRemoteCommandButton1.CommandString = "CALL PGM(P2PP/QTRF1) PARM(" & soc & " " & date11 & " " & date21 & ")"

les variables soc, date11 et date 21 sont définies STRING, mais en fait on passe une chaine de caractères, concretement dans mon cas :

PARM(08 20061201 20061231) l'AS "voit" 3 données numériques

dans le CLP, les variables NUM doivent être définies en *DEC 15 5, j'ai trouvé cela en lisant l'aide sur la commande CALL F4 et F1 sur la zone PARAMETRE, où il est expliqué que les paramètres saisis en interactif sont interprétés *char 32 ou *dec 15 5.

12-06-2013 à 11:09:28
Bonjour,

Quelles références faut il activer dans la bibliothèque VBA ?

Cdt,
Gorz.
  • Liens sponsorisés