Ciao.
Sto' facendo eseguire le cmdb.callFunction. Se le store procedure che scrivo contengono delle SELECT con parametri di storeProcedure solo in OUTPUT, allora le invocazioni alla callFunciotn funzionano correttamente. Se invece si fa eseguire una callFunction che esegue una UPDATE con almeno 1 parametro di INPUT come la seguente :
-- Function: public."cmwf_setAssetReserved"(integer)
-- DROP FUNCTION public."cmwf_setAssetReserved"(integer);
CREATE OR REPLACE FUNCTION public."cmwf_setAssetReserved"("AssetId" integer)
RETURNS void AS
$BODY$
BEGIN
update public."Asset" set "Stato"=2088 where "Id"="AssetId";
END
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public."cmwf_setAssetReserved"(integer)
OWNER TO postgres;
COMMENT ON FUNCTION public."cmwf_setAssetReserved"(integer) IS 'TYPE: function';
allora viene prodotta l'exception error riporato qui sotto
"org.enhydra.shark.api.internal.toolagent.ToolAgentGeneralException: Sourced file: eval stream : Method Invocation execute"
il dettaglio completo dell'exception e' riportato qui sotto dopo il tag ERRORE_EXCEPTION_COMPLETA
In altri punti di questo forum ho visto che un problema simile e' stato riportato gia' altre volte, ma non non vedo mai la soluzione esatta al problema. In particolare sembra che per dichiarare le CallFunction che hanno parametri in INPUT si debba utilizzare una sintassi SQL particolare. Sui manuali c'e' una pagina dove vengono viualizzati degli esempi di dichiarazione che fanno uso della EXECUTE e RETRUN QUERY EXECUTE, ... ho provato ad usarli ma non funziona
Quindi la domanda: qual e' l'errore nella mia dichiarazione di FUNCTION qui sopra ?
Quale e' il modo corretto di dichiarare le function con attributi in INPUT ?
Oppure potreste fornire degli esempi funzionanti ?
Grazie
M.
ERRORE_EXCEPTION_COMPLETA
Call: services/json/workflow/saveactivity
------------------------------------------
Error: org.cmdbuild.workflow.CMWorkflowException: org.enhydra.shark.api.internal.toolagent.ToolAgentGeneralException: Sourced file: eval stream : Method Invocation execute
at org.cmdbuild.workflow.service.AbstractSharkService.advanceActivityInstance(AbstractSharkService.java:435)
at org.cmdbuild.workflow.service.TransactedSharkService.access$1301(TransactedSharkService.java:16)
at org.cmdbuild.workflow.service.TransactedSharkService$13.command(TransactedSharkService.java:225)
at org.cmdbuild.workflow.service.TransactedSharkService$13.command(TransactedSharkService.java:222)
at org.cmdbuild.workflow.service.TransactedSharkService$TransactedExecutor.execute(TransactedSharkService.java:24)
at org.cmdbuild.workflow.service.TransactedSharkService.advanceActivityInstance(TransactedSharkService.java:222)
at org.cmdbuild.workflow.DefaultWorkflowEngine.advanceActivity(DefaultWorkflowEngine.java:455)
at org.cmdbuild.logic.WorkflowLogic.updateActivity(WorkflowLogic.java:401)
at org.cmdbuild.logic.WorkflowLogic.updateProcess(WorkflowLogic.java:371)
at org.cmdbuild.logic.WorkflowLogic.updateProcess(WorkflowLogic.java:353)
at org.cmdbuild.servlets.json.Workflow.saveActivity(Workflow.java:189)
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:94)
at org.cmdbuild.servlets.JSONDispatcher.doPost(JSONDispatcher.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.cmdbuild.filters.AuthFilter.doFilter(AuthFilter.java:144)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.cmdbuild.filters.PatchManagerFilter.doFilter(PatchManagerFilter.java:33)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.cmdbuild.filters.ConfCheckFilter.doFilter(ConfCheckFilter.java:31)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.cmdbuild.filters.TranslationFilter.doFilter(TranslationFilter.java:39)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.enhydra.shark.api.internal.toolagent.ToolAgentGeneralException: Sourced file: eval stream : Method Invocation execute
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.enhydra.shark.ejb.client.ws.WAPIEJBEndpointPortSoapBindingStub.changeActivityInstanceState(Unknown Source)
at org.cmdbuild.workflow.service.AbstractSharkService.advanceActivityInstance(AbstractSharkService.java:431)
... 49 more