Qlik Community

Qlik NPrinting Discussions

Discussion Board for collaboration on Qlik NPrinting.

felipessj
New Contributor II

Macro QlikView que usa un ciclo para enviar correos no funciona en servidor NPrinting - QlikView Macro Using Cycle to Send Mail Does Not Work on NPrinting Server

Estimados,

Tengo un problema al momento de ejecutar una trabajo en el servidor de NPrinting

Versión NPrinting: 15.4.0.2 (Feature Track)

Versión QlikView: 11.0.11440.0

Al modelo QlikView lo llamaré Modelo A

El trabajo consiste en distintas tareas:

1.- Recargar el modelo A.

2.- Crear reportes de manera cíclica usando un dato definido (nombre persona) en el modelo y almacenarlos en un directorio especifico (generalmente crea 6 reportes).

3.- Ejecutar una macro que se encuentra en el modelo A.

    La macro consiste en realizar un ciclo mediante comando For en donde busca los reportes creados y los envía a los correos      correspondientes a las personas.

A nivel local, el trabajo cumple con todas las tareas, genera los reportes y envía los correos.

El problema es en el servidor de NPrinting.

Al momento de ejecutar el trabajo, la tarea de recarga (1) y generación de reportes (2) funciona correctamente, pero al ejecutar la macro (3), envía sólo 1 correo y no hace nada mas.

Como detalle al revisar el administrador de tareas encuentro que el proceso QlikView se queda pegado ocupando 929 Mb Sin título.jpg

La macro que ocupo para enviar los correos es la siguiente

sub Ciclo


set dimPersona = ActiveDocument.fields("Persona_ssf").GetPossibleValues

for i=0 to dimPersona.Count - 1

On Error Resume Next

Dim FieldValue

FieldValue = dimPersona.Item(i).text

ActiveDocument.Fields("Persona_ssf").Select FieldValue

Set var = ActiveDocument.Variables("vCorreo")

Set nombre = ActiveDocument.Variables("vNombrePersona")

'*******************************************************************************************************************

'Enviar correo por Persona

'Verificar si existe el reporte

Dim Archivo

Archivo = "\\Ruta\Informe por Persona " & dimPersona.Item(i).Text & "_" & Date() & ".xlsx"

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(Archivo) Then

'Si existe el reporte

Set objMsg = CreateObject("CDO.Message")

Set msgConf = CreateObject("CDO.Configuration")

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.security.cl" 'smtp do email

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False

msgConf.Fields.Update

objMsg.To = var.GetContent.String

objMsg.From = "Correo@Correo.com"

objMsg.Subject = "Reporte por Persona"

objMsg.HTMLBody = "Hola " & nombre.GetContent.String & ",<br/> Adjunto al correo reporte por Persona"

objMsg.AddAttachment Archivo

objMsg.Sender = "Correo"

Set objMsg.Configuration = msgConf

objMsg.Send

Set objMsg = nothing

Set msgConf = nothing

   

Else

'No existe el reporte

   

End If

Next

ActiveDocument.ClearAll


End Sub

Agradeciendo de antemano toda su ayuda me despido

---------------------------------------------------------------------------------------------------------------------------------------------------------------

Dear,

I have a problem when running a job on the server of NPrinting

NPrinting Version: 15.4.0.2 (Feature Track)

QlikView Version: 11.0.11440.0

The QlikView model will call it Model A

The work consists of different tasks:

1.- Recharge the model A.

2.- Create reports in a cyclical way using a defined data (person name) in the model and store them in a specific directory (usually creates 6 reports).

3.- Execute a macro that is in model A.

    The macro consists of cycling through the For command, where it looks for the created reports and sends them to the emails corresponding to the people.

At the local level, the work fulfills all the tasks, generates the reports and sends the mails.

The problem is in the server of NPrinting.

When executing the job, the task of reloading (1) and report generation (2) works correctly, but when executing macro (3), it sends only 1 mail and does nothing else.

As a detail when reviewing the task manager I find that the QlikView process is stuck occupying 929 Mb

Sin título.jpg

The macro I used to send the emails is the following

sub Ciclo


set dimPersona = ActiveDocument.fields("Persona_ssf").GetPossibleValues

for i=0 to dimPersona.Count - 1

On Error Resume Next

Dim FieldValue

FieldValue = dimPersona.Item(i).text

ActiveDocument.Fields("Persona_ssf").Select FieldValue

Set var = ActiveDocument.Variables("vCorreo")

Set nombre = ActiveDocument.Variables("vNombrePersona")

'*******************************************************************************************************************

'Enviar correo por Persona

'Verificar si existe el reporte

Dim Archivo

Archivo = "\\Ruta\Informe por Persona " & dimPersona.Item(i).Text & "_" & Date() & ".xlsx"

Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FileExists(Archivo) Then

'Si existe el reporte

Set objMsg = CreateObject("CDO.Message")

Set msgConf = CreateObject("CDO.Configuration")

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.security.cl" 'smtp do email

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 0

msgConf.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False

msgConf.Fields.Update

objMsg.To = var.GetContent.String

objMsg.From = "Correo@Correo.com"

objMsg.Subject = "Reporte por Persona"

objMsg.HTMLBody = "Hola " & nombre.GetContent.String & ",<br/> Adjunto al correo reporte por Persona"

objMsg.AddAttachment Archivo

objMsg.Sender = "Correo"

Set objMsg.Configuration = msgConf

objMsg.Send

Set objMsg = nothing

Set msgConf = nothing

 

Else

'No existe el reporte

 

End If

Next

ActiveDocument.ClearAll


End Sub


Thanking in advance all your help I say goodbye

1 Solution

Accepted Solutions
felipessj
New Contributor II

Re: Macro QlikView que usa un ciclo para enviar correos no funciona en servidor NPrinting - QlikView Macro Using Cycle to Send Mail Does Not Work on NPrinting Server

Estimados,

Al final si pude realizar el proceso de envío de correos con mi versión de NPrinting.

Todo era causa de desconocimiento.

Para hacerlo posible use la herramienta de Nprinting para obtener los destinatarios desde un objeto (tabla) QlikView, usando la opción QlikView Entity.

La tabla debe tener como mínimo esta información y debe ser establecida en el asistente de NPrinting de la siguiente manera:

Email -> correo de la persona

Filter1 -> dato de la persona que se usa en el ciclo de creación del informe.

Group1 -> Agrupación al cual pertenece esa persona (vendedores, ejecutivos, gerentes, etc.)

FullName -> Nombre de la persona

El importar destinatarios debe ser establecido como una tarea previa a la creación de los informes.

Para enlazar estos destinatarios con los informes, en la opción de tarea, pestaña destinatarios, se debe colocar el grupo al cual pertenecen los destinatarios,

NPrinting se encarga de enviar el correo a quien corresponda.

Recuerden activar la opción enviar correo electrónico.

Espero que les sirva este ultra resumido tutorial.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Dear,
In the end if I could perform the process of sending emails with my version of NPrinting.
Everything was cause of ignorance.
To make this possible, use the Nprinting tool to obtain the recipients from a QlikView object (table), using the QlikView Entity option.

The table must have at least this information and must be established in the NPrinting wizard as follows:
Email -> person's email
Filter1 -> data of the person used in the report creation cycle.
Group1 -> Group to which that person belongs (salespersons, executives, managers, etc.)
FullName -> Name of the person

Importing recipients must be established as a task prior to the creation of the reports.

To link these recipients with the reports, in the task option, recipients tab, the group to which the recipients belong must be placed,
NPrinting is responsible for sending the mail to whom it may concern.

Remember to activate the option to send email.

I hope you can use this ultra-short tutorial.

4 Replies
Employee
Employee

Re: Macro QlikView que usa un ciclo para enviar correos no funciona en servidor NPrinting - QlikView Macro Using Cycle to Send Mail Does Not Work on NPrinting Server

Hi,

You are using a very old version, so I suggest you to update your installation.

Remember that Qlik NPrinting 16.* supports Office macros in the meaning that the VBA code is copied from the report template to the generated reports but NEVER executed for security reasons. Qlik NPrinting 17, at the moment, doesn't support Office macros.

Qlik NPrinting is designed to deliver reports via email without the needs to create Office macros. So please evalute to develop a full Qlik NPrinting solution to send your reports without using macros.

Qlik NPrinting 16 tutorials are available at the page QlikView Resource Library, then click on Qlik NPrinting on the left column.

Best Regards,

Ruggero

---------------------------------------------

When applicable please mark the appropriate replies as CORRECT. This will help community members and Qlik Employees know which discussions have already been addressed and have a possible known solution. Please mark threads as HELPFUL if the provided solution is helpful to the problem, but does not necessarily solve the indicated problem. You can mark multiple threads as HELPFUL if you feel additional info is useful to others.

lech_miszkiewic
Honored Contributor III

Re: Macro QlikView que usa un ciclo para enviar correos no funciona en servidor NPrinting - QlikView Macro Using Cycle to Send Mail Does Not Work on NPrinting Server

I suggets you make a Windows session 0 visible (google how to do it) and see where is your NPrinting process stopped in executing QlikVIew macro..

As an alternative yo umay want to login to QlikView server as a NPrinting Server accont and run manual NPrinting task as this user and see if it hass all required privilages to run macros.

cheers

Lech

felipessj
New Contributor II

Re: Macro QlikView que usa un ciclo para enviar correos no funciona en servidor NPrinting - QlikView Macro Using Cycle to Send Mail Does Not Work on NPrinting Server

Gracias por sus respuestas,

La version de NPrinting utilizada es la que tenemos como empresa, está fuera de mi manos actualizar la version.

En cuanto al uso de macros, es la opción que tenía en el momento.

La solución que encontré al problema es ejecutar un .exe que realice el envío de correos una vez finalizado el proceso de creación de reportes.

---------------------------------------------------------------------------------------------------------------------------------------------------------------


Thank you for your answers,

The version of NPrinting used is the one we have as a company, it is out of my hands to update the version.

As for the use of macros, it is the option that I had at the time.

The solution that I found to the problem is to execute an .exe that performs the sending of emails once the process of creating reports has finished.

felipessj
New Contributor II

Re: Macro QlikView que usa un ciclo para enviar correos no funciona en servidor NPrinting - QlikView Macro Using Cycle to Send Mail Does Not Work on NPrinting Server

Estimados,

Al final si pude realizar el proceso de envío de correos con mi versión de NPrinting.

Todo era causa de desconocimiento.

Para hacerlo posible use la herramienta de Nprinting para obtener los destinatarios desde un objeto (tabla) QlikView, usando la opción QlikView Entity.

La tabla debe tener como mínimo esta información y debe ser establecida en el asistente de NPrinting de la siguiente manera:

Email -> correo de la persona

Filter1 -> dato de la persona que se usa en el ciclo de creación del informe.

Group1 -> Agrupación al cual pertenece esa persona (vendedores, ejecutivos, gerentes, etc.)

FullName -> Nombre de la persona

El importar destinatarios debe ser establecido como una tarea previa a la creación de los informes.

Para enlazar estos destinatarios con los informes, en la opción de tarea, pestaña destinatarios, se debe colocar el grupo al cual pertenecen los destinatarios,

NPrinting se encarga de enviar el correo a quien corresponda.

Recuerden activar la opción enviar correo electrónico.

Espero que les sirva este ultra resumido tutorial.

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

Dear,
In the end if I could perform the process of sending emails with my version of NPrinting.
Everything was cause of ignorance.
To make this possible, use the Nprinting tool to obtain the recipients from a QlikView object (table), using the QlikView Entity option.

The table must have at least this information and must be established in the NPrinting wizard as follows:
Email -> person's email
Filter1 -> data of the person used in the report creation cycle.
Group1 -> Group to which that person belongs (salespersons, executives, managers, etc.)
FullName -> Name of the person

Importing recipients must be established as a task prior to the creation of the reports.

To link these recipients with the reports, in the task option, recipients tab, the group to which the recipients belong must be placed,
NPrinting is responsible for sending the mail to whom it may concern.

Remember to activate the option to send email.

I hope you can use this ultra-short tutorial.

Community Browser