Saltar enlaces

Enviar SMS con FileMaker y el plugin MBS.

Pasarela SMS smstrade

Envío de mensajes SMS con FileMakerEn este artículo técnico, explicamos cómo enviar mensajes SMS directamente desde su aplicación FileMaker mediante el plugin MBS.Base de datos desde el programa. Para ello, creamos un script parcial que puede enviar cualquier mensaje SMS a cualquier destinatario llamándolo con cinco parámetros. En este ejemplo, utilizamos el proveedor alemán smstrade como pasarela para el envío de mensajes SMS.

Este servicio ofrece el envío de mensajes SMS a redes alemanas a partir de 1,6 céntimos por mensaje; se pueden enviar mensajes SMS a todo el mundo a precios a partir de 4,9 céntimos por mensaje, más 19% de IVA en cada caso. Tras el registro, se dispone de 30 SMS gratuitos para empezar, que pueden enviarse a modo de prueba. Con este proveedor no hay cuota básica mensual. A continuación aprenderá cómo puede enviar mensajes SMS automáticamente directamente desde su base de datos FileMaker.

Inscripción en smstrade

Para poder enviar mensajes SMS a través de la pasarela SMS, primero debe registrarse en smstrade. El registro es gratuito e incluye el envío de hasta 30 mensajes SMS gratis para empezar.
Pasarela SMS smstrade

Datos maestros de la pasarela SMS

En primer lugar, se necesitan tres campos en su base de datos FileMaker para contener los datos de acceso y los datos maestros de la pasarela SMS. Estos campos se aplican globalmente para su uso en toda la solución FileMaker. Como alternativa, también puede utilizar variables globales en lugar de campos, que se crean en un Guión debe estar inicializado. Los siguientes campos son necesarios para los datos maestros con el fin de enviar mensajes SMS:

  • Remitente - Identificación del remitente del SMS, por ejemplo "0049123456789" o "+49123456789".
  • Llave de acceso - Clave de la pasarela, que recibirá tras registrarse en smstrade.de.
  • Ruta - smstrade ofrece tres opciones de tarifas:
    • básico para enviar mensajes SMS dentro de Alemania
    • oro para envíos a todo el mundo con cualquier identificación de remitente
    • directo para envíos a todo el mundo directamente a través del operador de red

Cree tres campos o variables globales en su base de datos a los que pueda acceder en toda su solución. Después de registrarse en smstrade, introduzca los datos maestros en los campos correspondientes. Para enviar mensajes SMS dentro de Alemania, recomendamos la opción de tarifa "básica".

El script para enviar SMS

En el siguiente paso, programaremos un script con el que podrá enviar cualquier mensaje SMS a cualquier destinatario de toda la base de datos. El script se puede llamar posteriormente con los siguientes cinco parámetros de script:

  • Receptor - Número de teléfono del destinatario, por ejemplo "0049123456789" o "+49123456789".
  • Texto - Texto del mensaje SMS (hasta 1.530 caracteres como SMS enlazado)
  • Remitente - ID del remitente, suele generarse a partir del campo de datos maestros.
  • Llave de acceso - Clave de puerta de enlace, suele generarse a partir del campo de datos maestros.
  • Ruta - Ruta (tarifa), suele generarse a partir del campo de datos maestros.

Si crea campos "Remitente", "Clave de puerta de enlace" y "Ruta" a partir de campos de datos maestros, el script debe comprobar primero si estos campos también se han actualizado. Por esta razón, nuestro script contiene una consulta correspondiente al principio. A continuación encontrará el script completo para enviar mensajes SMS con la ayuda del plugin MBS FileMaker.

Pasar parámetros de script

Cuando se llama a este script, se pasan cinco parámetros de script en una cadena cuyos valores están separados por un apóstrofo (|). Para separar la cadena, utilizamos un Función propia llamado "StringTrennen". Para poder utilizar el script como se muestra, cree primero lo siguiente Función personalizada (función independiente) en FileMaker Pro Advanced:

StringDisconnect (Cadena; Número)

Si(número = 1;
   CharacterLinks ( String; (Posición ( String; "|"; 1; 1))-1);
CharacterCentre ( String;
(Posición ( Cadena; "|"; 1; Número-1))+1;
(Posición ( Cadena; "|"; 1; Número)) - ((Posición ( Cadena; "|"; 1; Número-1))+1)
)
 )

Script para el envío de SMS

Si ha insertado la función personalizada mencionada anteriormente o tiene otra función personalizada que pueda extraer cadenas separadas por un carácter, cree una nueva secuencia de comandos en el editor de secuencias de comandos y nómbrela como subíndice según su esquema de nomenclatura personal (por ejemplo, 'ts.SMS_Versand').

Si [NOT IstLeer(Remitente) AND NOT IstLeer(Clave) AND NOT IstLeer(Ruta)]
   Parámetros #Script: Tel | Texto | De | Clave | Ruta
   Establecer variable [$tel_nr; Valor:StringTrennen(Get(ScriptParameter); 1)]
   Establecer variable [$text; Valor:StringDisconnect(Get(ScriptParameter); 2)]
   Establecer variable [$from; Valor:StringDisconnect(Get(ScriptParameter); 3)]
   Establecer variable [$key; Valor:StringDisconnect(Get(ScriptParameter); 4)]
   Establecer variable [$route; Valor:StringTrenn(Get(ScriptParameter); 5)]
   #
   # Inicializar transferencia
   Establecer variable [$r; Valor:MBS("Traza")]
   Establecer variable [$to; value:MBS("String.EncodeURLComponent"; $tel_nr; "utf8")]
   Establece la variable [$from; value:MBS("String.EncodeURLComponent"; $from; "utf8")].
   Establecer variable [$body; Value:Exchange(MBS("String.EncodeURLComponent"; $text; "utf8"); ""; "+")].
   Establecer variable [$curl; Valor:MBS("CURL.New")]
   Establecer variable [$result; value:MBS("CURL.SetOptionpost"; $curl; 1)].
   Establecer variable [$result; Value:MBS("CURL.SetOptionVerbose"; $curl; 1)].
   Establecer variable [$result; Value:MBS("CURL.SetOptionURL"; $curl; "https://gateway.smstrade.de")]
   #
   # Introducir datos XML y SMS
   Establecer variable [$content; valor: "key=" & $key & "&" & "to=" & $to & "&" & "message=" & $body & "&" &
   "route=" & $route & "&" & "from=" & $from & "&" & "charset=utf-8"].
   Establecer variable [$content; Value:MBS("String.ReplaceNewline"; $content; 2 )]
   Establecer variable [$result; Value:MBS("CURL.SetOptionPostFields"; $curl; $content)].
   #
   # Iniciar transferencia
   Establecer variable [$result; Value:MBS("CURL.Perform"; $curl)]
   #
   # Comprobar resultado
   Establecer variable [$$debugText; Value:MBS("String.ReplaceNewline"; MBS("CURL.GetDebugAsText"; $curl);1)].
   Establecer variable [$$resultText; Value:MBS("String.ReplaceNewline"; MBS("CURL.GetResultAsText"; $curl);1)].
   Establecer variable [$r; valor:MBS("CURL.Cleanup"; $curl)]
En caso contrario
   Muestre su propio cuadro de diálogo ["Pasarela SMS no configurada"; "¡No se han introducido datos maestros!"; "OK"].
Fin (si)

En la primera parte del script, la cadena de parámetros de script pasada se extrae primero en variables individuales. En la segunda parte, el motor CURL del MBS Plugin de FileMaker se inicializa. La tercera parte compone la cadena que conduce al Servidor de la pasarela SMS se envía. El envío tiene lugar en el subíndice "Iniciar transferencia". En la última parte, el estado del envío se escribe en las variables globales $$result y $$debug y puede leerse aquí después del envío.

Descargar base de datos de demostración

Para que no tenga que teclear todo el código fuente en estilo C=64, le proporcionamos la solución descrita en este artículo en forma de Archivo de ejemplo disponible para su descarga. El archivo de muestra se encuentra en formato fmp12 y utiliza FileMaker 12, 13 o 14 con Plugin MBS FileMaker de antemano. Si no dispone de una licencia para FileMaker Pro Advanced, sino sólo para FileMaker Pro normal, puede utilizar este archivo de ejemplo, que ya contiene la función personalizada necesaria para separar la cadena de transferencia.

Descargar la base de datos SMS de muestra

Deja un comentario

  1. Suena de maravilla. ¿Existe también alguna forma de RECIBIR SMS a través de FileMaker?

    Muchas gracias,
    Matthias

Comparta esta página:

Software ERP tan flexible como su empresa.
Estaremos encantados de asesorarle.

Software ERP personalizable para Mac, Windows e iOS.

Usted se encuentra aquí: Envío de mensajes SMS con FileMaker y el plugin MBS