DLL ActiveX: reporte de entrega de mensajes SMS

SDK-DLL-Activex

1. Descripción

Esta DLL te ofrece una serie de objetos y métodos con los que podrás realizar los envíos de forma muy sencilla sin tener que implementar un código complicado.  En este documento explicamos obtener los reportes de entrega de los mensajes realizados.

2. Documentación

 

Creación del objeto e instancia:

Primero debemos iniciar una instancia de la DLL en nuestro programa, para posteriormente llamar a la clase

Dim oDMEnvio As Object
Set oDMEnvio = Nothing
Set oDMEnvio = CreateObject("dcXMLSend.XMLSendClass");

De esta forma, el objeto oDMEnvio, nos permitirá interactuar con la plataforma de Descom SMS.

 

Configuración de la autentificación

Definiremos la autentificación a la Plataforma de Descom Mensajes SMS, asignando los siguientes parámetros:

oDMEnvio.Usuario = “nombre_de_usuario”
oDMEnvio.Clave = “contraseña_de_acceso”

 
Configurar filtro de búsqueda:

Podemos obtener el reporte de mensajes enviados, en función de unos criterios de búsqueda, para ello debemos crear una instancia de la clase dcXMLSend.ReportFiltro, con la cual definiremos las condiciones de busquedas. Esta clase admite las siguientes propiedades que usaremos para definir los distintos criterios de búsqueda:

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
PeriodoFecha

Periodo de fecha de la que vamos a obtener los mensajes.

  • Dia (por defecto)
  • Semana
  • Mes
  • Todo
  • SeleccionarRangoFecha (ver siguiente)
ePeriodo

AsignarPeriodoFecha

Función con 2 parámetros, Fecha Inicio y Fecha Fin

Esta función requiere de estos 2 argumentos de tipo date Date

MaxNumeroResultados

Máximo número de mensajes a obtener en una sola consulta.

1, 2, ..., 99 (por defecto 15) Int
nDesde

punto desde donde obtener registros, comenzando en 1

1, 2, 3, ... Long
Orden

Define el orden en que se mostrará los resultados por fecha

  • Ascendente
  • Descendente
eOrder
Busqueda

Función para define el criterio de búsqueda, según los parámetros opcionales. Cualquier parámetro vacío, no se tendrá en cuenta en los criterios de búsqueda.

Argumentos de la función:
  • 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; Según 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)

 

Enviar la petición

Una vez formalizada la autentificación y definido los filtros de los mensajes a obtener, solicitaremos la información de los reportes con el siguiente comando reportmensajes:

Esta función retorna un objeto de la clase ReportResultMensajes, la cual contiene toda la información de retorno de la solicitud.

Dim Filtro As Object 
Set Filtro = CreateObject("dcXMLSend.ReportFiltro")
'Definir aquí los filtros
Dim resultado As ReportResultMensajes
Set resultado = sms.reportmensajes (filtro)

 

Analizar la Respuesta

Respuesta de Autentificación y saldo

Para analizar el resultado de la consulta, debemos analizar la clase ReportResultMensajes que hemos obtenido, estos son los parámetros de dicha clase:

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato
Autenticado

Con este parámetro averiguaremos si nos hemos autentificado correctamente en la plataforma

  • true;  correcto
  • false; en caso de error
Bool
Comentario

Texto descriptivo del error al conectar con la plataforma

String
HayError

Nos dirá si hay algún tipo de error en la consulta

  • true; hay un error
  • false; sin errores
Bool

ErrorDescripcion

Texto descriptivo del error en la consulta

String

nTotal

Número de mensajes localizados en la plataforma según criterios.

0, 1, 2, ... Long

nFilas

Número de mensajes obtenidos en la consulta.

0, 1, 2, ... Int

Mensajes

Colección de mensajes obtenidos en la consulta.

Collection

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



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

Nombre
Parámetro
Descripción Posibles Valores Tipo de
Dato

idSend

Identificativo del mensaje en la plataforma

1, 2, 3, ... String

NM

Número de mensaje en la colección.

1, 2, 3, ... String
NMens Número de SMS enviados para enviar el mensaje. 1, 2, 3, ... String

Estado

Estado de entrega de los mensajes

  • 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

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.

Movil Número de móvil del destinatario. String
Remitente Remitente del mensaje enviado. String
NombreContacto

Nombre del contacto al que se le envío el mensaje, si estuviese dado de alta en la agenda de Descom SMS.

String
ApellidosContacto

Apellidos del contacto al que se le envío el mensaje, si estuviese dado de alta en la agenda de Descom SMS.

String

 

3. Ejemplos y Descargas

Pulsa aquí para descargar la DLL de Descom Mensajes SMS, documentación y ejemplos de uso.

 

Ejemplo en VB 6

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

 

 

4. Gráfico

Interfaz DLL para enviar SMS