La estructura del script de consulta SQL

Desplázate hacia abajo para ver la estructura del script de consulta SQL. Puedes renderizar un archivo de script para cada Usuario de Base de Datos de Autorespuesta, el cual es capaz de enviar mensajes SMS si siguen el script. El archivo trabaja con cada mensaje entrante y selecciona mensajes salientes de acuerdo al filtro.

Introducción

Observa el archivo de script. Puedes ver que está dividido en secciones separadas por líneas vacías (Figura 1). Puedes escribir tantas secciones como desees sin límite máximo. Las secciones se leen secuencialmente y la primera sección que coincida con el SMS entrante será usada para crear el mensaje SMS de respuesta.

La primera línea de cada sección es la condición de filtrado, y las siguientes una o más sentencias SQL son llamadas acción. Las sentencias SELECT de SQL pueden devolver uno o más mensajes de respuesta. Si la condición de filtrado coincide con los datos del mensaje entrante, llama a las sentencias para ser ejecutadas hasta que se encuentre una línea vacía. En este caso no verificará otras secciones.

puedes ver las condiciones filtradas y las sentencias SQL en este ejemplo
Figura 1 - Puedes ver las condiciones filtradas y las sentencias SQL en este ejemplo

Condición

Cada sección comienza con una condición que consiste en una sola fila dividida en dos partes (Figura 2)

la primera línea de cada sección se llama: condición
Figura 2 - La primera línea de cada sección se llama: condición

La primera parte es el selector de objetivo de coincidencia, un solo carácter que determina qué parte del mensaje entrante debe ser filtrada (Figura 3). FONT style="font-size:15px;">Puedes seleccionar un carácter selector de objetivo de coincidencia de las siguientes opciones:

# Opciones de condición:
#     n - si el número de teléfono del remitente coincide con el patrón
#     m - si el texto del mensaje coincide con el patrón
#     k - si la palabra clave coincide con el patrón. (La palabra clave es la primera palabra 
#         del mensaje. La palabra clave se convierte a mayúsculas)
Figura 3 - Selectores de objetivo de coincidencia

La segunda parte es el patrón de coincidencia que es el filtro de caracteres (Figura 4).

Estos ejemplos de patrón de coincidencia funcionan en el objetivo de mensaje 'm':
m.* - coincide con cualquier mensaje de texto
m^abc.* - coincide si el mensaje de texto comienza con 'abc' o 'ABC'
m.*abc.* - coincide si el mensaje de texto contiene 'abc' o 'ABC'
Figura 4 - Ejemplos de patrón de coincidencia

Aquí puedes encontrar un tutorial de expresiones regulares para los patrones de coincidencia disponibles.

Acción

Cada filtro de condición es seguido por una acción que consiste en sentencias SQL.

Solo puedes enviar mensajes SMS con consultas SELECT de SQL, pero también puedes ejecutar sentencias INSERT y UPDATE. Ten en cuenta que el 1er parámetro del conjunto de resultados SELECT es el destinatario del mensaje a enviar, mientras que el 2do parámetro es el mensaje en sí. En la Figura 5 puedes ver algunos ejemplos.


k^RED
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
Figura 5 - Ejemplos de sentencias SQL donde el destinatario es el '$sender'

Las siguientes palabras son reemplazadas en las sentencias SQL:
PalabrasValor
$originatorEl número de teléfono desde el que se envió el mensaje.
$sender=$originator (El $sender es otro nombre para el $originator.)
$recipientEl número de teléfono al que se envió el mensaje.
$receiver=$recipient (El $receiver es otro nombre para el $recipient.)
$messagedataEl texto del mensaje.
$keywordLa 1ra palabra en el mensaje. Esta palabra se llama palabra clave.
$afterEl texto restante después de la palabra clave.
$senttimeUna marca de tiempo que muestra cuándo se envió el mensaje.
$receivedtimeUna marca de tiempo que muestra cuándo se recibió el mensaje.
$messagetypeEl tipo de mensaje, que en la mayoría de los casos es 'SMS:TEXT'.
$idUna cadena única. Identifica cada mensaje en Ozeki SMS Gateway.
$operatorNombre del proveedor de servicios. Recibe el mensaje en Ozeki SMS Gateway.
$1La 1ra palabra en el mensaje.
$2La 2da palabra en el mensaje.
$3La 3ra palabra en el mensaje, etc...

Cada sentencia SQL es ejecutada línea por línea hasta que el intérprete alcanza una línea vacía, donde finalmente se detiene.

(Consejo: Solo puedes obtener el contenido del mensaje de respuesta usando sentencias SELECT.)

Respuesta

El conjunto de resultados de la sentencia SELECT contiene los mensajes a ser reenviados o respondidos. El número de filas que encuentres en el conjunto de resultados determinará el número de mensajes a enviar. (Figura 6)

El conjunto de resultados puede contener los siguientes parámetros:
recipient - La 1ra columna del conjunto de resultados (Obligatorio)
messageData - La 2da columna del conjunto de resultados (Obligatorio)
messageType - La 3ra columna del conjunto de resultados (Opcional)
sender - La 4ta columna del conjunto de resultados (Opcional)
operatorNames - La 5ta columna del conjunto de resultados (Opcional)

Figura 6 - El Usuario de Base de Datos de Autorespuesta de Ozeki 10 SMS Gateway enviará mensajes SMS desde los resultados.

Ejemplo

Observa un ejemplo de cómo filtrar la 1ra palabra en cada mensaje entrante y cómo realizar acciones separadas en cada uno. La acción depende de si la palabra es 'RED', 'BLUE' u otra. Los caracteres en mayúsculas y minúsculas se consideran iguales. (Figura 7)

k^RED
INSERT INTO log (sender,message) VALUES ('$sender','$messagedata')
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='red'
#El primer filtro verifica si la palabra 'RED' era la palabra clave.
#Si es verdadero, INSERTA el mensaje en la tabla 'log'
#y SELECCIONA 'Red is a good colour.' como mensaje de respuesta.
#Si es falso, pasa al siguiente filtro.

k^BLUE
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='blue'
#El segundo filtro verifica si la palabra 'BLUE' era la palabra clave.
#Si es verdadero, SELECCIONA 'Blue is not the best option.' como mensaje de respuesta.
#Si es falso, pasa al siguiente filtro.

k.*
SELECT '$sender',msg FROM autoreplymessage WHERE keyword='default'
#El tercer filtro aceptará cualquier otra palabra clave.
#SELECCIONA 'There is no data for this keyword.' como mensaje de respuesta.
Figura 7 - Ejemplo de script de consulta SQL

Observa las tablas SQL encontradas en las Figuras 8 y 9 para examinar el siguiente ejemplo:

id          keyword                        msg
----------  ------------------------------ -------------------------------------
 1          default                        There is no data for this keyword.
 2          red                            Red is a good colour.
 3          blue                           Blue is not the best option.
 
Figura 8 - Tabla 'autoreplymessage'

id          sender                         message
----------  ------------------------------ -------------------------------------
 1          +3620123456                    red Hello Autoreply Database User
 2          +3670654321                    red Good day to you Recipient
Figura 9 - Tabla 'log' para mensaje entrante

More information