Salve,
sto cercando di creare una lista di LookUp che, nell'inserimento di un computer nella base dati, permetta di scegliere tra una lista di possibili sistemi operativi (Windows, Linux, Unix, Altro).
Seguendo quanto indicato nell'Administrator Manual (pag. 22 e successive), nella console in modalità Amministrazione ho selezionato Impostazione -> LookUp e, cliccando sull'icona di destra, ho tentato di inserire un LookUp con Descrizione "Categoria Software" (come nell'esempio del manuale) ma nei "Tipo Padre" non compare la voce "Macrocategoria Software" la quale è pur presente ed attivata nella cartella Categorie.
C'è qualche operazione preliminare che devo compiere per aggiungere un nuovo tipo LookUp?
Grazie dell'attenzione,
Alessandro
Le "Categorie" e i "Lookup" sono due concetti distinti che servono a scopi diversi.
Il "tipo padre" della form relativa alla creazione di un nuovo tipo di Lookup serve per creare Lookup di tipo gerarchico.
Per creare quindi una lookup semplice con tre valori ("Windows", "Linux", "Unix") il campo "tipo padre" va lasciato vuoto.
Supponendo che voglia un grado di dettaglio maggiore, può definire una seconda Lookup "Versione OS" che avrà come tipo padre "Sistema Operativo" e con i valori "NT", "2000", "XP", "Vista", "RedHat", "Suse", "Debian", "Sun Solaris", ...
Le Categorie invece sono una facilitazione per gestire gli oggetti di tipo Asset in ottica ITIL.
Stefano
Per le mie esigenze, creare un tipo LookUp gerarchico va bene; infatti, parlando di sistemi operativi, questi fanno senz'altro parte del software sia in senso stretto che funzionale dell'applicazione; la voce Software.Operating System sembra confermare questa visione.
IL mio obiettivo è inserire un tipo "Categoria Software" con tipo padre "Macrocategoria software", proprio come nell'esempio del manuale, con lo scopo di aggiungere successivamente un attributo specifico (il sistema operativo, appunto) alla classe Computer.
Come posso fare per seguire l'esempio del manuale?
Grazie,
Alessandro
Alessandro wrote:
Il mio obiettivo è inserire un tipo "Categoria Software" con tipo padre "Macrocategoria software", proprio come nell'esempio del manuale, con lo scopo di aggiungere successivamente un attributo specifico (il sistema operativo, appunto) alla classe Computer.
i passi da seguire sono i seguenti:
- creare un tipo lookup cliccando sull'icona più a destra (simbolo “+” su gruppo di schede)
- il nome della lookup sarà "Macrocategoria software" e il valore per "tipo padre" vuoto
- creare un secondo tipo di lookup
- il nome della seconda lookup sarà "Categoria Software"
- popolare con valori la prima lookup, per aggiungere valori ad una lookup bisogna selezionarla dalla popup e poi cliccare sull'icona più a sinistra (simbolo “+” su scheda singola)
- popolare con valori la seconda lookup, stavolta viene chiesto anche la descrizione del padre ossia qual'è il valore della lookup di primo livello a cui questo valore fa riferimento
- infine creare un attributo e assegnarlo alla lookup "Categoria Software"
Quando popolo la seconda lookup, cliccando su conferma appare un messaggio "Exception Information".
Nei log di tomcat è riportato:
Query CREATELOOKUP=INSERT INTO "LookUp" ("Type","Number","Description","IsDefault","Status","Notes", "ParentType","ParentId") VALUES (?,?,?,?,?,?,?,?)
[cmdbuild.services.DBService]
[getConnection :153]
GetConnection: cmdbuild.elements.CMDBlookup.createLookup(139)
[close :168]
CloseConnection: cmdbuild.elements.CMDBlookup.createLookup(158)
Time for query: 1
org.postgresql.util.PSQLException: No value specified for parameter 8.
at org.postgresql.core.v3.SimpleParameterList.checkAllParametersSet(SimpleParameterList.java:102)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:166)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:392)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:330)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:282)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
at cmdbuild.elements.CMDBlookup.createLookup(CMDBlookup.java:153)
at cmdbuild.actions.CreateTypeLookupAction.create(CreateTypeLookupAction.java:39)
at sun.reflect.GeneratedMethodAccessor97.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at cmdbuild.processor.CMDBRequestProcessor.process(CMDBRequestProcessor.java:25)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at cmdbuild.filter.CMDBFilterChain.doFilter(CMDBFilterChain.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
[org.apache.jsp.error_jsp]
Ringrazio e saluto,
Alessandro
Purtroppo l'ultimo rilascio di CMDBuild conteneva un errore nella creazione delle lookup gerarchiche.
In questo momento stiamo caricando sul server una versione (0.90.2) con la correzione di questo problema.
La modifica non coinvolge il database, quindi se ha già installato la versione 0.90.1 non è necessario eseguire il ripristino o l'aggiornamento del db.
Grazie per la segnalazione,
Stefano