Diseño
Expresiones y funciones
Una asignación de tipo Expression o la condición de un gateway se escribe con el constructor de expresiones del Designer (doble clic o F2 sobre la fila).
El lenguaje tiene 36 funciones operativas, operadores aritméticos y lógicos (+ - * / = <> < > Y O) y literales entre comillas dobles. El manual completo, con ejemplo por función, está en la Referencia del Designer.
Funciones por grupo
| Grupo | Funciones | Qué resuelven |
|---|---|---|
| Variables y datos | variable, parametro, tabla, xml, xmlInner, xmlComo, get, set | Leer un campo por ruta, un parámetro del proyecto o datos de la transacción (IP, canal, proceso), una tabla de equivalencias; extraer un subárbol XML con o sin etiqueta o bajo otra etiqueta; guardar valores temporales durante la ejecución. |
| Texto | izquierda, derecha, trim, longitud, ancho, reemplazar, rellenar, vacio | Recortar, limpiar, medir, reemplazar con expresión regular, rellenar a ancho fijo, preguntar si un campo vino vacío. |
| Fecha | hora, cfecha, fechaHoy, fechaSuma | Fecha y hora actual con patrón estilo Java (yyyyMMdd, dd/MM/yyyy HH:mm:ss), conversión entre formatos, hoy más o menos N días, suma de días a una fecha. |
| Número y formato | formato, secuencia, consecutivo, decimal, base, hex | Formato con máscara (#,##0.00), secuencia en memoria, consecutivo persistente que nunca se repite, cambio de base, carácter por código. |
| Cripto y seguridad | cifrar, encripte, desencripte, encriptePIN, toB64, fromB64 | Huella SHA-1, secretos stxGo, PIN por XOR, Base64. |
| Decisión | decision | Valor si la condición es verdadera, otro si no. |
| Tiempo de ejecución | tiempoRestante, PuntoNoRetorno, Delay | Presupuesto de tiempo del proceso y pausas (abajo). |
Tres funciones existen en el lenguaje pero no operan en stxGO y el manual las marca en rojo: filtrar, mezclar y vk.
Formatos de fecha
Las letras siguen el patrón de Java: yyyy, MM, dd, HH (24 h), hh con a (12 h), mm, ss, SSS, E día de la semana. Es sensible a mayúsculas (MM mes, mm minuto). Una letra no soportada da resultado vacío sin error.
Consecutivos que no se repiten
consecutivo(nombre, inicio, incremento) numera documentos con un contador por proceso que sobrevive reinicios y caídas; se usa en una asignación (no en un gateway) y se formatea con rellenar. Puede dejar huecos si una transacción falla. El contador vive en estado/consecutivos.json; para reiniciarlo se detiene el motor y se edita el archivo.
Pausas y presupuesto de tiempo
Pausas. Delay(ms) detiene el flujo en una flecha sin llamar a ningún servidor: se declara un campo de apoyo y se le asigna la expresión. Máximo 30 segundos por vez y nunca más que el presupuesto restante.
Presupuesto de tiempo. El TimeOut del canal es el presupuesto del proceso; el motor no corta pasos por su cuenta. tiempoRestante() en un gateway permite desviar cuando ya no alcanza el tiempo, y PuntoNoRetorno(ms)=1 marca la puerta antes del primer paso irreversible: si cruza, el proceso termina completo aunque el tiempo se agote. Un proceso que nunca cabe en el canal se lleva al scheduler con su propio presupuesto.
Transformaciones XSL
Los nodos Transformation usan XSLT 1.0 con XPath completo: substring, concat, contains, translate, normalize-space, format-number, number, sum, count, position.
