# En-têtes d'expression

Utilisez des en-têtes dans les expressions de colonne pour conserver les métadonnées de modification telles qu'un nom d'opération ou la position du flux source.

Les en-têtes `Q_H_` sont disponibles dans les tâches de dépôt temporaire gérées par SaaS, de dépôt temporaire dans un lac et de réplication. Insérez un en-tête à partir de la liste En-têtes de l'éditeur lorsque [Création d'expressions](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm). Le tableau ci-dessous identifie l'applicabilité et les valeurs des points de terminaison sources pendant l'opération Chargement complet et le traitement des modifications.

## En-têtes de tous les points de terminaison sources

En-têtes généraux et valeurs de phase de traitement

| En-tête et type de données | Valeur lors du traitement des modifications | Valeur lors d'une opération Chargement complet |
| --- | --- | --- |
| `Q_H_CHANGE_SEQ`<br><br>`STRING(50)` | Séquence de modifications croissante monotone dans les tables de modifications de la tâche. Combine un horodatage avec un compteur de modifications préfixé de zéro pour organiser les modifications au sein d'une tâche. | Vide |
| `Q_H_STREAM_POSITION`<br><br>`STRING(50)` | Position dans le flux de modifications source, généralement un SCN ou un LSN. Identifie un emplacement de flux source et non un horodatage ou une séquence comparable entre les tâches. | Chaîne vide. |
| `Q_H_TIMESTAMP`<br><br>`DATETIME(0)` | Horodatage de l'opération de modification. Il s'agit d'un horodatage d'opération et non de l'horodatage de validation (commit) de la transaction. | Horodatage actuel. |
| `Q_H_TRANSACTION_ID`<br><br>`STRING(50)` | Transaction contenant la modification, représentée par un ID de transaction hexadécimal de 128 bits. Le caractère unique de l'ID n'est pas garanti. | Vide |
| `Q_H_COMMIT_TIMESTAMP`<br><br>`DATETIME(0)` | Horodatage de validation (commit) de la transaction source tel que représenté par l'environnement d'exécution du traitement. Distinct de l'heure du serveur de base de données source dans `Q_H_DB_COMMIT_TIMESTAMP`. | Horodatage actuel. |
| `Q_H_DB_COMMIT_TIMESTAMP`<br><br>`DATETIME(0)` | Horodatage de validation (commit) de la transaction source selon l'heure du serveur de base de données source. | NULL |
| `Q_H_OPERATION`<br><br>`STRING(50)` | `INSERT`, `UPDATE` ou `DELETE`. | `INSERT`. |

La séquence de modifications combine un horodatage formaté comme `YYYYMMDDHHmmSShh` avec un compteur de modifications de 19 chiffres, préfixées de zéro. Les champs d'horodatage sont l'année, le mois, le jour, l'heure, la minute, la seconde et les centièmes de seconde. La partie horodatage peut se répéter à mesure que le compteur augmente. La capacité `STRING(50)` déclarée n'est pas la longueur du format de séquence.

Ne vous fiez pas à `Q_H_TRANSACTION_ID` comme clé unique. Utilisez `Q_H_CHANGE_SEQ` pour l'ordonnancement des modifications au niveau des tâches au lieu de comparer uniquement les horodatages.

## En-têtes spécifiques à la source

Les restrictions de source suivantes s'appliquent aux points de terminaison nommés. Elles n'impliquent pas le support d'autres variantes de SQL Server ou d'autres sources de fichiers.

En-têtes spécifiques à la source et valeurs de phase de traitement

| En-tête et type de données | Points de terminaison sources | Valeur lors du traitement des modifications | Valeur lors d'une opération Chargement complet |
| --- | --- | --- | --- |
| `Q_H_USER`<br><br>`STRING(50)` | Microsoft SQL Server ; Microsoft Azure SQL Managed Instance ; Amazon RDS for SQL Server ; IBM Informix ; IBM DB2 for z/OS ; IBM DB2 for LUW ; Oracle ; File ; SAP Sybase ASE. | Utilisateur.trice qui a effectué la modification de la source. | Vide |
| `Q_H_JOB_NAME`<br><br>`STRING(50)` | IBM DB2 for iSeries uniquement. | Job qui a effectué la modification de la source. | Vide |
| `Q_H_PROGRAM_NAME`<br><br>`STRING(50)` | IBM DB2 for iSeries uniquement. | Programme qui a effectué la modification de la source. | Vide |
| `Q_H_XACT_ID`<br><br>`STRING(50)` | Microsoft SQL Server ; Microsoft Azure SQL Managed Instance ; Amazon RDS for SQL Server. | Identifiant de l'heure de transaction : le LSN du premier enregistrement de la dernière transaction distribuée du serveur. Tous les enregistrements de la transaction partagent cet ID. Cela est différent de `Q_H_TRANSACTION_ID`, qui est obtenu à partir du journal des transactions physiques. | Vide |

## Utilisation des métadonnées d'opération

Ajoutez une colonne et insérez `Q_H_OPERATION` pour enregistrer l'opération source. Lors d'une opération Chargement complet, sa valeur est `INSERT`. Lors du traitement des modifications, une mise à jour a la valeur `UPDATE`.

L'en-tête d'opération décrit l'opération ; il ne modifie pas la gestion de la suppression de la cible. Pour renvoyer des indicateurs personnalisés pour les opérations de la source, consultez `$OPERATION_INDICATOR` dans [Fonctions d'expression](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm).

## Colonnes d'en-tête de dépôt temporaire de flux

Les tâches de transformation de flux utilisent des colonnes sources telles que `hdr__kafka_partition`, `hdr__kinesis_offset` ou `hdr__file_name`. Il ne s'agit pas d'alias pour les en-têtes `Q_H_`. Sélectionnez les en-têtes de dépôt temporaire de flux dans Colonnes. Pour les listes spécifiques à la source, consultez [Les tables de dépôt temporaire.](https://help.qlik.com/fr-FR/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/lakehouse-datasets-architecture-streaming.htm#Landing).