# Metadati

> Il catalogo dei campi che una prova acquisisce all'Avvio (testo, numero o un identificatore sequenziale composto), il contatore dietro a un campo sequenziale, e il codice e lo stato dei contatori di ogni unità.

**Metadati** è il catalogo del modello dei campi che una prova acquisisce all'Avvio: un numero di serie, un lotto, il nome di un operatore, un identificatore composto. Un campo si definisce una volta sul modello perché significhi la stessa cosa su ogni unità, e i filtri dello storico e i rapporti restano coerenti; ogni [procedura](process-procedures) sceglie il sottoinsieme che richiede, e i valori sono congelati nel file della prova. La schermata **Metadati** (Process > modello > Definizione > Metadati) porta il catalogo in alto, le unità sotto di esso, e accanto le impostazioni del campo scelto o dell'unità scelta. L'intestazione dice "Il catalogo dei campi acquisiti all'avvio di una prova, e ciò con cui timbra ciascuna unità." e conta i campi e le unità.

Leggere richiede Consultare i modelli; ogni modifica richiede Gestire Process e una stazione sbloccata. La schermata porta la forma che ogni schermata di Definizione condivide (vedi [Definizione](process-definition#the-one-shape-of-the-five-screens)).

## Definizione del modello: il catalogo {#model-definition-the-catalogue}

La testata dice "Il catalogo. Vale per ogni unità: un campo aggiunto o rimosso qui cambia la tabella di ogni unità." e porta **Campo**, che aggiunge in coda una riga che prende il nome dal primo "Campo N" libero, scelta, con le sue impostazioni accanto, e portata in vista (in grigio mentre la stazione è bloccata; non disegnato senza Gestire Process).

| Colonna | Che cos'è | Valori / valore predefinito | Effetto |
| --- | --- | --- | --- |
| **Nome** | "Ogni prova registra il suo valore sotto questo nome." Ed è anche il punto di preparazione `Process.<Model>.<Unit>.Next.<Name>` che il prossimo Avvio consuma. | Testo libero; "Campo N" alla creazione. | Una rinomina sicura: la riga di anteprima dice quante posizioni leggono l'indirizzo, e la conferma le riscrive e porta al nuovo nome ogni valore già preparato su un'unità. Rifiutata per un nome il cui segmento è già quello di un altro campo ("Il nome 'X' corrisponde al segmento di indirizzo 'Y', già usato da 'Z'.") e per il nome riservato del punto della procedura preparata ("Il nome 'Procedure' corrisponde al segmento di indirizzo riservato 'Procedure'."). |
| **Genere** | "Da dove viene il valore di questo campo in una prova." | **Testo** ("L'operatore lo digita all'avvio della prova."), **Numero** ("L'operatore digita un numero all'avvio della prova."), **Sequenziale** ("L'applicazione lo compone e riserva il valore quando la prova viene accettata."); Testo. | Passare a Sequenziale aggiunge alla composizione la parte Contatore, obbligatoria. |
| **Obbligatorio** | Se ogni procedura chiede il campo ("Richiesto da ogni procedura di questo modello, fissato nel loro elenco di metadati. Non semplicemente obbligatorio se una procedura lo chiede."). | acceso / spento; spento. | Acceso: "Ogni procedura di questo modello lo richiede, e nessuna prova parte senza di esso." Spento: "Lo richiedono solo le procedure che lo chiedono." |
| **Ambito del contatore** | Soltanto Sequenziale: per che cosa il contatore è contato. | **Intero modello**, **Per unità**, **Per procedura**, **Per procedura e unità**; Tutto il modello. | Cambiarlo chiede prima: "Cambiare 'Serial' in un contatore per unità? Uno o più contatori hanno già emesso valori. Gli stati Ultimo e Prossimo attuali non vengono convertiti né distribuiti. I nuovi stati partono dal valore iniziale configurato e vanno rivisti prima della prossima prova." |
| **Prossimo identificatore** | Soltanto Sequenziale: l'identificatore che la composizione emetterebbe come prossimo, con data e codici di esempio. | In sola lettura. | Vedi l'anteprima più sotto. |
| **Sposta il campo in su** e **Sposta il campo in giù** (riga) | Spostano il campo di un posto nel catalogo. | | Grigi agli estremi dell'elenco. Se la stazione rifiuta la scrittura, la riga torna dov'era. |
| **Rimuovi** (riga, inchiostro di pericolo) | Toglie il campo e la sua scelta da ogni procedura. | | Conferma "Eliminare 'X'? Questo toglie il campo e il suo uso in ogni procedura di questo modello. L'operazione non è reversibile." |

I campi sono elencati, e richiesti all'Avvio, nell'ordine in cui il catalogo li tiene, cioè quello di inserimento finché i comandi della riga non lo cambiano.

## La colonna delle impostazioni per un campo {#the-settings-column-for-a-field}

Scegliere una riga la apre per intero ("Metadati · Numero di serie"): **Nome**, **Genere** e **Obbligatorio**, ciascuno sopra la riga che dice che cosa decide e che cosa produce il valore in vigore. Un campo Sequenziale aggiunge sotto di essi la propria composizione e il proprio contatore.

### Anteprima {#preview}

Il blocco **ANTEPRIMA** mostra l'identificatore che il campo emetterebbe come prossimo, a partire dal valore Prossimo attuale del contatore, dal primo codice di unità e codice di procedura trovati sul modello (oppure `UNIT` e `PROC` finché nessuno è impostato) e dalla data di oggi: "Data e codici di esempio. Il valore si riserva quando la prova viene accettata." Una configurazione che il campo rifiuta dice "Anteprima non disponibile", e il motivo sta come nota sotto l'anteprima ("I metadati sequenziali 'X' devono contenere esattamente una parte contatore.", "… ha bisogno di un numero di cifre del contatore fra 1 e 18.", "… ha un valore iniziale fuori da 0–999999.", "… ha una parte Anno che deve usare due o quattro cifre.").

### Il contatore {#the-counter}

| Campo | Che cos'è | Valori / valore predefinito | Effetto |
| --- | --- | --- | --- |
| **Ambito del contatore** | Il confine di condivisione dello stato del contatore: uno stato per tutto il modello, uno per unità, uno per procedura, oppure uno per coppia di procedura e unità. | I quattro ambiti; Tutto il modello. | Un cambio di ambito crea stati freschi a partire dal valore iniziale e non converte né ridistribuisce mai quelli vecchi (la conferma qui sopra). |
| **Valore iniziale** | Da dove parte ogni stato appena creato, e dove il contatore ricomincia dopo il proprio massimo. | Da 0 fino al massimo delle cifre; 1. | Modificarlo non azzera mai uno stato esistente. |
| **Cifre del contatore** | La larghezza stampata, e quindi il limite superiore: sei cifre contano fino a 999999. | Da 1 a 18; 6. | Ridurle sotto il valore Prossimo attuale di uno stato è rifiutato al salvataggio: "Le cifre del contatore di 'Serial' non possono rappresentare il suo valore prossimo attuale 1200000. Regola Prossimo prima di ridurre il numero di cifre." |
| **Completa il contatore con zeri iniziali** | Se la parte contatore è riempita a sinistra fino al numero di cifre. | acceso / spento; acceso. | `000042` contro `42`. |

### Composizione {#composition}

L'identificatore è un elenco ordinato di parti, indipendente dalla cultura. La testata **Composizione** porta un selettore di genere e **Parte**, che aggiunge in coda una parte di quel genere.

| Parte | Emette | Impostazioni |
| --- | --- | --- |
| **Testo fisso** | Testo letterale, separatori compresi. | Un campo di testo (testo segnaposto "separatore o testo fisso"; una parte nuova parte da `-`). |
| **Anno** | L'anno del calendario locale. | **2 cifre** oppure **4 cifre** (4 per una parte nuova). |
| **Mese** | "Mese locale a due cifre". | |
| **Giorno** | "Giorno locale a due cifre". | |
| **Contatore** | "Il contatore riservato del campo". | Esattamente una, aggiunta da sé quando il campo diventa Sequenziale; non si può rimuovere e il suo genere non si può cambiare. |
| **Codice dell'unità** | "Codice configurato sull'unità". | |
| **Codice della procedura** | "Codice configurato sulla procedura". | |

Ogni riga di parte porta il proprio indice, il proprio genere (una casella combinata per ogni genere tranne Contatore), la propria impostazione, e **Sposta la parte in su**, **Sposta la parte in giù** e **Rimuovi la parte**. Dove una composizione usa un codice di unità o di procedura, un Avvio su un'unità o una procedura il cui codice è vuoto è rifiutato ("I metadati sequenziali 'X' hanno bisogno di un codice unità. Impostarlo nella pagina del modello, nella tabella Unità.").

### Il contatore condiviso del modello {#the-shared-model-counter}

Per un campo contato per Tutto il modello la colonna finisce con una riga **Contatore condiviso del modello**, "Tutte le unità e le procedure": **ULTIMO EMESSO** (l'ultimo valore effettivamente riservato, oppure un trattino prima del primo Avvio) e **Prossimo** (il valore che il prossimo Avvio accettato riserva). Prossimo è modificabile, anche all'indietro; la riga avverte "Può ripetere un identificatore" mentre Prossimo non è superiore a Ultimo, e la testata ripete "Abbassare Prossimo può ripetere un identificatore già emesso." Un valore fuori da 0 fino al massimo è rifiutato: "Il valore Prossimo di 'Serial' deve essere compreso tra 0 e 999999." Prossimo è disattivato mentre la stazione è bloccata e finché lo stato non esiste (gli stati si creano quando il modello viene salvato).

I contatori contati per Procedura stanno sulla pagina propria della procedura; i contatori per unità e per procedura + unità stanno sotto l'unità, più sotto.

## Per unità: l'elenco delle unità {#per-unit-the-units-list}

L'area in basso elenca le unità, con **Gestisci le unità** all'estremità della sua testata.

| Colonna | Che cosa mostra |
| --- | --- |
| **Unità** | Il nome dell'unità. |
| **Codice** | Il codice dell'unità, "Nessun codice" finché è vuoto, oppure "Ancora nessun codice" nell'inchiostro di cautela mentre un campo sequenziale del modello compone il codice unità. |
| **Contatori** | "Nessun contatore", "1 contatore" oppure "N contatori": uno per campo contato per unità (un campo obbligatorio, o uno che qualche procedura sceglie), più uno per procedura applicabile per ogni campo contato per procedura + unità. |

## La colonna delle impostazioni per un'unità {#the-settings-column-for-a-unit}

Scegliere un'unità apre che cosa quel banco timbra ("Unità · Unit 1"):

| Campo | Che cos'è | Effetto |
| --- | --- | --- |
| **Codice dell'unità** | "Condiviso da ogni campo sequenziale che compone “Codice dell'unità”. Rinominare l'unità non lo cambia mai." Testo segnaposto "facoltativo finché non serve". | Lo stesso codice della tabella Unità sulla pagina del modello; ripulito agli estremi, vuoto significa nessuno. |
| Righe di stato del contatore | Una riga per stato di contatore che l'unità possiede: il nome del campo con il contesto "Questa unità" (Per unità) o il nome della procedura (Per procedura + unità); ULTIMO EMESSO e un Prossimo modificabile, come qui sopra. | "Ultimo non viene mai riscritto. Abbassare Prossimo o ripartire dopo il massimo può ripetere un identificatore." Senza nessuno: "Nessuna procedura di questo modello timbra un campo sequenziale che conta per unità, quindi questo banco non conserva stati di contatore." |

## Come si riserva un valore sequenziale {#how-a-sequential-value-is-reserved}

A un Avvio accettato, dopo che ogni altra convalida è passata (campi manuali, codici obbligatori, collegamenti, disponibilità dell'unità, blocchi delle sorgenti), ogni campo sequenziale della prova riserva il proprio numero in una sola transazione immediata; Avvii concorrenti non possono mai osservare lo stesso Prossimo. Il testo formattato, zeri iniziali compresi, è congelato nella prova: modifiche successive al campo, ai codici o ai contatori non lo riscrivono mai. Un arresto anomalo dentro quella piccola finestra può lasciare un buco, ma un numero non è mai riusato automaticamente. Gli snapshot e le valutazioni autonome non chiedono metadati e non riservano nulla. Sulle superfici di un'unità un campo sequenziale si legge come previsione del proprio valore prossimo e non si digita.

## Che cosa questa schermata non fa {#what-this-screen-does-not-do}

- Non sceglie alcun sottoinsieme: quali campi una prova chiede si sceglie su ogni [procedura](process-procedures); soltanto Obbligatorio impone un campo a ogni procedura.
- Non digita alcun valore: i valori si inseriscono all'Avvio sul pannello dell'unità o su una dashboard, oppure li fornisce l'[Automazione](process-automation).
- Non converte gli stati dei contatori quando cambia un ambito.
- Non riscrive alcun valore congelato: una prova conserva ciò che ha timbrato.
