CMDBuild Forum

delete card failed

Hi, 

in my application I use webservice soap interface to create and update card in CMDBuild (2.3.4)

Now I have to delete a card in CMDBuild, and I'm trying to delete it using deleteCard method:

webservice.deleteCard("CardClassName", cardId);

but this exception has been raised:

 

javax.xml.ws.soap.SOAPFaultException: Fault occurred while processing.

at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:160)

at com.sun.proxy.$Proxy62.deleteCard(Unknown Source)

.......

 
I've verified that CardClassName and cardId are correct.
 
can you give me any suggestions?
thanks

Is possible to delete the card from the GUI? or deletion fails because there are active relations?
CMDBuild Team

card haven't relations, and try to delete it using Gui, fail again and this error is raised


Call: services/json/management/modcard/deletecard
--------------------------------------------------
Error: org.springframework.jdbc.BadSqlGrammarException: CallableStatementCallback; bad SQL grammar [{call cm_delete_card(?, ?, ?)}]; nested exception is org.postgresql.util.PSQLException: ERROR: column "StrutturaAffidataria" does not exist
  Where: PL/pgSQL function _cm_check_value_exists(integer,oid,text,boolean) line 12 at EXECUTE statement
PL/pgSQL function _cm_restrict(integer,oid,text) line 3 at IF
SQL statement "SELECT _cm_restrict(OLD."Id", TableId, AttributeName)"
PL/pgSQL function _cm_trigger_restrict() line 8 at PERFORM
SQL statement "UPDATE "Struttura" SET "User" = '10095067', "Status" = 'N' WHERE "Id" = 377"
PL/pgSQL function cm_delete_card(integer,oid,text) line 11 at EXECUTE statement
	at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:98)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1036)
	at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1070)
	at org.springframework.jdbc.core.simple.AbstractJdbcCall.executeCallInternal(AbstractJdbcCall.java:387)
	at org.springframework.jdbc.core.simple.AbstractJdbcCall.doExecute(AbstractJdbcCall.java:350)
	at org.springframework.jdbc.core.simple.SimpleJdbcCall.execute(SimpleJdbcCall.java:181)
	at org.cmdbuild.dao.driver.postgres.EntryDeleteCommand.execute(EntryDeleteCommand.java:24)
	at org.cmdbuild.dao.driver.postgres.PostgresDriver.delete(PostgresDriver.java:178)
	at org.cmdbuild.dao.view.DBDataView.delete(DBDataView.java:411)
	at org.cmdbuild.dao.view.ForwardingDataView.delete(ForwardingDataView.java:135)
	at org.cmdbuild.dao.view.ForwardingDataView.delete(ForwardingDataView.java:135)
	at org.cmdbuild.services.errors.management.CustomExceptionHandlerDataView.delete(CustomExceptionHandlerDataView.java:43)
	at org.cmdbuild.dao.view.user.UserDataView.delete(UserDataView.java:343)
	at org.cmdbuild.dao.view.ForwardingDataView.delete(ForwardingDataView.java:135)
	at org.cmdbuild.services.event.ObservableDataView.delete(ObservableDataView.java:93)
	at org.cmdbuild.data.store.dao.DataViewStore.delete(DataViewStore.java:251)
	at org.cmdbuild.logic.data.access.DefaultDataAccessLogic.deleteCard(DefaultDataAccessLogic.java:940)
	at org.cmdbuild.servlets.json.management.ModCard.deleteCard(ModCard.java:797)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.cmdbuild.servlets.JSONDispatcher.dispatch(JSONDispatcher.java:107)
	at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:67)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:158)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:48)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:52)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.cmdbuild.filters.LocalizationFilter.doFilter(LocalizationFilter.java:127)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
	at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:190)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:744)
Caused by: org.postgresql.util.PSQLException: ERROR: column "StrutturaAffidataria" does not exist
  Where: PL/pgSQL function _cm_check_value_exists(integer,oid,text,boolean) line 12 at EXECUTE statement
PL/pgSQL function _cm_restrict(integer,oid,text) line 3 at IF
SQL statement "SELECT _cm_restrict(OLD."Id", TableId, AttributeName)"
PL/pgSQL function _cm_trigger_restrict() line 8 at PERFORM
SQL statement "UPDATE "Struttura" SET "User" = '10095067', "Status" = 'N' WHERE "Id" = 377"
PL/pgSQL function cm_delete_card(integer,oid,text) line 11 at EXECUTE statement
	at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2102)
	at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1835)
	at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:500)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
	at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
	at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:172)
	at org.springframework.jdbc.core.JdbcTemplate$6.doInCallableStatement(JdbcTemplate.java:1072)
	at org.springframework.jdbc.core.JdbcTemplate$6.doInCallableStatement(JdbcTemplate.java:1070)
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1020)
	... 67 more

The real error is this: [ERROR: column" StrutturaAffidataria “does not exist”].
Maybe you have some inconsistencies in your database, perhaps some operation performed by hand instead of using the GUI.
CMDBuild Team

Maybe, I don't know: I interact with CMDBuild via webservices ang via GUI, but I never configured it by plsql scritp.

 

How can I verify inconsistencies in CMDBuild inconsistencies?

 

thanks

luca

 

If the problem is that, unfortunately there is not a valid rule in general.
You should look at metadata and triggers, starting from the object reported in the error message,
CMDBuild Team

As you supposed, there was a trigger not updated.
Now It works correctly
 
thanks
luca