imagen

sistemas operativos = on

de momento ...

Cosas que echaré de menos en MUMPS I

08.Dec.2018 — Julio

De viaje fuera de España, me surge la duda de si activé como día festivo el sábado 7 diciembre. Seguro que lo hice pero empiezas a dudar y a pensar en las impliciaciones de no haberlo hecho, en el estropicio que se puede preparar en la guardia de un festivo.

También en el rollo de sacar el ordenador, conectarse al wifi del teléfono, de alli por ssh a un servidor local, y entrar en la aplicación para comprobar que la fecha esté marcada con una D en lugar de una S. No apetece nada cuando ya estás metido en la cama.

Me acordé enseguida de los servicios para Telegram que implementé, y uno de ellos era que podía pedir el valor de cualquier GLOBAL de MUMPS. Y así es como mandando un telegram al servidor


global CAL(20181207)

obtuve la respuesta del valor del global y pude ver que efectivamente era el correcto. Ya me quedo más tranquilo sin necesidad de encender siquiera el ordenador.

la petición y respuestas

el contenido

Lo de los paréntesis es importante porque si pidiera por ejemplo global ALD me devolvería todo el global completo,

global ALD(20181207 solo lo de ese dia, global ALD(20181207,"A" solo los de ese día con serie "A" y así sucesivamente.

La verdad es que es de las funciones más logradas y útiles para mí, porque por ejemplo un telegram global SW me pueda dar los switches de todo el estado del sistema.

Un poco del código utilizado en MUMPS

```
S DATO=$G(@R) I DATO'="" D
. S DATO=$TR(DATO,"#","|") S DATO=$TR(DATO,"^",".")
. S ^eRETORNO(IDENR,VOY)="<tr><td>"_R_"|"_DATO_"</td></tr>" S VOY=VOY+1
F  S R=$Q(@R) Q:(R="")!('$F(R,$E(GL,1,$L(GL)-1)))  D
. S DATO=@R S DATO=$TR(DATO,"#","|") S DATO=$TR(DATO,"^",".")
. S ^eRETORNO(IDENR,VOY)="<tr><td>"_R_"|"_DATO_"</td></tr>" S VOY=VOY+1
```

Y otro poco de Lua

```
function socDisfar(host, port, peticion)
    local socket = require("socket")
    local tcp = assert(socket.tcp())
    local recibido = ""
    tcp:connect(host, port);
    tcp:send(peticion.."\r\n\r\n");

    while true do
        local s, status, partial = tcp:receive()
        recibido = recibido..(s or partial)
        if status == "closed" then break end
    end
    tcp:close()
    return recibido
end
```

Tags: MUMPS, lua, telegram

Comments? Tweet