TUTORIEL · QLIK SENSE

Réutiliser du script avec SUB et CALL

Factoriser un traitement répétitif dans une sous-routine Qlik claire et réutilisable.

CHAPITRE 01

Pourquoi créer une sous-routine ?

Intermédiaire
Exemple Qlik Sense
SUB Journaliser(pMessage)
    TRACE === $(pMessage) ===;
END SUB

CALL Journaliser('Début du chargement');
À quoi ça sert ?

SUB délimite le traitement réutilisable. CALL déclenche son exécution.

✓ Avantages

  • Évite les copier-coller

△ Points de vigilance

  • Trop de sous-routines peuvent masquer le déroulement du script
1 / 4

CHAPITRE 02

Passer des paramètres

Intermédiaire
Exemple Qlik Sense
SUB AfficherNbLignes(pTable)
    LET vNbLignes = NoOfRows('$(pTable)');
    TRACE $(pTable) : $(vNbLignes) lignes;
END SUB

CALL AfficherNbLignes('Commandes');
CALL AfficherNbLignes('Clients');
À quoi ça sert ?

Dans cet exemple, la sous-routine reçoit un nom de table et affiche son nombre de lignes.

✓ Avantages

  • Même traitement pour plusieurs tables

△ Points de vigilance

  • Les variables et expansions doivent rester lisibles
2 / 4

CHAPITRE 03

Un cas concret : stocker puis supprimer

Intermédiaire
Exemple Qlik Sense
SUB StoreDrop(pTable, pDossier)
    STORE [$(pTable)]
    INTO [$(pDossier)/$(pTable).qvd] (qvd);

    DROP TABLE [$(pTable)];
END SUB

CALL StoreDrop('Commandes', 'lib://QVD');
À quoi ça sert ?

Le traitement reçoit le nom d’une table et le chemin de sortie, écrit le QVD puis retire la table de l’application.

✓ Avantages

  • Centralise un traitement répétitif

△ Points de vigilance

  • Une sous-routine générique doit être testée sur tous les cas prévus
3 / 4

CHAPITRE 04

Garder des sous-routines simples

Intermédiaire
Exemple Qlik Sense
Bon repèreUne responsabilité claire par SUBle nom doit permettre de comprendre son rôle
À quoi ça sert ?

Si elle contient trop de conditions, modifie de nombreuses variables globales ou appelle plusieurs autres sous-routines, le diagnostic devient plus difficile.

✓ Avantages

  • Structure le script

△ Points de vigilance

  • L’abstraction excessive complique le débogage
4 / 4