Funzionalità per la gestione dei dati > Gestione di strutture di parti > Funzionalità Options and Variants di Windchill > Come filtrare una struttura di prodotto configurabile con il filtro opzioni > Valutazione delle espressioni durante il filtraggio delle opzioni
  
Valutazione delle espressioni durante il filtraggio delle opzioni
Quando si filtra il link di utilizzo vengono presi in considerazione due tipi di espressione, ovvero quelle assegnate al link di utilizzo e quelle assegnate alla parte figlio del link di utilizzo. Se è presente un'espressione della parte figlio, essa viene sempre utilizzata per l'applicazione di filtri alla parte figlio configurabile. Se la parte non è configurabile, l'espressione viene considerata (e può essere assegnata utilizzando l'interfaccia utente) solo se la preferenza Allow Assignment of Expressions to Non-Configurable Items è impostata su true.
Il link di utilizzo viene escluso se uno di uno dei due tipi di espressione (se si verifica il caso in cui sono presenti entrambi i tipi) restituisce FALSE.
Valutazioni delle espressioni booleane
Durante l'applicazione di filtri il sistema valuta le espressioni assegnate confrontandole con le selezioni effettuate nel filtro opzioni. Se per un'opzione sono selezionate alcune scelte, alle scelte selezionate viene assegnato il valore true e alle scelte non selezionate viene assegnato il valore false. Questi valori vengono sostituiti nell'espressione e l'espressione viene valutata. La valutazione a corto circuito di un'espressione booleana determina il valore dell'espressione anche se alcune delle sue variabili non sono definite. Si considerino gli esempi riportati di seguito.
Caso 1
L'espressione è RED && LARGE
Se il valore della variabile RED o LARGE è FALSE, il valore dell'intera espressione è FALSE indipendentemente da quello dell'altra variabile.
Caso 2
L'espressione è RED||LARGE
Se il valore della variabile RED o LARGE è TRUE, il valore dell'intera espressione è TRUE indipendentemente da quello dell'altra variabile.
Caso generale
Questi esempi possono essere estesi al caso generale delle espressioni booleane in quanto possono essere scomposte in congiunzioni/disgiunzioni/negazioni annidate. Ad esempio, si consideri l'espressione riportata di seguito.
(X || Y) && (Z && W) && (V || W)
Se il valore della variabile Z è FALSE, l'intera espressione booleana restituisce FALSE indipendentemente dai valori delle variabili X, Y, W, V.
Casi aggiuntivi di utilizzi per il filtraggio
Sono previsti casi aggiuntivi di utilizzo che è possibile prendere in considerazione durante il filtraggio di una struttura configurabile.
Una struttura di prodotto può avere sia espressioni di base che avanzate assegnate a diverse varianti di modulo. Di seguito viene descritto il funzionamento del filtraggio.
Nel caso delle espressioni di base, il filtro considera l'unione delle selezioni sull'elemento e sul link di utilizzo. Se almeno la valutazione di un'espressione restituisce TRUE, la variante di modulo non viene esclusa.
Nel caso delle espressioni avanzate, la variante di modulo non viene esclusa solo se sia la valutazione dell'espressione sull'elemento che la valutazione dell'espressione sul link di utilizzo di tale elemento restituiscono TRUE.
Un'espressione viene assegnata sia al link di utilizzo che ai casi d'impiego della variante di modulo nella struttura di prodotto configurata. Il filtro opzioni valuta prima l'espressione assegnata al link di utilizzo, quindi l'espressione assegnata ai rispettivi casi d'impiego, nell'ordine riportato di seguito.
Se la valutazione dell'espressione assegnata restituisce FALSE, la variante di modulo viene esclusa così come tutti i relativi casi d'impiego.
Se l'espressione assegnata restituisce TRUE, il filtro opzioni valuta l'espressione assegnata ai casi d'impiego. Se restituisce FALSE, un caso d'impiego viene escluso.