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

XSL/XSLT/XPATH XML Discussion :

execution de vbscript [XSLT 1.0]


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut execution de vbscript
    Bonjour,

    J'essaie de d’exécuter un VBScript au sein d'un XSLT en vain, le but étant d'aller chercher des informations dans un objet COM (CATIA) pour s'en servir dans une fonction java.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?xml version="1.0" encoding="UTF-8"?>
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
     
      xmlns:lxslt="http://xml.apache.org/xslt"
      xmlns:PP="ARC-LH-COMAU"
     
      xmlns:my="urn:my-namespace"
      extension-element-prefixes="PP">
     
     
      <lxslt:component prefix="PP" functions="comau" elements="">
        <lxslt:script lang="javaclass" src="cmp.delmia.tools.ARC_LH_COMAU"/>
      </lxslt:component>  
     
      <msxsl:script language="VBScript" implements-prefix="my"><![CDATA[
     function xmlFileDirectory(task)
     
        Set CATIA = Wscript.GetObject(,"CATIA.Application")
     
     
        Set myProcess = CATIA.ActiveDocument
        Set mySP = myProcess.PPRDocument.Resources.Item(1)
        Set myProductRobot = mySP.Products.Item(1)
        Set RPM = myProductRobot.GetTechnologicalObject("ResourceProgramManager")
     
     
        RPM.GetTask task, oTask
     
         Set oOlp = myProductRobot.GetTechnologicalObject("OLPTranslator")
     
         xmlfileDirectory=oOlp.GetXMLFileDirectory
     end function
      ]]> </msxsl:script>
     
      <xsl:variable name="srcPath" select="/OLPData/Resource/GeneralInfo/TempPath"/>
      <xsl:variable name="TaskName" select="/OLPData/Resource/ActivityList/@Task"/>
      <xsl:variable name="destPath" select="my:xmlFileDirectory $TaskName"/>
     
     
      <xsl:template match="OLPData">
     
            <xsl:value-of select="PP:comau($destPath,$srcPath)"/>
     
      </xsl:template>
    </xsl:stylesheet>
    Je précise que le code vbscript s'éxécute très bien à partir d'un fichier VBS.

    Merci d'avance à toutes les bonnes âmes passant par là.

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Enlevez le host WScript pour GetObject, il n'est pas disponible dans ce genre d'environnement sauf que le processus soit lancé par wscript/cscript. Essayez-le, comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        'Set CATIA = Wscript.GetObject(,"CATIA.Application")
        Set CATIA = GetObject(,"CATIA.Application")

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    J'ai essayé sans le Wscript mais l'erreur est identique.
    Voici l'erreur remonté dans la fenetre dos :
    Nom : erreur.jpg
Affichages : 411
Taille : 61,1 Ko

    Après avoir mis entre parenthèse "$TaskName"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <xsl:variable name="destPath" select="my:xmlFileDirectory($TaskName)"/>
    Comme ci l'interpréteur pense que c'est une fonction java?

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Après avoir mis entre parenthèse "$TaskName"
    Oui, c'est aussi nécessaire, absolument. L'élimination de Wscript est aussi, rassurez-vous.

    Le reste à clarifier, c'est que comment vous lançez la transformation. Quel moteur xslt? Pour avoir le support de msxsl namespace, il faut utilser leur moteur implémenté par Msxml2 pgid autrefois ou System.Xml assemblage (System.Xml.Xsl namespace). Dans une plateforme depuis de temps immémorial, msxsl.exe marche aussi très bien encore.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Merci pour tes réponses.

    Je ne sais pas exactement quel moteur xslt est appelé.
    Je sais par contre que le logiciel qui lance la feuille XSLT utilise xalan.

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Je sais par contre que le logiciel qui lance la feuille XSLT utilise xalan.
    Dans ce cas, c'est non. Il ne reconnaît pas le namespace urn:schemas-microsoft-com:xslt, aucune chance à le faire marcher.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 23
    Points : 12
    Points
    12
    Par défaut
    Ok, merci pour toutes ces réponses je pense donc plutôt sur exécuter mon VBS à partir de JAVA et récupérer le retour du script dans un fichier txt.
    Je tag ce fil en résolu puisque la réponse à été donnée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Applet et execution de vbscript
    Par MrEddy dans le forum Applets
    Réponses: 0
    Dernier message: 18/08/2008, 11h37
  2. Probleme d'execution de vbscript
    Par ylabarre dans le forum VBScript
    Réponses: 10
    Dernier message: 08/08/2007, 11h14
  3. Execution vbscript dans du code php
    Par ylabarre dans le forum VBScript
    Réponses: 3
    Dernier message: 31/07/2007, 10h18
  4. Executer du VBScript sur C++ Builder
    Par BATiViR dans le forum C++Builder
    Réponses: 1
    Dernier message: 23/02/2007, 16h45
  5. [VB.Net 2.0] Comment exécuter un fichier VBScript ?
    Par Sodangbe dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/05/2006, 11h18

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