Cómo utilizar Regex para definir el dominio o los dominios que inyectan WalkMe.
Directrices generales
Regex debe ser lo más específico posible, pero también lo suficientemente general como para funcionar en diferentes páginas. Para lograr este equilibrio, utiliza prefijos específicos del cliente.
- Ejemplo:
- URL: walkme.my.salesforce.com
- Regex: .*walkme.my.salesforce.com.* en lugar de .*salesforce.com.*
El Regex para cada entorno debe ser diferente. Los prefijos también son útiles aquí.
- Ejemplo:
- URL de producción: na3.salesforce.com.
- URL del Sandbox: cs23.salesforce.com.
- Regex de producción: .*na.*.salesforce.com.*
- Sandbox Regex: .*cs.*.salesforce.com.*
Comienza y termina cada cadena de regex con .*.
- Ejemplo: .*salesforce.com.*
En lugar de utilizar dígitos, utiliza .*. Reemplaza cualquier número en una URL con .*.
- Ejemplo:
- URL: cs23.salesforce.com
- Regex: .*cs.*.salesforce.com.*
Asegúrate de poner un \ antes de cada punto.
- Ejemplo: .*salesforce \. com.*
No es necesario que se escapen los guiones.
- Ejemplo:
- No utilices: .*panasonic\-\-full\.salesforce\.com.*
- Utiliza:.*panasonic--full\.salesforce\.com.*
Para incluir una URL con dos o más prefijos diferentes (primero|segundo|tercero|etc.) donde se encuentren los prefijos.
- Ejemplo:
- URLs: walkme.salesforce.comandsandbox.salesforce.com
- Regex: .*(walkme|sandbox).salesforce.com.*)
Para que el regex excluya una palabra, consulta el siguiente ejemplo, donde deseas crear una extensión con una cuenta de editor en Salesforce Classic y otra en Salesforce Console.
- Ejemplo:
- Regex clásico de Salesforce: .*cs.*.salesforce.com(?!console).*
- Nota: Esta (?!consola) excluye la palabra consola del regex.
- Consola de Salesforce regex: .*cs.*.salesforce.com/console.*
- Regex clásico de Salesforce: .*cs.*.salesforce.com(?!console).*
Para incluir más de un regex en un paquete, coloca un | entre cada regex sin espacios.
- Ejemplo: .*cs.*.salesforce.com.*|.*cs.*.visual.force.com.*
Asegúrate de nunca dejar dos || consecutivos en un paquete, ya que esto causará una lista de coincidencias y generará errores en ciertos sitios.
Regex reconoce las mayúsculas y minúsculas. Asegúrate de que coincida el caso correcto de la URL dentro del regex.
Regex de dominio más estricto.
Puede haber un escenario en el que debas "ajustar" el regex para excluir un marco específico. Por ejemplo, es posible que desees que WalkMe solo inyecte en un iFrame específico, pero el dominio de ese iFrame se incluye en muchos otros iFrames como referencia.
Ejemplo de dominio de iFrame en el que deseas que aparezca WalkMe:
- https://visual.force.com/1000
Ejemplo de dominio de iFrame en el que estamos intentando evitar que WalkMe se inyecte:
- salesforce.com/referrer?=https://visual.force.com/1000
Para especificar que el regex debe estar al principio de la URL, utilizamos:
- ^https?://[^/]*(visual.force).com
Al utilizarlo, este WalkMe solo inyectará en el https://visual.force.com iFrame si es la primera parte de la URL.
Consejos Regex específicos de la plataforma
A menudo se nos pide que configuremos una serie de extensiones que son estándar.
Salesforce
Es extremadamente importante crear extensiones de Salesforce cuidadosamente y probarlas en una serie de escenarios de prueba debido a la variación en la plataforma entre las páginas y la presencia de muchos iFrames de análisis que ocupan 0px.
Crear la extensión
- Utiliza un regex negativo para evitar el servidor de sesiones y otras inyecciones innecesarias: (?!/(login/sessionserver|s.gif).
- Utilizar la lógica "O" dentro del paquete es más eficiente que crear dos extensiones separadas.
- "na" puede ser "ap", "eu" o "cs" dependiendo de la ubicación geográfica del servidor de Salesforce, pero generalmente no cambia, así que sigue con la URL que tienes.
- nameansNorthAmerica,apmeansAsia-Pacífico,andeumeansEurope, Middle East o Africa.csrepresenta un entorno de sandbox.
- El número junto al código de 2 letras indica la instancia del servidor en el país asignado. Esto puede cambiar al cargar un nuevo entorno o actualizar uno existente.
- Puedes ver el estado de salud de los servidores de Salesforce en http://trust.salesforce.com/trust/instances
Pruebas de la extensión
- Pide al CSM que proporcione una página "pesada" con mucho contenido o, alternativamente, una página importante en la implementación y asegúrate de que funcione bien allí.
- Verifica que la extensión no se esté inyectando en demasiados iFrames utilizando la Herramienta de Diagnóstico de Extensiones Principal.
Prueba
Sitio web | URL de ejemplo | Regex sugerido |
Salesforce Classic | https://panasonic--fullcopy.cs24.my.salesforce.com/ https://panasonic--fullcopy--field-trip.cs24.visual.force.com/ |
.*customername.*.cs.*.my.salesforce.com.*|.*cs.*.salesforce.com/(?!console).*|.*cs.*.visual.force.com.* |
Salesforce Lightning | https://cs24.lightning.force.com/ | .*cs.*.lightning.force.com.* |
Consola de Salesforce | https://cs6.salesforce.com/console?tsid=02u50000000e56v | .*cs.*.salesforce.com/console.* |
Producción
Sitio web | URL de ejemplo | Regex sugerido |
Salesforce Classic | https://panasonic.my.salesforce.com/home/home.jsp https://panasonic--c.na34.visual.force.com/ |
.*customername.my.salesforce.com.*|.*na.*.salesforce.com/(?!console).*|.*na.*.visual.force.com.* |
Salesforce Lightning | https://na34.lightning.force.com/ | .*na.*.lightning.force.com.* |
Consola de Salesforce | https://na2.salesforce.com/console?tsid=02u50000000e56v | .*na.*.salesforce.com/console.* |
Workday®
Prueba
URL de ejemplo | Regex sugerido |
impl.workday.com/tripadvisor/d/home.htmld | .*impl.workday.com/customername.* |
Producción
URL de ejemplo | Regex sugerido |
https://www.myworkday.com/sunbeltrentals/login.flex | .*myworkday.com/customername.* |
SuccessFactors
Prueba
URL de ejemplo | Regex sugerido |
https://hcm4preview.sapsf.com/ | .*hcm.*preview.sapsf.com.* |
Producción
URL de ejemplo | Regex sugerido |
https://performancemanager5.successfactors.com/ | .*performancemanager.*.successfactors.com.* |
Distinguir entre URL similares pero diferenciadas de forma crítica.
Al configurar una extensión, a menudo necesitarás varios paquetes para diferentes plataformas, por ejemplo, uno para Salesforce (SFDC) y otro para Service Cloud. En tales casos, la extensión del navegador utilizará regex para diferenciar entre plataformas e inyectar diferentes fragmentos en estas diferentes plataformas según corresponda. En el SFDC Service Cloud hipotético, podríamos utilizar Regex para diferenciar entre estas plataformas de la siguiente manera:
URL normal de SFDC:
URL normal de Service Cloud:
Declaración Regex para que la extensión capture cualquier URL de Service Cloud:
- .*cs2.salesforce.com/console.*
Esto se basa en la aparición del término "consola" inmediatamente después del dominio salesforce.com.
Debido a que una diferencia clara entre la URL de Service Cloud y la URL de SFDC es la aparición de la palabra "consola" inmediatamente después de "salesforce.com", podemos utilizar esto para nuestra ventaja.
Utilizando los símbolos Regex "?!", podemos distinguir todas las instancias de "salesforce.com" que no están seguidas de la palabra "consola" y, dadas nuestras dos URL base, sabemos que serán URL SFDC.
SFDC regex:
- .*cs2.salesforce.com/(?!console).*
Aquí, "?!console" significa cualquier URL que posea los elementos en este regex, donde "consola" NO aparece en esta posición en la expresión.
Esto no coincidirá https://cs2.salesforce.com/console?tsid=02u50000000e56v, pero no coincidirá. https://cs2.salesforce.com/home/home.jsp?tsid=02u0000000000hV.se