CMDBuild Forum

CQL: matchare attributo lookup vuoto

Ciao,

in un filtro di un attributo reference di un processo vorrei filtrare in base al valore di un campo lookup non mandatorio; pertanto questo può anche non essere settato. In pratica vorrei una cosa del tipo:

 

from Asset where TechnicalStatus="working" or Techicalstatus=""

 

Ho fatto almeno una dozzina di tentativi, ma senza successo e il manuale non sembra riportare esempi di questo tipo.

 

Grazie

Paolo Larcheri

Previously Paolo wrote:

from Asset where TechnicalStatus="working" or TechnicalStatus=""

 

Sembra proprio che i filtri CQL degli attributi reference abbiano qualche problema con le espressioni complesse (cioé con operatori booleani).

 

Nella definzione di un attributo reference in processo perfettamente funzionante ho il seguente filtro:

 

from Computer where AdministrativeStatus="not assigned"

 

Se "arricchisco" il filtro così:

 

from Computer where AdministrativeStatus="not assigned" or AdministrativeStatus="spare"

 

il processo smette di funzionare ed inizia a lanciare eccezioni del tipo:

 

org.cmdbuild.exception.NotFoundException: CLASS_NOTFOUND 42470
	at org.cmdbuild.exception.NotFoundException$NotFoundExceptionType.createException(NotFoundException.java:23)
	at org.cmdbuild.dao.backend.SchemaCache.getTable(SchemaCache.java:60)
	at org.cmdbuild.dao.backend.postgresql.PGCMBackend.getTable(PGCMBackend.java:1440)
	at org.cmdbuild.elements.TableFactoryImpl.get(TableFactoryImpl.java:35)
	at org.cmdbuild.elements.CardImpl.(CardImpl.java:20)

 

Anche riportando il filtro alla situazione iniziale quel processo restituirà sempre quell'errore. L'unico modo che ho trovato per risolvere è riavviare la webapp tramite Tomcat manager.

 

La domanda che mi sto ponendo è: i filtri cql supportano espressioni "complesse"?

 

 

Grazie

 

Paolo Larcheri

Previously Paolo wrote:

Previously Paolo wrote:
from Asset where TechnicalStatus="working" or TechnicalStatus=""

 

Sembra proprio che i filtri CQL degli attributi reference abbiano qualche problema con le espressioni complesse (cioé con operatori booleani).

 

Nella definzione di un attributo reference in processo perfettamente funzionante ho il seguente filtro:

 

from Computer where AdministrativeStatus="not assigned"

 

Se "arricchisco" il filtro così:

 

from Computer where AdministrativeStatus="not assigned" or AdministrativeStatus="spare"

 

All'ennesimo tentativo... con le parentesi sembra funzionare:

from Computer where (AdministrativeStatus="not assigned" or AdministrativeStatus="spare" or AdministrativeStatus="")

 

PL