Q-Expert es un framework visual para desarrolladores Qlik: construyes el pipeline de carga como un canvas de nodos — RAW, JOIN, MAPPING, CROSSTABLE, LOOP, IF/THEN, CALL — y Q-Expert genera la sintaxis LOAD/STORE real a partir de ese modelo. Esta guía recorre cada tipo de nodo y cada herramienta, de lo más simple a lo más complejo, con ejemplos reales tomados de la propia app.
Un canvas de nodos en vez de un editor de texto plano — cada bloque del script LOAD de Qlik (una fuente, un JOIN, una transformación) es un nodo visible y conectado, no una línea perdida en medio de 300 líneas de script.
El Developer arrastra nodos desde la paleta superior, los conecta arrastrando desde sus puertos, y configura cada uno en el Panel de Propiedades a la derecha. El canvas completo — con todas sus conexiones — es la única fuente de verdad: el script Qlik final (Generar Sintaxis) se deriva de él, nunca al revés.
Cuatro zonas fijas — Biblioteca, Canvas, Panel de Propiedades, Toolbars — más las dos barras de herramientas que controlan todo lo demás. Antes de entrar a construir nada, vale la pena saber qué hace cada una.
La columna izquierda. Registra los archivos fuente (QVD, CSV, XLSX) disponibles para el proyecto activo — + Add Files para agregar nuevos, el buscador para filtrar cuando hay muchos. Arrastra cualquier archivo desde aquí hacia el canvas para crear un nodo RAW ya apuntando a él.

El área central, donde se construye el modelo. Cada nodo es una tarjeta o un círculo arrastrable; las líneas entre ellos son el flujo de datos real. Clic en un nodo lo selecciona (y lo muestra en el Panel de Propiedades); arrastrar desde un puerto crea una conexión nueva.

La columna derecha. Su contenido cambia por completo según el tipo de nodo seleccionado — un RAW muestra pestañas Config/Columns/Expressions/Info; un JOIN muestra el tipo de combinación y sus tablas de entrada; un nodo circular pequeño (DROP, CHECKPOINT, LET/SET…) muestra su propio formulario corto. Cada capítulo de Tipos de Nodo de esta guía incluye una captura real de lo que este panel muestra para ese nodo en particular. Sin ninguna selección, queda vacío ("Click a node to configure it").

La franja superior de la aplicación — acciones a nivel de proyecto y de cuenta, no del canvas.

| Tool | Qué hace |
|---|---|
| New Project | Crea un proyecto en blanco. |
| Open Project | Abre un proyecto existente de la lista. |
| Save | Guarda el proyecto activo (deshabilitado automáticamente en los proyectos Demo). |
| Duplicate Project | Crea una copia independiente del proyecto activo. |
| Variables $(x) | Abre la lista de variables y parámetros del proyecto. |
| Project Settings | Nombre de tablas, rutas de origen, prefijos, carpeta de despliegue, encabezado de script. |
| Toggle Library | Muestra u oculta la Biblioteca. |
| Toggle Properties | Muestra u oculta el Panel de Propiedades. |
| Export QEP | Descarga el proyecto como archivo .qep. |
| Import QEP | Carga un archivo .qep a la lista de proyectos. |
| Reverse Engineering | Convierte un script Qlik existente en un canvas de nodos. |
| Generate Syntax | Genera el script Qlik LOAD/STORE final. |
| Templates | Proyectos de plantilla como punto de partida. |
| Routine Catalog | Biblioteca de subrutinas Qlik reutilizables. |
| Settings | Preferencias de toda la app — colores, prefijos, formatos, demos. |
| Report a bug | Abre el formulario de reporte de errores / sugerencias dentro de la app. |
| Sign Out / Sign In | Control de sesión de la cuenta. |
La segunda franja, debajo de la principal — crear nodos y controlar la vista del canvas. La mayoría de sus botones crean un nodo nuevo del tipo indicado (cada uno con su propio color, el mismo que lleva después en el canvas) — ver el capítulo de ese tipo de nodo más adelante en esta guía para el detalle completo. Cuando la ventana es angosta, los botones que no caben se agrupan bajo un botón ··· al final de la barra.

| Tool | Qué hace |
|---|---|
| Find (Ctrl+K) | Salta a un nodo por nombre. |
| Duplicate | Duplica el/los nodo(s) seleccionados. |
| Script Split | Crea un nodo Script Split — divide el script generado en archivos separados a partir de ese punto. |
| Toggle CHK | Marca/desmarca el nodo seleccionado para Checkpoint rápido, sin crear un nodo CHECKPOINT aparte. |
| Rename | Crea un nodo RENAME — renombra una tabla completa en el flujo (distinto del lápiz de renombrar columnas individuales). |
| Trace | Crea un nodo TRACE — imprime un mensaje de diagnóstico en el log de carga de Qlik en ese punto del flujo. |
| Qualify / Unqualify | Crea un nodo Qualify/Unqualify. |
| Zoom Out | Aleja la vista del canvas. |
| Zoom In | Acerca la vista del canvas. |
| Reset Zoom | Vuelve el zoom a 100%. |
| Auto Layout | Reorganiza automáticamente los nodos del canvas. |
| Print Canvas | Exporta/imprime la vista actual del canvas como imagen. |
| Minimap | Muestra un mapa en miniatura de todo el canvas, útil en proyectos grandes. |
Entidades, Operaciones y Control de Flujo, cada uno con su propio botón en esta barra — RAW, INLINE, AUTOGENERATE, BUSINESS, JOIN, CONCATENATE, CROSSTABLE, MAPPING, IntervalMatch, CHECKPOINT, DROP, LET/SET, SWITCH, IF/THEN, LOOP, CALL, Raw Script. Ver el capítulo de cada uno más abajo.
La Biblioteca a la izquierda registra los archivos fuente (QVD, CSV, XLSX) disponibles para el proyecto; el canvas al centro es donde se construye el modelo; el Panel de Propiedades a la derecha configura el nodo seleccionado.

La forma más rápida de aprender Q-Expert no es leer — es construir un pipeline real una vez, con la app guiándote paso a paso. Eso es exactamente lo que hace el Tutorial Guiado.
Ve a Configuración → Demos → Start Tutorial. Se abre un proyecto de práctica dedicado y un overlay con spotlight que resalta, en la app real, exactamente dónde hacer clic en cada paso — nunca una simulación aparte. Tú controlas el ritmo: Next/Back, Pausar para explorar libremente y Reiniciar, en cualquier momento.
Upper(Trim(ClienteID)) ya escrito — exploras el editor real, con sus categorías de función, antes de escribir tu propia expresión. Ver Expression Builder.
Ver también el capítulo completo: Tutorial Guiado.
La puerta de entrada de cualquier dato al modelo: un nodo RAW carga un archivo de la Biblioteca (QVD, CSV, XLSX) o una fuente RESIDENT/directa, con sus columnas, filtros WHERE y transformaciones de carga.
Cada RAW muestra en su tarjeta el número de transformaciones activas y el conteo de columnas (por ejemplo 4 tx · 9/9 cols) — una forma rápida de ver, sin abrir el panel, si el nodo ya tiene lógica aplicada o todavía es una carga directa del archivo.


Una tabla de datos escrita directamente en el canvas — sin archivo fuente — para catálogos pequeños, listas de mapeo o datos de referencia que no ameritan un QVD aparte.
Se define igual que un LOAD INLINE de Qlik: encabezados en la primera fila, valores separados por coma. Es también el destino natural de Options → Inline for Q-Expert en Q-Explorator — copia una selección de celdas allá y pégala aquí, ya con el formato correcto.


Genera una secuencia de filas sintéticas — típicamente un rango de fechas o de números — sin depender de ningún archivo externo. Es el punto de partida habitual de un Master Calendar.


Convierte una tabla ancha (una columna por mes, por ejemplo Ene, Feb, Mar…) en una tabla alta de atributo/valor — el equivalente visual al CROSSTABLE LOAD de Qlik.
Define cuántas columnas iniciales se conservan como calificadoras (el eje que no se pivotea) y el nombre que tomarán la nueva columna de atributo y la de valor resultantes.


El nodo de salida final de una rama del modelo: la tabla de negocio tal como quedará disponible para el resto de la app Qlik, con sus pestañas de configuración propias.


Las dos formas de combinar dos flujos de datos en uno: JOIN los une por columnas en común (LEFT, INNER, OUTER); CONCATENATE los apila uno sobre otro sin necesidad de columnas compartidas.
El nodo JOIN muestra el tipo de combinación elegido (por ejemplo LEFT JOIN) y una descripción corta de a dónde se fusionan los datos (merges into Fact_Ventas_TXF). Conecta dos o más nodos de entrada y el que recibe la unión queda marcado como destino.


Por defecto, el resultado de un JOIN no tiene identidad propia: el nodo TXF conectado aguas abajo absorbe los datos combinados directamente bajo su propio nombre, y no se crea ninguna tabla extra solo para el merge. Es el comportamiento de siempre, y el que conviene en la mayoría de los casos.
Marca Name the merged result cuando quieras que el JOIN en sí mismo sea una tabla real, con nombre propio, en el script generado — por ejemplo porque varios nodos distintos necesitan leer ese resultado combinado por RESIDENT, o porque quieres que el script final muestre esa tabla intermedia explícitamente en vez de que quede invisible, fusionada dentro del siguiente TXF. El campo de texto que aparece (placeholder MergedResult) es el nombre que tomará esa tabla.
Debajo de Inputs of this JOIN (o CONCATENATE) aparece cada tabla de entrada conectada, con dos controles por fila:
Embed all eligible marca de una vez todas las entradas que sí pueden incrustarse; Own table for all hace lo contrario — cada entrada vuelve a generar su propia tabla independiente.


La sección Inputs of this CONCATENATE es el mismo mecanismo, renderizado por el mismo código — las mismas casillas de incrustar, el mismo Insert filtered copy, el mismo Embed all eligible / Own table for all. La única diferencia real es que CONCATENATE no tiene "Name the merged result" propio en la misma sección (no aplica, CONCATENATE no fusiona columnas), pero por lo demás, todo lo explicado arriba para JOIN funciona igual aquí.

Una copia filtrada insertada en un JOIN o CONCATENATE es, por dentro, un nodo TXF genuino — así que su WHERE, su GROUP BY y sus columnas calculadas pueden usar $(variable) exactamente con las mismas reglas que cualquier otro TXF del canvas. Ver Usando Variables en todo el Canvas.
Cuando el JOIN/CONCATENATE (con o sin copias filtradas) vive dentro del cuerpo de un Loop (FOREACH), aplica además la propagación de variables del bucle: la variable de control del FOREACH y cualquier LET/SET declarado en ese mismo cuerpo están disponibles en el WHERE o las columnas calculadas de cualquier copia filtrada que construyas ahí — sin ninguna configuración adicional. Ver Propagación de Variables hacia Bucles.
vRegion), una copia filtrada de la tabla de Ventas con WHERE Region = '$(vRegion)' antes de unirla a Clientes — la misma lógica de filtro-por-iteración de siempre, ahora aplicada específicamente a una de las entradas del merge, no a la tabla completa.Carga una tabla de mapeo (clave → valor) para usarla después con ApplyMap() en cualquier expresión o transformación del resto del canvas — el equivalente visual al MAPPING LOAD de Qlik.


Marca una tabla para ser eliminada del modelo en memoria una vez que ya cumplió su propósito (por ejemplo, una tabla temporal usada solo como entrada de un JOIN) — el equivalente visual a DROP TABLE.


Genera una clave sintética (SK — synthetic key) a partir de una o más columnas, normalmente construida con el Key Builder para evitar claves sintéticas accidentales de Qlik entre tablas con varias columnas en común.


Persiste el estado actual del flujo a un archivo (QVD, TXT o Parquet) en un punto intermedio del modelo — útil para incremental load, depuración, o simplemente como punto de control antes de una transformación arriesgada.


Repite un subcanvas completo una vez por cada elemento de una lista — archivos de una carpeta, valores de un campo, o un rango numérico — el equivalente visual a FOR EACH … NEXT o FOR i = 1 TO n.
Al hacer doble clic (o Enter Loop) sobre un nodo LOOP se entra a su cuerpo: un canvas anidado e independiente, con su propio set de nodos, donde se construye la lógica que se repetirá en cada iteración. El botón Exit Loop en la esquina regresa al canvas padre.
La Biblioteca, las variables del proyecto raíz y los Parámetros se comparten automáticamente con el cuerpo del Loop — no hay que volver a registrar el archivo fuente ni la variable dentro del bucle. Ver Propagación hacia Bucles.



Ramifica el flujo en distintas rutas según el valor de una condición — el equivalente visual a un bloque IF…ELSEIF…ELSEIF…END IF con más de dos salidas, o a un CASE en otros lenguajes.
Cada rama del SWITCH puede tener una fuente de datos completamente distinta — un RESIDENT, un INLINE, un archivo — siempre que las tres terminen produciendo la misma estructura de columnas aguas abajo.


Elige entre dos rutas excluyentes según una condición booleana — por ejemplo, un feed en vivo si está disponible, o una tasa de respaldo si no — el equivalente visual a un IF…THEN…ELSE…END IF simple.


Invoca una rutina (subrutina Qlik) previamente definida en el Catálogo de Rutinas, pasando los parámetros que la rutina declare — el equivalente visual a CALL NombreRutina(param1, param2).
Útil para lógica reutilizable entre varios puntos del mismo proyecto, o entre proyectos distintos cuando la rutina vive en una Biblioteca de Rutinas compartida (Q-Expert.Tools). Ver Catálogo de Rutinas.


Un escape hatch: código Qlik escrito a mano, para esa sentencia puntual que ningún tipo de nodo modela todavía. Es también el destino por defecto cuando la Ingeniería en Reversa encuentra una línea de script que no puede mapear a un nodo conocido.


Declara o asigna una variable Qlik en ese punto del flujo — LET evalúa la expresión antes de asignarla, SET la asigna tal cual, sin evaluar.
Una variable declarada con LET/SET dentro de un Loop se comporta exactamente como la variable de control del propio Loop: ambas quedan disponibles en cualquier picker de variables del resto del cuerpo del bucle. Ver Propagación hacia Bucles.


Cada nodo con columnas reales (RAW, TXF, INLINE, JOIN…) lista sus columnas en la tarjeta del canvas y en el Panel de Propiedades, con un lápiz de renombrar junto a cada una.
Renombrar una columna no rompe su identidad interna: Q-Expert rastrea cada columna por una referencia estable, independiente del nombre visible — así que una expresión, una clave o un JOIN construidos sobre esa columna antes de renombrarla siguen funcionando después.
El mismo panel de columnas permite agregar una columna calculada nueva o quitar una que no se necesita aguas abajo — sin tocar el archivo fuente ni reabrir el nodo RAW original. Es la forma normal de dar forma final a una tabla antes de que llegue al BUSINESS.


Un editor de expresiones con autocompletado de columnas y variables, categorías de funciones Qlik (Texto, Fecha/Hora, Numérico, Condicional, Mapping, Agregación…) y un asistente (Wizard) para las más usadas.
Haz clic en una columna o variable de la lista lateral para insertarla en el cursor; haz clic en una función de la fila inferior para insertarla con sus paréntesis listos para completar los argumentos. El campo Column alias define el nombre con el que la columna calculada quedará disponible aguas abajo.

Construye una clave sintética (SK) a partir de una o más columnas seleccionadas, evitando que Qlik genere su propia clave sintética automática — generalmente menos legible — cuando dos tablas comparten más de una columna.
Selecciona las columnas que compondrán la clave y confirma con Create SK key — esto crea un nodo KEY real en el canvas, conectado al nodo de origen, listo para unirse con JOIN a cualquier otra tabla que comparta esas mismas columnas.
%SK_ para claves surrogadas y %CK_ para compuestas (configurables en Configuración → Prefixes), siempre el mismo criterio sin importar quién construyó cada parte del modelo. Dos Developers distintos, o el mismo Developer seis meses después, reconocen una llave asociativa a simple vista — y evitan que Qlik genere sus propias claves sintéticas automáticas, casi siempre menos legibles.
Convierte el canvas completo — con todos sus nodos y conexiones — en el script Qlik LOAD/STORE final, listo para copiar o descargar.
El selector de Environment Profile en la parte superior del diálogo cambia, de un clic, las rutas lib:// y la carpeta de exportación física que usa el script generado — sin tocar un solo nodo del canvas. El mismo modelo produce el script correcto para Desarrollo, Pruebas o Producción según qué perfil esté activo.

El camino inverso: pega o carga un script Qlik existente y Q-Expert lo analiza línea por línea, creando un nodo por cada sentencia que reconoce — RAW, JOIN, LET/SET, CALL, LOOP — y un nodo Raw Script para lo que no logra mapear.
El resumen final muestra cuántos nodos se crearon, cuántas líneas quedaron como Raw Script sin convertir (para revisión manual) y cuántos supuestos tuvo que asumir el analizador — por ejemplo, el tipo de archivo de una carga sin extensión explícita.

Una biblioteca de subrutinas Qlik reutilizables (SUB … END SUB), organizadas en Bibliotecas de Rutinas que se pueden cargar en cualquier proyecto e invocar desde un nodo CALL.
Selecciona una rutina de la lista para ver su firma completa (nombre y parámetros) y el cuerpo del script. + Load Library agrega una biblioteca de rutinas externa al proyecto actual; Download Q-Expert.Tools descarga la biblioteca de utilidades estándar incluida con Q-Expert.

Genera automáticamente un calendario maestro completo — AUTOGENERATE de fechas más todas las columnas derivadas habituales (Año, Mes, Trimestre, Semana, Nombre del Mes…) — sin tener que armar esa lógica nodo por nodo.

Un recorrido interactivo que construye un pipeline real paso a paso — RAW, Rename, TXF, Expression Builder, Key Builder, JOIN, BUSINESS, Generar Sintaxis — abriendo las ventanas reales de la app en cada paso, a tu propio ritmo.
Se inicia desde Configuración → Demos → Start Tutorial. Cada paso espera a que tú actúes — no hay temporizadores ni avances automáticos — y puedes minimizarlo en cualquier momento para explorar libremente el proyecto de práctica y luego retomarlo donde quedaste.

Distinto del Tutorial Guiado: los Demos son cinco proyectos completos ya construidos, en Configuración → Demos, pensados para explorarse libremente — abrir, hacer clic en cualquier nodo, ver cómo está armado — en vez de seguir un recorrido paso a paso. Cada uno cubre un conjunto distinto de tipos de nodo, así que juntos funcionan como una referencia rápida de "cómo se ve esto armado de verdad". Un Demo nunca se puede guardar (Save queda deshabilitado) — recarga siempre su versión original, así que explorarlo no tiene riesgo de dejarlo distinto a como estaba.
| Demo | Cubre |
|---|---|
| Ventas y Clientes | RAW, INLINE, KEY, JOIN, DROP, MAPPING, TXF, CHECKPOINT, LET/SET, TRACE, RENAME, Script Split, BUSINESS — el pipeline más completo de los cinco, buen punto de partida general. |
| Comisiones por Canal | SWITCH/CASE con tres ramas independientes (RESIDENT, INLINE, carga desde archivo) — cómo una sola estructura de columnas puede llegar por caminos distintos. |
| Tipo de Cambio | IF/THEN/ELSE — feed en vivo si está disponible, tasa de respaldo si no, con un CHECKPOINT de por medio. |
| Calendario y Presupuesto | AUTOGENERATE + CROSSTABLE con llaves SK — la base de un Master Calendar construida a mano, columna por columna. |
| Promociones y Validación Regional | IntervalMatch + LOOP (FOR EACH) con canvas anidado — el único de los cinco que muestra un cuerpo de Loop real, con su propia variable de control en uso. |

El botón Start Tutorial que lanza el Tutorial Guiado vive en esta misma pestaña — construye su propio proyecto de práctica aparte, independiente de estos cinco Demos.
Un proyecto Q-Expert completo — todos sus nodos, conexiones y configuración — se guarda como un único archivo .qep (Q-Expert Project), para compartirlo con otro Developer o moverlo entre máquinas.
Exportar serializa el proyecto activo a un archivo .qep con marca de fecha en el nombre. Importar lee un .qep y lo agrega a la lista de proyectos, resolviendo automáticamente los nombres duplicados si ya existe un proyecto con el mismo nombre.
lib:// de los archivos fuente son específicas de cada instalación. Al importar un .qep de otra máquina, Q-Expert avisa si alguna ruta de biblioteca no coincide localmente, para que la reasignes antes de generar sintaxis.
Las variables de un proyecto — tanto las declaradas como Parámetro del proyecto como las creadas con un nodo LET/SET en el canvas principal — están disponibles en cualquier picker de variables de la app: el editor WHERE, el Fx Wizard, y la barra lateral del Expression Builder.
Esto significa que una variable definida una sola vez (por ejemplo $(vFechaCorte) en un LET cerca del inicio del canvas) puede reutilizarse en la condición WHERE de un RAW más adelante, en una expresión del Expression Builder de un TXF, o en la condición de un SWITCH, sin tener que redeclararla.

La variable de control de un Loop (el valor que cambia en cada iteración de un FOR EACH) se comporta exactamente como si hubiera sido declarada con LET/SET — queda disponible en cualquier picker de variables dentro del cuerpo del bucle, sin ninguna configuración adicional.
Esta propagación recorre toda la cadena de Loops anidados, del más interno al más externo: dentro de un Loop anidado dentro de otro Loop, están disponibles las variables de control de AMBOS niveles, además de cualquier LET/SET declarado en cualquiera de los dos cuerpos.
Los Parámetros del proyecto, en cambio, se leen siempre desde el proyecto raíz — un cuerpo de Loop no tiene su propia lista de Parámetros independiente; usa la del proyecto que lo contiene, sin importar cuántos niveles de anidación haya.
Las recetas de esta sección asumen que ya conoces el tipo de nodo correspondiente (ver los capítulos anteriores) y se enfocan en el flujo de trabajo paso a paso para lograr un resultado concreto.
Unir dos tablas por una o más columnas en común, como un LEFT/INNER/OUTER JOIN de Qlik.
Apilar dos tablas con la misma estructura (por ejemplo, ventas de distintos meses) en una sola.
Cargar una tabla clave→valor y aplicarla con ApplyMap() en otra parte del canvas.
Convertir una tabla ancha (una columna por mes) en una tabla alta (atributo/valor).
Convertir un script Qlik ya escrito en un canvas de nodos.
Crear una columna calculada con sintaxis Qlik válida, asistido por autocompletado.
Cambiar el nombre visible de una columna sin romper la lógica construida sobre ella.
Mover un proyecto Q-Expert completo a otra máquina o compartirlo con otro Developer.
Definir una variable una sola vez y reutilizarla en cualquier parte del proyecto.
Aprovechar la variable de control de un Loop como si fuera cualquier otra variable del canvas.
Los ajustes del ícono ⚙️ en la topbar — aplican a todos los proyectos salvo que uno de ellos los sobreescriba en su propia Configuración de Proyecto.
Idioma de la interfaz y la lista de delimitadores INLINE que Ingeniería en Reversa reconoce al leer un LOAD...INLINE con formato explícito.
Prefijo por defecto de las tablas MAPPING e INLINE nuevas, el modo de clave para proyectos nuevos (Simple o Advanced) y los prefijos %SK_/%CK_ — cambiarlos aquí re-etiqueta las columnas de clave existentes en todos los proyectos.
Las variables SET que Qlik Sense inyecta por defecto (separadores, formatos de fecha/hora/timestamp, primer día de semana) y los nombres de mes/día (Inglés, Español o Custom) — se insertan en la pestaña _Main de cada exportación de sintaxis.
Tema de color y colores por entidad del canvas; formato del script generado (columna de alineación AS, ancho de indentación, mayúsculas/minúsculas de keywords) y los colores de resaltado de sintaxis usados en toda la app.
Botón para iniciar el Tutorial Guiado y la lista de los 5 proyectos demo incluidos — nunca se eliminan y solo son accesibles desde este panel.
Ajustes propios de cada proyecto, abiertos desde el ícono de edición junto a su nombre — nunca afectan a otro proyecto.
Nombre, autor y descripción del proyecto, más el modo de clave de este proyecto en particular — hereda el valor por defecto de Configuración Global al crearse, editable después.
Los mismos campos que Configuración Global → Prefixes (prefijos Mapping/Inline, %SK_/%CK_) pero sobreescritos solo para este proyecto — cambiarlos re-etiqueta las columnas de clave existentes únicamente en su canvas.
Dos grupos de variables lib://: las que apuntan a los archivos fuente de la Biblioteca, y las que definen dónde STORE escribe los QVDs transformados, dónde viven los .qvs de Include y las subcarpetas de cada librería del Catálogo de Rutinas. Pertenecen al Environment Profile activo (pestaña Deploy).
Los Environment Profiles del proyecto (Desarrollo, Producción, etc.) — cada uno con su propio set de Source Paths y su propia carpeta física de exportación usada por el botón Deploy en Generar Sintaxis.
El bloque de comentario que encabeza el script generado, con tags clicables ({{project}}, etc.) que se insertan en la posición del cursor.