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
|