3 Replies Latest reply: Nov 2, 2017 11:19 AM by Felipe Gonzalez RSS

    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

    Felipe Gonzalez

      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