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

GrupoFuncionesQué resuelven
Variables y datosvariable, parametro, tabla, xml, xmlInner, xmlComo, get, setLeer 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.
Textoizquierda, derecha, trim, longitud, ancho, reemplazar, rellenar, vacioRecortar, limpiar, medir, reemplazar con expresión regular, rellenar a ancho fijo, preguntar si un campo vino vacío.
Fechahora, cfecha, fechaHoy, fechaSumaFecha 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 formatoformato, secuencia, consecutivo, decimal, base, hexFormato con máscara (#,##0.00), secuencia en memoria, consecutivo persistente que nunca se repite, cambio de base, carácter por código.
Cripto y seguridadcifrar, encripte, desencripte, encriptePIN, toB64, fromB64Huella SHA-1, secretos stxGo, PIN por XOR, Base64.
DecisióndecisionValor si la condición es verdadera, otro si no.
Tiempo de ejecucióntiempoRestante, PuntoNoRetorno, DelayPresupuesto 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.

TimeOut del canal = presupuesto de tiempo del procesoPaso 1Paso 2Gateway contiempoRestante()Paso irreversibleFinPuntoNoRetorno(ms)=1si ya no alcanza el tiempo,se desvía el flujosi cruza, el proceso termina completoaunque el tiempo se agote
El motor no corta pasos por su cuenta: el proceso decide con tiempoRestante() y PuntoNoRetorno().

Transformaciones XSL

Los nodos Transformation usan XSLT 1.0 con XPath completo: substring, concat, contains, translate, normalize-space, format-number, number, sum, count, position.