Variabili del loop (DataStage®)

È possibile specificare che lo stage Transformer emetta più righe di output per ogni riga di input definendo una condizione di loop.

Informazioni sulle variabili di loop

È possibile specificare che lo stage Transformer ripeta un ciclo più volte per ogni riga di input che legge. Lo stage può generare più righe di output corrispondenti a una singola riga di input mentre una particolare condizione è true.

È possibile utilizzare le variabili dello stage nella specifica di questa condizione. Le variabili dello stage vengono valutate una volta dopo la lettura di ciascuna riga di input e pertanto mantengono lo stesso valore durante l'esecuzione del ciclo.

È anche possibile specificare variabili di loop. Le variabili di loop vengono valutate ogni volta che la condizione di loop viene valutata come true. Le variabili di loop possono cambiare per ogni iterazione del loop e per ogni riga di output generata.

Il nome di una variabile deve essere univoco tra le variabili dello stage e le variabili del loop.

Definizione di una condizione di loop

Si specifica che lo stage Transformer esegue il loop durante l'elaborazione di ciascuna riga di input definendo una condizione di loop. Il loop continua l'iterazione mentre la condizione è true.

È possibile utilizzare la variabile di sistema @ITERATION nell'espressione. @ITERATION contiene un numero di volte in cui il loop è stato eseguito, a partire da 1. @ITERATION viene reimpostato su uno quando viene letta una nuova riga di input.

Per definire una condizione di loop:
  1. Nel campo Loop while , fare clic sull'icona dell'editor di espressioni.
    1. Nell'editor delle espressioni, specificare l'espressione che controlla il loop. L'espressione deve restituire un risultato true o false.
    2. Fare clic su Salva e torna.
  2. Nel campo Soglia di avvertenza iterazione loop , definire una soglia di avvertenza.

È possibile definire una condizione di loop difettosa che si traduce in un loop infinito, ma che comunque viene compilata correttamente. Per rilevare tali eventi, è possibile specificare una soglia di avvertenza di iterazione del loop. Un'avvertenza viene scritta nella registrazione lavoro quando un loop ha ripetuto il numero di volte specificato e l'avvertenza viene ripetuta ogni volta che viene raggiunto un multiplo di tale valore.

Quindi, ad esempio, se si specifica una soglia di 100, le avvertenze vengono scritte nel log del lavoro quando il loop viene iterato 100 volte, 200 volte, 300 volte e così via. L'impostazione della soglia su 0 specifica che non viene emessa alcuna avvertenza. La soglia predefinita è 10000, che è un buon valore iniziale. È possibile impostare un valore limite per tutti i job nel progetto impostando la variabile di ambiente APT_TRANSFORM_LOOP_WARNING_THRESHOLD su un valore soglia.

La soglia si applica sia all'iterazione del loop che al numero di record contenuti nella cache della riga di input (la cache della riga di input è utilizzata quando si aggregano i valori nelle colonne di input).

Definizione di una variabile loop

È possibile dichiarare e utilizzare le variabili di loop all'interno di uno stage Transformer. È possibile utilizzare le variabili loop nelle espressioni all'interno dello stage.

È possibile utilizzare le variabili di loop quando viene definita una condizione di loop per lo stage Transformer. Quando è definito un loop, lo stage Transformer è in grado di emettere più righe per ogni input di riga allo stage. Le variabili di loop vengono valutate ogni volta che il loop viene iterato e quindi possono modificare il loro valore per ogni riga di output. Tali variabili sono accessibili solo dallo stage Transformer in cui sono dichiarate. Non è possibile utilizzare una variabile loop nella derivazione di una variabile dello stage.

Le variabili di loop possono essere utilizzate come segue:

  • Ad essi possono essere assegnati valori in base alle espressioni.
  • Possono essere utilizzati in espressioni che definiscono una derivazione di colonna di output.
  • Le espressioni che valutano una variabile possono includere altre variabili di loop o variabili dello stage o la variabile che viene valutata.

Le variabili di loop dichiarate vengono mostrate in una tabella nel riquadro a destra dell'area dei collegamenti. La tabella è simile alla tabella di link di output e alla tabella delle variabili dello stage. È possibile ingrandire o ridurre la tabella facendo clic sulla freccia nella barra del titolo della tabella.

La tabella elenca le variabili loop insieme alle espressioni utilizzate per derivare i valori. Le linee di collegamento uniscono le variabili di loop con le colonne di input utilizzate nelle espressioni. I link dal lato destro della tabella collegano le variabili alle colonne di output che le utilizzano o alle variabili dello stage che utilizzano.

Per definire una variabile loop:
  1. Nel campo Variabili loop , fare clic su Aggiungi variabile loop +.
  2. Immettere il nome della variabile, il valore iniziale, il tipo SQL, le informazioni estese (se la variabile contiene dati Unicode), la precisione, la scala e una descrizione facoltativa. I nomi di variabile devono iniziare con un carattere alfabetico (a-z, A - Z) e possono contenere solo caratteri alfanumerici (a-z, A-Z, 0-9).
  3. Fare clic su Applica modifiche.