Recarga de document Qlikview desde línea de comandos en Windows

Vamos a automatizar un proceso utilizando Talend ETL en el que debemos recargar un módulo de Qlikview de forma desatendida cuando se reciba un mail con un asunto específico en el buzón de correo del área. Respecto a la parte de Qlikview, para lograrlo utilizaremos la herramienta QMSEDX que permite lanzar desde línea de comandos una tarea programada de Qlikview Server/Publisher (ésta debe estar previamente creada).

Seguridad (permisos de usuario)

En primer lugar debemos revisar si el usuario que va a ejecutar la herramienta QMSEDX tiene los permisos correspondientes. En nuestro caso utilizaremos un usuario de servicio en lugar del nuestro propio de desarrollo. Es necesario que el usuario esté dentro de los grupo de windows:

  • Qlikview Administrators
  • Qlikview EDX

Este último es necesario crearlo manualmente, ya que no se crea durante la instalación del servidor de Qlikview. Una vez creado el grupo EDX y añadido el usuario en cuestión, reiniciamos los servicios de Qlikview.

Ejecutar tarea en Qlikview Server desde línea de comandos

Configurar tarea programada como External Event

No es necesario tener licencia de Qlikview Publisher para utilizar la herramienta QMSEDX, en su lugar, podemos configurar una tarea programada en el propio QV Server como External Event. Simplemente seleccionamos el documento en cuestión y en la pestaña Reload configuramos la última opción On an External Event. Introducimos la contraseña y pulsamos el botón Apply. Podemos reconfigurar el campo Timeout seconds. La dependencia la dejaremos como select, ya que la idea es lanzar la tarea programada desde línea de comandos, no cuando se ejecute otra tarea programada.

Ejecutar tarea en Qlikview Server desde línea de comandos

Configurar fichero .bat para que ejecute QMSEDX

En primer lugar debemos descargar la herramienta QMSEDX (podéis hacerlo desde aquí). Descomprimimos el fichero QMSEDX_CommandLine que contiene QMSEDX.exe y QMSEDX.exe.config.

Abrimos el bloc de notas e invocamos a QMSEDX con los siguientes parámetros:

QMSEDX.exe -task="nombreTarea" -password="contraseña"

Donde la nombreTarea en el caso de disponer de licencia Publisher será el nombre de la tarea programada. En nuestro caso, como no tenemos esta licencia y utilizaremos el gestor de tareas de QV Server, debemos indicar la ruta «virtual» dentro del servidor (el nombre que hemos asignado a la ruta física de los documentos que hemos parametrizado System > Folders) y el nombre del fichero .qvw. Por ejemplo: en este caso TALEND/cuadro_mando_qv.qvw.

Ejecutar tarea en Qlikview Server desde línea de comandos

Si indicamos mal la ruta/nombre del fichero o el nombre de la tarea, nos arrojará un error:TaskNotFound.

Ejecutar tarea en Qlikview Server desde línea de comandos

En algunos ejemplos se incluye el parámetro -qms=http://<QVserverName>:4799/QMS/Service, no es necesario para las tareas de QV Server. En cualquier caso, con modificar el valor QVServerNahttpme por localhost o el nombre de nuestra máquina sería suficiente.

Invocamos el .bat y se lanzará automáticamente la recarga desde el planificador.

Ejecutar tarea en Qlikview Server desde línea de comandos

2 comentarios

  1. Hola,

    Muchas gracias por tu tutorial.

    Tengo una pregunta. En las versiones actuales de Qlik las recargas a petición del usuario se pueden hacer de alguna otra forma sin utilizar el ejecutable QMSEDX?

  2. Hola Cristina,

    Hemos probado varias formas y esta es la única que permite la recarga desde procesos externos (en nuestro caso, una ETL). Igualmente, se puede configurar una aplicación que envíe una petición por línea de comandos para lanzar el EDX.

    Tenemos un módulo para la gestión de permisos de los entornos Qlik que mantenemos en una base de datos SQL Server. Desde el propio módulo se pueden ejecutar los scripts DML para dar de alta, modificar y borrar permisos, pero sólo se puede recargar desde desktop, no desde el Access Point.

    Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

What is 4 + 6 ?
Please leave these two fields as-is: