El otro día estábamos ya a punto de poner a nuestro primer cliente en productivo con nuestra aplicación SaaS (CAP, SAPUI5, Hana Cloud, CPI, … ), habíamos creado un tema corporativo muy bonito y de repente cuando vamos a asignarlo en el Fiori Launchpad no nos aparece por ningún lado la posibilidad de asignar los temas de cliente que habíamos creado en el Theme Designer.
Entonces aparecieron las situaciones y frases de siempre: “pero si ayer funcionaba”, “en los otros entornos iba como la seda” y las caras de incredulidad de los que no tienen mucha idea de cómo funcionan estos proyectos.
Entonces me puse manos a la obra a ver por qué el servicio de portal estándar (no el servicio Launchpad ya que hasta ahora no permite el formato SaaS) no era capaz de traer los temas de cliente.
Al final, encontré el problema. Resulta que habíamos pasado a la versión SAPUI 1.100, bueno y ¿qué pasa?, tampoco tiene mucho cambio de la 1.99 a la 1.100 ¿verdad? Pues lo importante es que ahora el segundo número de la versión tiene 3 dígitos.
El código estándar mira la versión de SAPUI al llamar al repositorio de temas para pasarle una etiqueta “Fiori_3” si es de una versión superior a la 1.65, y si no, le pasa “Fiori_2” y, evidentemente a estas alturas, nuestros temas eran de Fiori 3.0.
Para chequear esa versión utilizan una expresión regular (Regex) que no tenía en cuenta que podía aparecer el tercer dígito, por lo que nuestras lamentaciones indicando que hasta ayer funcionaba correctamente tenían mucho sentido.
Es decir, estaban utilizando /^(1.65.[0-9][0-9]?)|((1.([6-9][5-9])|([7-9][0-9]))|([2-9].[0-9][0-9]?)).[0-9]+$/.test(e), en lugar de /^(1.65.[0-9][0-9]?)|((1.([6-9][5-9])|([7-9][0-9]))|([2-9].[0-9][0-9]?)).[0-9]+|((1.[0-9][0-9][0-9].[0-9]+))$/.test(e). Está claro, ¿no?
Y todo esto para introducir un poco de lo que os quiero hablar en un par de posts, de las expresiones regulares (Regex).
¿Qué es una Expresión Regular (Regex)?
Básicamente, una expresión regular es un patrón que describe una cierta cantidad de texto.
El ejemplo típico son los correos electrónicos, que como sabéis comienzan por un nombre de usuario (combinando letras y números), seguido de @, del dominio (otra combinación de letras y números) y por último la extensión (un punto seguido de letras).

Esto que estamos indicando en el párrafo anterior es lo que describe un patrón Regex, la diferencia es la sintaxis.
¿Por qué Usar Regex?
Todos los principales lenguajes de programación utilizan expresiones regulares (C ++, PHP, .NET, Java, JavaScript, Python, Ruby y muchos otros). Como desarrollador de front-end siempre debes trabajar con strings para validar los datos ingresados por el usuario, validar formatos de URL, reemplazar palabras en párrafos, etc.
Los usos principales de los patrones Regex son buscar elementos dentro de un gran texto, reemplazar unas secuencias por otras, validar entradas de usuario, reformatear texto, etc …
La mejor manera de crear patrones Regex es usar la estrategia «divide y vencerás»: divide tu Regex en varios Regex más pequeños, y luego combínalos todos. Además te recomiendo utilizar una herramienta de prueba online para su verificación ya que la expresión se puede complicar bastante.
En la siguiente entrada iremos viendo la sintaxis en detalle, perdón por la tardanza y hasta el próximo.
Deja una respuesta