Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous , mon problème est le suivant :
Je souhaite envoyer un mail d'alerte via l'exécution d'un script VBS dans PowerBuilder.
Le script VB d'envoie de mail est fonctionnel seul , testé et approuvé .
Le problème est l'interface Powerbuilder et le fichier VBS :
J'ai créé une fonction "f_envoi_mail" contenant mon "appel" à mon fichier VBS comme suis :
int li_ret OleObject wsh integer li_rc CONSTANT integer MAXIMIZED = 3 CONSTANT integer MINIMIZED = 2 CONSTANT integer NORMAL = 1 CONSTANT boolean WAIT = FALSE CONSTANT boolean NOWAIT = TRUE wsh = CREATE OleObject li_rc = wsh.ConnectToNewObject ("MSScriptControl.ScriptControl") wsh.language = "vbscript" wsh.Run(".\envoi_mail.vbs" , NORMAL, WAIT) return 1
Mais lors de l'appel de ma fonction sur l'évènement OPEN de ma fenêtre , j'ai l'erreur suivante :
Error : Error calling external object function run at line 16 in function f_envoie_mail of object w_toto.
(w_toto étant la fenêtre dans laquelle , sur l'évènement open, je réalise mes traitements : vérification de connexion avec "connect using SQLCA" et requête SQL.)
Votre aide me serait d'un grand secoure.
Cordialement Pierrot.
Hors ligne
Salut,
Essai dans un premier temps avec un chemin complet vers ton script.
Hors ligne
Bonjour,
Je présuppose que tu as bien l'objet msscript.ocx de disponible?
Hors ligne
Bonjour xlat, désolé pour la réponse tardive ...
J'ai en essayé avec un chemin complet vers mon script mais cela ne change rien (malheureusement).
Bonjour cposervices, je suis aller vérifier la présence de msscript.ocx, il est bien présent (C:\Windows\SysWOW64\msscript.ocx).
Je suis sou win-10 64 bit , cela peut il poser problème ?
Merci pour vos réponses !!!
Hors ligne
En fait, il y a confusion entre MSScriptControl.ScriptControl et WScript.Shell :
wsh = CREATE OleObject li_rc = wsh.ConnectToNewObject("WScript.Shell") wsh.Run("wscript.exe .s\envoi_mail.vbs" , NORMAL, WAIT)
ou sans fichier intermédiaire :
wsh = CREATE OleObject li_rc = wsh.ConnectToNewObject("MSScriptControl.ScriptControl") wsh.language("vbscript") wsh.ExecuteStatement('MsgBox "Test"')
Hors ligne
Il me semble qu PB sait déjà envoyer des mails nativement avec MAPI (Message API) et MailSession / MailMessage, et sinon chez Roland Smith il y a le module PB EmailSMTP ou encore l'extension PBNISMTP qu'il a apparemment repris de Bruce Armstrong.
Passer par un vbs pour envoyer un mail, c'est quand même moche
Hors ligne