Strumento Container di controllo
Esempio di uno strumento
Container di controllo dispone dell'opzione Esempio di uno strumento. Consulta Esempi di flussi di lavoro per scoprire come accedere a questo e a molti altri esempi direttamente in Alteryx Designer.
![Image of a sample use case of the Control Container tool.](../../../image/uuid-02d2a6e9-f859-2a95-e783-756f7a77a327.png)
Utilizza i container di controllo per gestire la sequenza in cui vengono eseguiti gli strumenti nel flusso di lavoro e assicurarsi che le fasi del processo vengano eseguite nell'ordine corretto. I container di controllo consentono di utilizzare le informazioni relative agli strumenti in esecuzione sia come dati di registrazione sia come dati da usare nel flusso di lavoro, permettendo la creazione di processi più dinamici e complessi in base ai dati di esecuzione.
Inoltre, i container di controllo consentono di eseguire in modo condizionale determinati blocchi di logica in base ai dati del flusso di lavoro, sia da un altro container di controllo sia da altre informazioni presenti nel flusso di lavoro. Non è necessario creare complesse operazioni di orchestrazione condizionale tramite gli strumenti Deviazione, App concatenate e Runner.
Solo AMP
Lo strumento Container di controllo è compatibile solo con Alteryx Multi-Thread Processing (AMP) . Se tenti di eseguire lo strumento in un flusso di lavoro in cui AMP è disattivato, viene visualizzato un errore.
Componenti dello strumento
Il container di controllo ha 2 ancoraggi: Input di controllo opzionale e Output di registrazione.
![Image that shows an empty Control Container tool with its anchors.](../../../image/uuid-4a3b8eeb-639e-b818-91e9-aca55f2f9f16.png)
Input di controllo (opzionale)
I container di controllo sono dotati di un ancoraggio di input opzionale. Utilizza questo input per attivare il container.
![Image that shows a Control Container with its anchors.](../../../image/uuid-f1b40eff-4248-4493-3c53-f233c7189ecf.png)
Se l'input di controllo non dispone di un collegamento, il container viene considerato attivato. In questo caso, il container di controllo funge da contenitore strumenti, con l'eccezione che invia i messaggi sulle azioni completate al suo interno dall'ancoraggio Output di registrazione.
Se l'input di controllo dispone di un collegamento, il container si attiva quando il collegamento si chiude con almeno un record di input*. I metadati e i contenuti del flusso di dati non sono rilevanti. L'importante è che sia presente almeno un record.
Nota
*Sebbene sia necessaria la presenza di un record per attivare un container di controllo, gli strumenti al suo interno non vengono eseguiti finché tutti i record non passano attraverso l'ancoraggio Input di controllo. Quindi, se trasferisci 1000 record nel container di controllo, questo eseguirà gli strumenti al suo interno solo dopo che avrà ricevuto tutti i 1000 record.
Output di registrazione
L'output di registrazione produce tutti i messaggi di log rivolti all'utente solo per gli strumenti inclusi nel container (compresi gli altri container al suo interno). È possibile utilizzare questi dati del messaggio come qualsiasi altro flusso di dati in Designer. Ad esempio, puoi scrivere queste informazioni di registro in un file o analizzarle per elaborare altri blocchi di logica.
Nota
Tieni presente che gli unici messaggi visualizzati nei dati del container di controllo sono quelli altrimenti visualizzati nella griglia Risultati. Per questo motivo, gli strumenti che non producono messaggi tramite la griglia Risultati non li generano neanche tramite i container di controllo.
Puoi sempre utilizzare uno strumento Messaggio per creare e personalizzare i messaggi per gli strumenti che non generano i propri messaggi.
![Image that shows a Control Container tool with a Browse tool connected to its output Logging anchor.](../../../image/uuid-c2c275af-4c0d-a8a9-25a9-b3a2483681ac.png)
Il container di controllo registra un messaggio informativo al momento dell'attivazione: "Container di controllo attivato".
Successivamente, il container registra un altro messaggio informativo quando elabora tutti gli strumenti inclusi: "Container di controllo completato".
Infine, il container chiude l'ancoraggio Output di registrazione. Il container potrebbe inviare messaggi prima che tutti gli strumenti al suo interno completino l'esecuzione. Per ulteriori informazioni, consulta la sezione Considerazioni importanti sull'ordine di esecuzione.
Ciò significa che tutti i flussi di dati in uscita dal container saranno già chiusi e che, se il container è stato attivato, riceverai due messaggi da ogni output di registrazione. Se il container è disabilitato, si chiude il relativo output di registrazione senza inviare alcun messaggio.
![This image shows an example of a Control Container's log messages in the Results window.](../../../image/uuid-a9502bec-af0c-8511-8db7-ce8f90971b06.png)
Come funzionano i container di controllo?
È importante notare che il container di controllo si comporta in modo molto diverso rispetto al contenitore strumenti . Utilizza uno scenario booleano (true/false) per stabilire se esiste un flusso di dati collegato all'ancoraggio opzionale Input di controllo e, in presenza di un flusso di dati in entrata, per determinare se tale flusso contiene record.
Se non è presente nessun flusso di dati in entrata, il container di controllo funge da contenitore strumenti, tranne per il fatto che invia i messaggi sulle azioni eseguite al suo interno dall'ancoraggio Output di registrazione. I messaggi funzionano come quelli che generalmente si trovano nella finestra Risultati di Designer.
Se è presente un flusso di dati in entrata collegato all'ancoraggio Input di controllo, il container di controllo valuta se eseguire gli strumenti al suo interno, a seconda che riceva o meno almeno un record alla chiusura del collegamento di input.
Se riceve un record, il container si attiva una volta chiuso il collegamento, quando tutti i record passano attraverso l'input.
Se l'input di controllo non riceve record, il container invia solo i metadati memorizzati nella cache attraverso l'output. Non trasferisce messaggi e non esegue gli strumenti al suo interno.
Confronto tra container di controllo disattivato e container di controllo inattivo
È importante conoscere la differenza di comportamento tra un container di controllo disattivato e uno abilitato ma inattivo.
Quando disattivi un container di controllo, Designer ignora il container (e tutti gli strumenti al suo interno) e non segnala errori di configurazione per il container o per i relativi strumenti.
Quando il container di controllo è abilitato, Designer non sa se attivarlo finché non esegui il flusso di lavoro e l'ancoraggio di input del container riceve o non riceve i record.
Designer deve eseguire tutti i controlli di preconvalida quando esegui il flusso di lavoro. I controlli di preconvalida generano errori nei container di controllo se gli strumenti al loro interno non sono configurati correttamente, indipendentemente dal fatto che il container venga attivato tramite i record di ricezione dell'ancoraggio di input. Per evitare che questo accada, assicurati che tutti gli strumenti all'interno di un container di controllo siano configurati correttamente, anche se il container non verrà attivato come parte del flusso di lavoro.
Considerazioni importanti sull'ordine di esecuzione
In alcuni scenari, gli strumenti all'interno dei container di controllo possono inviare dati all'esterno prima che tutti abbiano completato l'esecuzione e, di conseguenza, prima che il container invii i dati attraverso il suo ancoraggio Output di registrazione. Ciò può accadere quando gli strumenti all'interno del container si collegano direttamente agli strumenti all'esterno.
Per capire perché ciò può accadere, è importante comprendere in che modo AMP elabora i dati . AMP invia i dati tra gli strumenti in pacchetti di record per ridurre al minimo l'attività di sincronizzazione tra gli strumenti e garantire prestazioni migliori. Se sono presenti molti record che passano attraverso gli strumenti, i pacchetti si riempiono e devono essere inviati a valle.
Panoramica dell'ordine di esecuzione
Come già specificato, un container di controllo non esegue gli strumenti al suo interno fino a quando non riceve tutti i record tramite l'ancoraggio Input di controllo. Se l'ancoraggio di input riceve un numero elevato di record attraverso più pacchetti, il container mantiene i pacchetti nell'input fino a che non li riceve tutti, dopodiché si attiva.
Quando il container si attiva, esegue gli strumenti al suo interno. Se durante questo processo il container trasferisce i dati all'esterno, tali dati potrebbero uscire dal container prima che termini l'esecuzione di tutti gli strumenti (ciò dipende dal modo in cui AMP Engine assembla e sequenzia i pacchetti di record).
L'ancoraggio Output di registrazione del container inizia a raccogliere messaggi per gli strumenti che vengono eseguiti al suo interno non appena viene attivato e continua a farlo fino a quando...
Un pacchetto di record raggiunge dimensioni sufficienti per essere inviato a valle (a quel punto il pacchetto successivo inizia a raccogliere i messaggi).
Il container esegue tutti gli strumenti al suo interno e appare il messaggio Container di controllo completato.
Suggerimenti per garantire l'ordine di esecuzione
Tenendo presente quanto detto, se l'ordine di esecuzione è fondamentale per il flusso di lavoro, è necessario utilizzare container di controllo aggiuntivi per garantire che i record che oltrepassano i limiti dei container siano sequenziati correttamente.
Tieni presente che quando colleghi l'ancoraggio di output di un container di controllo all'ancoraggio di input di un altro container di controllo, il secondo container deve ricevere tutti i record tramite l'ancoraggio Input di controllo per poter attivare ed eseguire qualsiasi strumento al suo interno.
Per utilizzare un esempio semplificato: se è necessario essere assolutamente certi che un processo non si avvii prima del termine di un altro, è necessario utilizzare più container di controllo, come nell'esempio 2 riportato di seguito.
Esempio 1
Questa configurazione non garantisce che lo strumento Messaggio si avvierà quando tutti i record avranno superato lo strumento Filtro, né che tutti gli strumenti abbiano completato l'esecuzione nel container di controllo (se sono stati inclusi altri strumenti).
![Image showing a Control Container tool with a Filter tool inside. The Filter tool's output connects to the input of a Message tool outside of the container.](../../../image/uuid-84d87fa1-10f5-2e44-c2dc-5b8317b1c0be.png)
Esempio 2
Questa configurazione garantisce che lo strumento Messaggio si avvierà dopo che il container di controllo 2 avrà ricevuto tutti i record tramite l'ancoraggio Input di controllo. Questo si verifica solo quando tutti gli strumenti nel primo container hanno completato l'esecuzione e il container registra il messaggio "Container di controllo completato".
![Image showing a Control Container tool with a Filter tool inside. The container's output is connected to another Control Container's input.](../../../image/uuid-a16084c9-a3fb-823b-eab7-257c3f34dad5.png)
Raggruppamento degli strumenti in un contenitore
Esistono diversi modi per raggruppare gli strumenti in un contenitore:
Seleziona uno o più strumenti sull'area di disegno, quindi fai clic con il pulsante destro del mouse e seleziona Aggiungi a nuovo container di controllo .
Trascina lo strumento Container di controllo sull'area di disegno e posizionalo vicino agli strumenti da raggruppare. Premi il tasto Ctrl sulla tastiera e seleziona gli strumenti, quindi trascinarli nel container.
Per espandere o comprimere il container, seleziona l'apposita icona nella parte superiore destra del container.
Modifica del contenuto del contenitore
Per eliminare un contenitore senza rimuovere gli strumenti al suo interno, fai clic con il pulsante destro del mouse sul contenitore esteso e scegli Elimina solo contenitore .
Per rimuovere uno strumento da un contenitore, selezionalo e trascinalo fuori dal contenitore.
Disabilitazione di un contenitore
Disabilita un container quando non desideri eseguire una sezione o un processo nel flusso di lavoro. Il contenitore disattivato rimane esteso nell'area di disegno e appare non disponibile per indicare lo stato di disattivazione. Gli strumenti all'interno del contenitore non elaborano i dati fino a quando il contenitore non viene riattivato. Se il container è disattivato, si chiude l'ancoraggio Output di registrazione senza inviare messaggi.
Puoi disabilitare il contenitore in due modi:
Nella finestra Configurazione del contenitore, seleziona la casella di spunta Disabilitato .
Nell'area di disegno, seleziona il pulsante in alto a sinistra del container in modo che il dispositivo di scorrimento sia posizionato a sinistra.
Puoi comprimere un contenitore disabilitato per nasconderne il contenuto. A tal fine, seleziona l'icona di espansione/compressione all'interno del contenitore.
Abilitazione di un container
Puoi abilitare il contenitore in due modi:
Nella finestra Configurazione del container, deseleziona la casella di spunta Disabilitato .
Seleziona il pulsante in alto a sinistra del contenitore in modo che il dispositivo di scorrimento sia posizionato a destra.
Configura lo strumento
Una volta che lo strumento Container di controllo si trova nell'area di disegno del flusso di lavoro, puoi utilizzare la finestra Configurazione dello strumento Container di controllo per fornire un'etichetta per il container, modificare l'aspetto del container e disattivarlo, se necessario.
Nella finestra Configurazione , digita il nome del container nel campo Didascalia oppure fai doppio clic sulla casella del container nell'area di disegno e digita il testo direttamente nella casella. Il testo predefinito è "Container di controllo" insieme all'ID dello strumento visualizzato nel campo ID .
Imposta il tema colore per il container.
Seleziona "..." accanto a Colore testo , Colore riempimento e Colore bordo e scegli un colore dalla tavolozza o immetti i valori RGB.
In Trasparenza , immetti un valore o utilizza le icone su e giù per impostare la trasparenza del colore.
In Margine , seleziona una larghezza per modificare lo spazio tra il bordo del contenitore e gli strumenti al suo interno.
Per impostare il colore predefinito del contenitore di riempimento...
Seleziona Opzioni Impostazioni utente Modifica impostazioni utente, quindi scegli Area di disegno.
In Impostazioni canvas predefinite Contenitori, imposta i valori RGB desiderati o utilizza il pulsante "..." per selezionare un colore.
Salva le impostazioni.
Note sulla compatibilità e limitazioni
Strumenti In-Database
Gli strumenti In-Database funzionano all'interno dei container di controllo. Tuttavia, un collegamento In-Database non può superare il limite del container di controllo. Ad esempio, non puoi avere uno strumento Connetti In-DB all'esterno del container di controllo e collegarlo a uno strumento Filtro In-DB all'interno del container.
Strumenti di interfaccia
Gli strumenti di interfaccia non sono supportati all'interno dei container di controllo. Gli strumenti di interfaccia e i container di controllo possono coesistere nello stesso flusso di lavoro, ma gli strumenti di interfaccia non possono essere all'interno dei container di controllo.
Strumenti Blocca fino alla conclusione
Gli strumenti Blocca fino alla conclusione (BUD) non hanno alcun effetto nei flussi di lavoro che contengono anche container di controllo. Se il flusso di lavoro contiene sia strumenti BUD sia container di controllo, comparirà un messaggio di errore e gli strumenti BUD verranno trattati come strumenti pass-through (senza sequenziamento).
Strumenti di deviazione
Gli strumenti di deviazione funzionano all'interno dei container di controllo. Devi seguire le regole consuete per Inizio deviazione e Fine deviazione, ma se uno strumento Fine deviazione si trova in un container di controllo che non è mai attivo, il flusso di dati viene ignorato.
Container di controllo annidati
I container di controllo funzionano quando sono annidati all'interno di altri container di controllo. Tuttavia, i collegamenti in loop generano un errore. Ad esempio, non puoi collegare l'output di registrazione da un container di controllo a uno strumento all'interno dello stesso container.
Container di controllo e macro
I container di controllo funzionano all'interno di macro. Le azioni di macro e app vengono applicate prima della conversione XML. Le macro funzionano anche all'interno dei container di controllo.
Flusso di lavoro di debug
I container di controllo non sono attualmente compatibili con la funzione Flusso di lavoro di debug accessibile tramite le analytic app e le macro della finestra Interfaccia di Designer. Un flusso di lavoro di debug che contiene container di controllo genera un errore.