Modify a landing task
Overview
Use this guide to modify an existing landing task in a declarative pipeline project.
You can use this workflow to:
- Add source tables.
- Add include or exclude patterns.
- Add task-level transformation rules.
Prerequisites
- A declarative pipeline project with a landing task with at least one source.
- The project is connected to GitHub version control or exported as a project package.
- Source table names and schemas for the tables you want to add.
Step 1: Locate the landing task
-
Open the task folder under
qtcp_tasks/and navigate to the required landing task folder. -
Open the desired
task.yamlfile and copy the taskid. In the following example, the task id isingest-customers-4821:properties:name: ingest_customersid: ingest-customers-4821type: LANDINGYou will use this
idto create binding variable names later.
Step 2: Add source tables
Open or create sourceSelection.yaml in the landing task folder.
If this is the first data source, define the connection and add the dataset.
It is best to use variables which contain the task id for the sourceConnection and schema properties as in the
following example.
For example, to add a Customers table from the dbo schema:
sourceConnection: '{{task.ingest-customers-4821.sourceConnection}}'explicitlySelected: - name: Customers schema: '{{task.ingest-customers-4821:null$\_$dbo.schema}}' type: TABLEUse explicitlySelected when you want to list individual tables.
To select tables by pattern instead, use includePatterns and excludePatterns:
sourceConnection: '{{task.ingest-customers-4821.sourceConnection}}'includePatterns: - tablePattern: 'dim\_%' schemaPattern: 'dbo' type: TABLEexcludePatterns: - tablePattern: 'temp\_%' schemaPattern: 'dbo' type: TABLEStep 3: Add task-level transformation rules
To apply a rule across tables in the task, open or create transformationRules.yaml.
For example, to convert matching table names to uppercase:
rules:- name: Rule_1 actionType: RENAME_TABLE scope: whereTableName: '%' action: renameType: TO_UPPERUse transformationRules.yaml for task-level rules that apply across tables.
Dataset-level transformations are defined in the dataset files.
Step 4: Update binding variable declarations
Every binding variable referenced with {{...}} must be declared in qtcp_bindings_definition.json.
This file holds the list of variables, not their value, so keep the value as empty string.
For the previous examples, add the source connection and schema variables:
{ "variables": { "task.ingest-customers-4821.sourceConnection": "", "task.ingest-customers-4821:null$_$dbo.schema": "" }}If qtcp_bindings_definition.json already contains variables, merge the new entries into the existing variables
object.
Step 5: Validate and synchronize
Before applying the change:
- Check the VS Code Problems panel for YAML schema errors.
- Commit and push the updated files if you use version control or create a ZIP archive for the project.
- Apply remote changes in Qlik Cloud, or import the updated project package.
- Verify that the task includes the expected source tables and transformation rules.
Troubleshooting
Issue: The source table is not added
Confirm that the table is listed in sourceSelection.yaml.
Issue: Apply or import fails because a variable is missing
Confirm that every {{...}} variable used in the YAML files is declared in qtcp_bindings_definition.json.