Con estás funciones, podrá obtrener el informe de entrega de mensajes a los destinatarios, confirmando la recepción del mismo.

Lógicamente necesitaremos primero crear una instancia a la Dll,

Ejemplo VB6

Dim DMSMS As Object
Set DMSMS = CreateObject("dcXMLSend.XMLSendClass")

Ejemplo VB.NET

Dim DMSMS As Object
DMSMS = CreateObject("dcXMLSend.XMLSendClass")

De esta forma, el objeto DMSMS, nos permitirá realizar todo lo necesario para realizar la obtención de dichos reportes.

Definiremos la autentificación en la Plataforma de Descom Mensajes SMS;

DMSMS.Usuario = “nombre_de_usuario”
DMSMS.Clave = “contraseña_de_acceso”
DMSMS.CodCli = "Codigo de Cliente del Usuario"

Para obtener el informe de entregas de mensaje usaremos la siguiente función:

DMSMS.reportmensajes() que nos retornara los resultados mediante la clase: ReportResultMensajes, desde donde obtendremos una coleccion de los mensajes solifitados.

Cada uno de estos mensajes tendrá las siguiente propiedades de lectura:

Autentificado Con este parámetro averiguaremos si nos hemos autentificado correctamente en la plataforma True; autentificación correcta, False; error en la autentificación. Boolean
Comentario Texto descriptivo referente al error de autentificación   String
HayError No dirá si hay algún tipo de error en la consulta True; error en la petición, False; petición satisfactoria Boolean
ErrorDescripcion Texto descriptivo al error de petición.   String
nTotal Nuḿero de mensajes localizados en la plataforma según criterios. Nuḿero; 0, 1, 2, ... Long
nFilas Nuḿero de mensajes devueltos. Nuḿero; 0, 1, 2, ... Integer
Mensajes Colección de mensajes obtenidos en la consulta.   Collection

La colección Mensajes, nos devolvera cada uno de los mensajes, mediante la siguiente clase; ReportResulMensajesItem

La clase ReportResulMensajesItem, dispone de los siguientes parámetros de lectura:

idSend identificativo del mensaje en la plataforma Númerico; 0, 1, 2, ... String
NM Número de mensaje en la colección Númerico; 1, 2, 3, ... String
NMens Número de SMS enviados para enviar este mensaje. Númerico; 1, 2, 3, ... String
Estado Estado de entrega del mensaje. Estos son los posibles valores:
0 -> Sin información de envío todavía.
1 -> Enviado, sin confirmación de entrega
2 -> Entregado, con confirmación de entrega a operador o a móvil
3 -> Rechazado o información no disponible.
String
EstadoCod Código de estado si procede, para más información remita este código a Descom   String
EstadoDescripcion Texto con los detalles del estado del mensaje.   String
FechaEnviado Fecha y hora en la que se envío el mensaje.   String
FechaEntregado Fecha y hora en el que el SMS ha sido entregado al operador - Tiempo transcurrido entre el envío y la entrega   String
FechaConfirmado Fecha y hora de recepción de la confirmación de entrega. Esta confirmación es suministrada opcionalmente por el operador de telefonía.   String
Movil Móvil del destinatario   String
TextoMensaje Texto del mensaje enviado.   String
Remitente Remitente del mensaje enviado.   String
NombreContacto Nombre del contacto, si estuviese disponible en la agenda de la plataforma.   String
ApellidosContacto Apellidos del contacto, si estuviese disponible en la agenda de la plataforma.   String

A la hora de realizar la petición de informes de mensaje, podemos opcionalmente agregar unos criterios, mediante la clase: ReportFiltro.

Este filtro lo podemos asingnar en el momento de la petición del informe:

Dim Filtro As Object
Set Filtro = CreateObject("dcXMLSend.ReportFiltro")
DMSMS.reportmensajes(Filtro)

La Clase ReportFiltro dispone de las siguientes propiedades y funciones:

PeriodoFecha Periodo de fecha de la que vamos a obtener los mensajes - Dia; obtendremos los mensajes enviado este mismo día (por defecto)
Semana;Obtendremos los mensajes enviados en la semana en curso.
- Mes; para obtener mensajes del mes.
- Todo; todos los mensajes
- SeleccionarRangoFecha; podremos seleccionar un rango de fechas, ver: AsignarPeriodoFecha
ePeriodo
AsignarPeriodoFecha Funcion con 2 parámetros, Fecha Inicio y Fecha Fin. ambas variables son de tipo Date Date
MaxNumeroResultados Máximo número de mensajes a obtener en una sola consulta. 1,2, ..., 99 (por defecto 15) Byte
nDesde punto desde donde obtener registros, comenzando en 1 Por defecto; 1 Long
Orden Define el orden de busqueda. - Ascendente
- Descendente
eOrden
Busqueda Función para definirel citerio de busqueda, según los paramateros opcionales. Cualquier parametro vacio, no se tendrá en cuenta en los criterios de busqueda.

- porNombre; Según el nombre del contacto en la agenda de la plataforma (String)
- porMovil; Según el número de móvil (String)
- porLista; Según el código de pertenencia a una lista.
- porTextoDelMensaje; Segun el texto del mensaje (String)
- porIdEnvio; Para consultar el informe de entrega de un determinado mensajes, este código se lo proporciona descom a través de la propiedad Iddm cuando envía un mensaje.
- porEstado; según el estado actual del mensaje (eEstado)

 

A continuación le ofrecemos un ejemplo realizado en Visual Basic 6, debe agregar la DLL como referencia a su proyecto, extraido del ejemplo adjunto:


Me.ListView1.ListItems.Clear
Me.lblInfo.Caption = ""
Dim sms As New dcXMLSend.XMLSendClass

'Asignar datos de Autentificación
sms.Usuario = Me.txtUsuario.Text
sms.Clave = Me.txtPassword.Text
sms.CodCli = Me.txtIdCli.Text

'Crear filtro
Dim filtro As New dcXMLSend.ReportFiltro
Select Case Me.cmbPeriodo.ListIndex
    Case 0 'Dia
       filtro.PeriodoFecha = 0 'filtro.ePeriodo.Dia
    Case 1 'Semana
       filtro.PeriodoFecha = 1 'filtro.ePeriodo.Semana
    Case 2 'Mes
       filtro.PeriodoFecha = 2 'filtro.ePeriodo.Mes
    Case 3 'Todo
       filtro.PeriodoFecha = 3 'filtro.ePeriodo.Todo
    Case 4 'Personalizado
       filtro.PeriodoFecha = 4 'filtro.ePeriodo.SeleccionarRangoFecha
       filtro.AsignarPeriodoFecha Me.txtFechaInicio.Text, Me.txtFechaFin.Text
End Select
If txtNFilas.Text <> "" Then filtro.MaxNumeroResultados = txtNFilas.Text
If txtNDesde.Text <> "" Then filtro.nDesde = txtNDesde.Text
Select Case Me.cmbOrden.ListIndex
    Case 0
      filtro.Ordenacion = 0 'filtro.eOrden.Ascendente
    Case 1
       filtro.Ordenacion = 1 'filtro.eOrden.Descendente
End Select


Dim bEstado As eEstado

bEstado = Todos
Select Case Me.cmbBEstado.ListIndex
    Case 0
       bEstado = SinInformacion
    Case 1
       bEstado = EnviadoSinConfirmacionEntrega
    Case 2
       bEstado = EntregadoConConfirmacionEntrega
    Case 3
       bEstado = RechazadoOSinInformacionDeEntrega
End Select
filtro.Busqueda Me.txtBNombre.Text, Me.txtBMovil.Text, CInt(IIf(Me.txtBLista.Text = "", 0, Me.txtBLista.Text)), Me.txtBTexto.Text, Me.txtBIdEnvio.Text, bEstado

Dim resultado As ReportResultMensajes
Dim n As ReportResulMensajesItem
Screen.MousePointer = vbHourglass
Set resultado = sms.ReportMensajes(filtro)
Screen.MousePointer = vbDefault
If resultado.Autentificado Then
    If resultado.HayError = False Then
       Me.lblInfo.Caption = resultado.nFilas & " mensajes de un total de " & resultado.nTotal & " mensajes."
       For Each n In resultado.Mensajes
          Dim lt As ListItem
          Set lt = Me.ListView1.ListItems.Add(, , n.NM)
          lt.SubItems(1) = n.idSend
          lt.SubItems(2) = n.FechaEnviado
          lt.SubItems(3) = n.Movil
          lt.SubItems(4) = IIf(n.EstadoCodigo <> "", n.EstadoCodigo & "->", "") & n.Estado
          lt.SubItems(5) = n.FechaConfirmacion
          lt.SubItems(6) = n.FechaConfirmacion
          lt.SubItems(7) = n.Remitente
          lt.SubItems(8) = n.TextoMensaje
       Next
    Else

       MsgBox resultado.ErrorDescripcion
    End If
Else

    MsgBox resultado.Comentario
End If

 

 

- sms recibidos - descom mensajes sms - hosting - consultoria - desarrollo - backup -