Q-Expert · Casos reales · Q-Expert DistributorsRead in English
Episodio1

Tres archivos, una tabla

Manual paso a paso

Las capturas muestran Q-Expert en inglés; la interfaz en español llegará pronto.

01La pregunta de negocio

Q-Expert Distributors recibe sus ventas en un archivo por mes: Sales_2025_01.csv, Sales_2025_02.csv y Sales_2025_03.csv. El equipo quiere todos en una sola tabla, y que el archivo del próximo mes cargue sin que nadie toque el script.

02Antes de empezar

03Paso a paso

  1. 1

    Crea el proyecto

    Haz clic en New Project en la barra superior. Llámalo Q-Expert Distributors y haz clic en Create Project. Todo modelo empieza en un canvas limpio.

    Crea el proyecto
    Figura 1.1 — Crea el proyecto
  2. 2

    Di dónde viven los archivos

    Abre Project Settings → Source Paths. Agrega un mapeo con el nombre de variable vPathRaw y la carpeta QXDistributors, de modo que la fila diga vPathRaw = lib://QXDistributors/. En la misma pestaña, pon vTxfPath en lib://QXDistributors/Transform/: ahí viven los QVD de trabajo y los archivos de script que Q-Expert separa, bajo la misma conexión.

    Di dónde viven los archivos
    Figura 1.2 — Di dónde viven los archivos
  3. 3

    Define los formatos numéricos del proyecto

    Estos archivos usan punto para los decimales y coma para los miles. Haz clic en $(x) en la barra superior y, en la pestaña Predefined, define:

    • ThousandSep ,
    • DecimalSep .
    • MoneyThousandSep ,
    • MoneyDecimalSep .
    • MoneyFormat $ #,##0.00;-$ #,##0.00
    Define los formatos numéricos del proyecto
    Figura 1.3 — Define los formatos numéricos del proyecto
  4. 4

    Agrega las variables de proyecto

    Pasa a la pestaña Project y agrega, cada una con el botón +:

    • vEnvironment = PROD
    • vBaseCurrency = COP (la usa el episodio 4)

    Luego haz clic en Save.

    Agrega las variables de proyecto
    Figura 1.4 — Agrega las variables de proyecto
  5. 5

    Agrega los tres archivos de ventas

    En la Library, haz clic en Add Files y elige los tres archivos Sales_2025_0N.csv. Q-Expert ve las mismas columnas en todos y los agrupa bajo un solo patrón, Sales_*.csv.

    Agrega los tres archivos de ventas
    Figura 1.5 — Agrega los tres archivos de ventas
  6. 6

    Arrastra el grupo al canvas

    Arrastra el encabezado del grupo Sales_*.csv al canvas. Un solo nodo RAW lee todos los meses: los tres archivos de hoy y los que vienen.

    Arrastra el grupo al canvas
    Figura 1.6 — Arrastra el grupo al canvas
  7. 7

    Nómbrala como tabla de trabajo

    Selecciona el nodo. En la pestaña Config, escribe tmp_SalesRaw como nombre de la tabla y presiona Tab.

    Nómbrala como tabla de trabajo
    Figura 1.7 — Nómbrala como tabla de trabajo
  8. 8

    Explica el porqué en un comentario

    En la pestaña Info, escribe en Comments: Sales arrive as one file per month; the wildcard reads every month, including next month's file. Va al script justo encima del LOAD.

    Explica el porqué en un comentario
    Figura 1.8 — Explica el porqué en un comentario
  9. 9

    Genera el script

    Haz clic en Generate Syntax y abre la pestaña Flow_1. Un solo LOAD con un asterisco en la ruta, leído a través de la variable: FROM [$(vPathRaw)Sales_*.csv]. El archivo del próximo mes simplemente funciona.

    Genera el script
    Figura 1.9 — Genera el script
  10. 10

    La misma idea con archivos QVD

    Agrega los tres archivos de data/Raw/. Son QVD, así que la Library crea un segundo grupo, Sales_*.qvd, junto a Sales_*.csv. Arrastrado al canvas, los lee con (qvd). El curso sigue con los archivos CSV, así que deja este grupo en la Library.

    La misma idea con archivos QVD
    Figura 1.10 — La misma idea con archivos QVD

04Revisa tu resultado

_Main

Se pega en Qlik

Este es el único script que pegas en Qlik Sense: abre el Editor de carga de datos de la app, reemplaza su contenido por este y recarga. Cada línea $(MUST_INCLUDE=…) lee en su lugar uno de los archivos de abajo, así el resto del modelo nunca entra al editor.

Ver script · 42 líneas
/*----------------------------------------------------------------------------------------
	Description [MAIN]:
		
	-------------------------------------------------------------------------------------
	Author:	The Q-Fábrica team - 
	Date:	[2026-11-02]
	-------------------------------------------------------------------------------------
	Changes
	-------------------------------------------------------------------------------------
	Author		Date		Detail
	-------------------------------------------------------------------------------------

	-------------------------------------------------------------------------------------
	Copyright © Q-Expert Distributors.
	Q-Expert Qlik Developer Framework. www.qfabrica.com
----------------------------------------------------------------------------------------*/

SET ThousandSep=',';
SET DecimalSep='.';
SET MoneyThousandSep=',';
SET MoneyDecimalSep='.';
SET MoneyFormat='$ #,##0.00;-$ #,##0.00';
SET TimeFormat='hh:mm:ss';
SET DateFormat='YYYY-MM-DD';
SET TimestampFormat='YYYY-MM-DD hh:mm:ss';
SET MonthNames='Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec';
SET LongMonthNames='January;February;March;April;May;June;July;August;September;October;November;December';
SET DayNames='Mon;Tue;Wed;Thu;Fri;Sat;Sun';
SET LongDayNames='Monday;Tuesday;Wednesday;Thursday;Friday;Saturday;Sunday';
SET FirstWeekDay=0;
SET BrokenWeeks=1;
SET ReferenceDay=4;
SET FirstMonthOfYear=1;

LET vExecutionDate = Timestamp(Now(), 'YYYY-MM-DD hh:mm:ss');

SET vTxfPath  = 'lib://QXDistributors/Transform/';
SET vPathRaw = 'lib://QXDistributors/';
SET vEnvironment = 'PROD';   // PROD, QA or DEV
SET vBaseCurrency = 'COP';   // Currency every amount is converted to

$(MUST_INCLUDE=$(vTxfPath)_QVS/Flow_1.qvs);

Flow_1.qvs

Archivo · lo lee MUST_INCLUDE

No se pega: se guarda como archivo. En la pestaña Flow_1 de Generate Syntax, Export descarga Flow_1.qvs (Deploy escribe todas las pestañas en una carpeta de una vez). Ponlo en lib://QXDistributors/Transform/_QVS/Flow_1.qvs, la carpeta Transform/_QVS dentro de tu carpeta QXDistributors. Si el archivo no está, la recarga se detiene con un error: para eso existe MUST_INCLUDE.

Ver script · 33 líneas
/*----------------------------------------------------------------------------------------
	Description [Flow_1]:
		
	-------------------------------------------------------------------------------------
	Author:	The Q-Fábrica team - 
	Date:	[2026-11-02]
	-------------------------------------------------------------------------------------
	Changes
	-------------------------------------------------------------------------------------
	Author		Date		Detail
	-------------------------------------------------------------------------------------

	-------------------------------------------------------------------------------------
	Copyright © Q-Expert Distributors.
	Q-Expert Qlik Developer Framework. www.qfabrica.com
----------------------------------------------------------------------------------------*/

// -------------------------------------------------------------------------------------------------
// Sales arrive as one file per month; the wildcard reads every month, including next month's file.
[tmp_SalesRaw]:
    LOAD
        SaleID,
        SaleDate,
        CustomerID,
        ProductID,
        SalespersonID,
        BranchID,
        Quantity,
        UnitPrice,
        DiscountPct,
        Currency,
        Channel
    FROM [$(vPathRaw)Sales_*.csv] (txt, delimiter is ',', embedded labels);

05Por qué se hace así

06Lo que sigue

Episodio 2: los mismos archivos, pero necesitamos saber de qué mes viene cada fila.

Antes de modelar

Q-Explorator es la herramienta de escritorio del equipo de Q-Fábrica para explorar archivos QVD, CSV, Excel y Parquet, y para convertir archivos CSV, TXT y Excel en QVD. Abre en ella los archivos de cada episodio para ver primero su contenido y su calidad.

Conoce Q-Explorator