# Intestazioni di espressione

Utilizzare le intestazioni nelle espressioni di colonna per conservare i metadati delle modifiche, ad esempio il nome di un'operazione o la posizione del flusso di origine.

Le intestazioni `Q_H_` sono disponibili nelle attività di trasferimento gestito da SaaS, trasferimento lake e replica. Inserisci un'intestazione dall'elenco Intestazioni dell'editor quando [Generazione di espressioni](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Building-expressions.htm). La tabella seguente identifica l'applicabilità dell'endpoint di origine e i valori durante il caricamento completo e l'elaborazione delle modifiche.

## Intestazioni per tutti gli endpoint di origine

Intestazioni generali e valori della fase di elaborazione

| Intestazione e tipo di dati | Valore durante l'elaborazione delle modifiche | Valore durante un caricamento completo |
| --- | --- | --- |
| `Q_H_CHANGE_SEQ`<br><br>`STRING(50)` | Sequenza di modifiche monotonicamente crescente in tutte le tabelle delle modifiche dell'attività. Combina un timestamp con un contatore delle modifiche con prefisso zero per ordinare le modifiche all'interno di un'attività. | Vuoto |
| `Q_H_STREAM_POSITION`<br><br>`STRING(50)` | Posizione nel flusso delle modifiche di origine, solitamente un SCN o LSN. Identifica una posizione del flusso di origine, non un timestamp o una sequenza confrontabile tra le attività. | Stringa vuota. |
| `Q_H_TIMESTAMP`<br><br>`DATETIME(0)` | Timestamp dell'operazione di modifica. Questo è un timestamp dell'operazione, non il timestamp di commit della transazione. | Timestamp corrente. |
| `Q_H_TRANSACTION_ID`<br><br>`STRING(50)` | Transazione contenente la modifica, rappresentata come ID transazione esadecimale a 128 bit. Non è garantito che l'ID sia univoco. | Vuoto |
| `Q_H_COMMIT_TIMESTAMP`<br><br>`DATETIME(0)` | Timestamp di commit della transazione di origine, come rappresentato dal runtime di elaborazione. Diverso dall'ora del server di database di origine in `Q_H_DB_COMMIT_TIMESTAMP`. | Timestamp corrente. |
| `Q_H_DB_COMMIT_TIMESTAMP`<br><br>`DATETIME(0)` | Timestamp di commit della transazione di origine in base all'ora del server del database di origine. | Null |
| `Q_H_OPERATION`<br><br>`STRING(50)` | `INSERT`, `UPDATE` o `DELETE`. | `INSERT`. |

La sequenza di modifiche combina un timestamp formattato come `YYYYMMDDHHmmSShh` con un contatore delle modifiche a 19 cifre, preceduto da zeri. I campi del timestamp sono anno, mese, giorno, ora, minuto, secondo e centesimi di secondo. La parte del timestamp può ripetersi mentre il contatore aumenta. La capacità `STRING(50)` dichiarata non è la lunghezza del formato della sequenza.

Non fare affidamento su `Q_H_TRANSACTION_ID` come chiave univoca. Utilizzare `Q_H_CHANGE_SEQ` per l'ordinamento delle modifiche a livello di attività anziché confrontare solo i timestamp.

## Intestazioni specifiche della sorgente

Le seguenti restrizioni di origine si applicano agli endpoint denominati. Non implicano il supporto per altre varianti di SQL Server o altre origini file.

Intestazioni specifiche dell'origine e valori della fase di elaborazione

| Intestazione e tipo di dati | Endpoint di origine | Valore durante l'elaborazione delle modifiche | Valore durante un caricamento completo |
| --- | --- | --- | --- |
| `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. | Utente che ha apportato la modifica all'origine. | Vuoto |
| `Q_H_JOB_NAME`<br><br>`STRING(50)` | Solo per IBM DB2 for iSeries. | Job che ha apportato la modifica all'origine. | Vuoto |
| `Q_H_PROGRAM_NAME`<br><br>`STRING(50)` | Solo per IBM DB2 for iSeries. | Programma che ha apportato la modifica all'origine. | Vuoto |
| `Q_H_XACT_ID`<br><br>`STRING(50)` | Microsoft SQL Server; Microsoft Azure Istanza gestita da SQL; Amazon RDS per SQL Server. | Identificatore del tempo di transazione: l'LSN del primo record per l'ultima transazione distribuita del server. Tutti i record della transazione condividono questo ID. Questo differisce da `Q_H_TRANSACTION_ID`, che viene ottenuto dal log fisico delle transazioni. | Vuoto |

## Utilizzo dei metadati dell'operazione

Aggiungere una colonna e inserire `Q_H_OPERATION` per registrare l'operazione di origine. Durante il caricamento completo, il suo valore è `INSERT`. Durante l'elaborazione delle modifiche, un aggiornamento ha il valore `UPDATE`.

L'intestazione dell'operazione descrive l'operazione; non modifica la gestione dell'eliminazione della destinazione. Per restituire flag personalizzati per le operazioni di origine, vedere `$OPERATION_INDICATOR` in [Funzioni di espressione](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Transformation/Expression-functions.htm).

## Colonne di intestazione del trasferimento in streaming

I task Streaming Transform utilizzano colonne di origine come `hdr__kafka_partition`, `hdr__kinesis_offset` o `hdr__file_name`. Questi non sono alias per le intestazioni `Q_H_`. Selezionare le intestazioni di trasferimento streaming da Colonne. Per gli elenchi specifici per l'origine, vedere [Tabelle di trasferimento](https://help.qlik.com/it-IT/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Lakehouse/lakehouse-datasets-architecture-streaming.htm#Landing).