XSL - Error VBScript en la transformación

 
Vista:

Error VBScript en la transformación

Publicado por Antonio (1 intervención) el 20/12/2011 09:12:54
Buenos días

Estoy realizando una aplicación web y me encuentro con el siguiente problema:

Tengo una transformación XSLT que llama a un script de VB, el cual debe buscar un fichero word en una carpeta y mostrarlo por pantalla. El problema lo tengo a la hora de llamar al WMI, puesto que me da un error. Adjunto el script y pongo en negrita la línea que me da error

<script type="text/vbscript" language="VBScript">
<xsl:text>
Dim appWord

Dim docWord

Ruta = "\\servidor\Informes\"

Set objWMIService = GetObject("winmgmts:")
Document.Write("OK")

</xsl:text>
</script>

El error que me da es que el componente ActiveX no puede crear el objeto GetObject, pero me he creado el script fuera y no da ningún problema, así que imagino que hay que hacer algo en el fichero XSLT. ¿Alguien puede ayudarme por favor?

Un saludo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Error al crear el objeto GetObject en un script de VB

Publicado por Alejandro (227 intervenciones) el 07/07/2023 00:45:48
El problema que estás enfrentando se debe a que el componente ActiveX no puede crear el objeto GetObject cuando se llama desde el archivo XSLT. Aquí tienes una solución para resolver este error:

1. Asegúrate de que el script de VB esté en un archivo con extensión .vbs separado del archivo XSLT.

2. En el archivo XSLT, utiliza un enlace o una llamada a ese script de VB en lugar de intentar ejecutar el código VB directamente en el archivo XSLT. Por ejemplo:

1
2
3
4
5
6
<script type="text/vbscript" language="VBScript">
  <xsl:text>
    Ruta = "\\servidor\Informes\"
    Call ShowWordDocument(Ruta)
  </xsl:text>
</script>

3. En el archivo .vbs, define la función `ShowWordDocument` y coloca el código que busca el archivo de Word y lo muestra. Por ejemplo:

1
2
3
4
5
6
7
8
Sub ShowWordDocument(Ruta)
  Dim appWord
  Dim docWord
 
  Set appWord = CreateObject("Word.Application")
  Set docWord = appWord.Documents.Open(Ruta & "nombre_del_archivo.docx")
  appWord.Visible = True
End Sub

4. Asegúrate de que el usuario que ejecuta la aplicación web tenga los permisos adecuados para acceder a los archivos y carpetas necesarios.

Al separar el código VB en un archivo .vbs y llamarlo desde el archivo XSLT, deberías poder solucionar el problema y evitar el error relacionado con el componente ActiveX.

Ten en cuenta que el código proporcionado es solo un ejemplo y debes adaptarlo a tus necesidades específicas, como la forma en que se construye la ruta del archivo y el nombre del archivo que deseas abrir.

Espero que esta solución te sea útil y te ayude a resolver el problema. Recuerda aplicar este enfoque para todas tus consultas futuras donde necesites utilizar scripts de VB en combinación con XSLT.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar