CMDBuild Forum

Re: Errore org.cmdbuild.shark.toolagent.ExecuteStoredProcedureToolAgent

Salve,

ho un errore nell'esecuzione di una funzione postgreSQL. In un workflow di gestione dell'incident management ho creato una funzione che avendo in input due parametri (impatto e urgenza) legge da una tabella il valore della priorità. La funzione creata è la sequente:

 

CREATE FUNCTION check_priority(char(5), char(5))

RETURNS char(1)

     AS 'DECLARE risultato char(1);

         impatto1 alias for $1;

         urgenza1 alias for $2;                

         BEGIN           

            SELECT priorita INTO risultato

            FROM priority

            WHERE impatto=impatto1 AND

            urgenza=urgenza1;

            return risultato;

         END;'

language 'plpgsql';

 

In psql eseguendo la funzione mi restituisce correttamente il risultato

 

cmdbuild=# select check_priority('Basso','Basso');

 check_priority

----------------

 5

(1 row)

 

In JPED ho creato una nuova applicazione di processo check_priority con:

3 parametri formali (impatto(string), urgenza(string) in input e risultato(string) in output);

2 extended attribute (ToolAgentClass (con valore org.cmdbuild.shark.toolagent.ExecuteStoredProcedureToolAgent)  e Procedure (con valore check_priority));

 

In una attività di sistema ho richiamato la funzione con un nuovo tool con id check_priority e i tre parametri attuali dichiarati come string. La funzione però va in errore e nel log catalina.out è riportato:

 

2011-03-20 15:20:50,962: Activity[Process Id=4_Package_gestioneticket_Process_gestioneticket, Id=16_4_Package_gestioneticket_Process_gestioneticket_SendMailLavorazione, ba=null, ActDefId=SendMailLavorazione] - Executing tool [id=getLookupDescription]

2011-03-20 15:20:50,986: Activity[Process Id=4_Package_gestioneticket_Process_gestioneticket, Id=16_4_Package_gestioneticket_Process_gestioneticket_SendMailLavorazione, ba=null, ActDefId=SendMailLavorazione] - Executing tool [id=getLookupDescription]

2011-03-20 15:20:50,997: Activity[Process Id=4_Package_gestioneticket_Process_gestioneticket, Id=16_4_Package_gestioneticket_Process_gestioneticket_SendMailLavorazione, ba=null, ActDefId=SendMailLavorazione] - Executing tool [id=check_priority]

No condition for SendMailLavorazione(tool #5 - check_priority)

ExecuteStoredProcedure xml document:

 

<?xml version="1.0" encoding="UTF-8"?>

 

<ExecuteStoredProcedure ResultSetType="false" ><Inputs><Input type="0" >Alto</Input>

 

<Input type="0" >Alto</Input>

 

</Inputs><OutClasses><OutClass index="0">java.lang.String</OutClass>

 

</OutClasses></ExecuteStoredProcedure>

ExecuteStoredProcedure status: 500

[Fatal Error] :1:989: The element type "HR" must be terminated by the matching end-tag "</HR>".

org.xml.sax.SAXParseException: The element type "HR" must be terminated by the matching end-tag "</HR>".

    at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)

    at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)

    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:98)

    at org.cmdbuild.shark.toolagent.ExecuteStoredProcedureToolAgent.innerInvoke(ExecuteStoredProcedureToolAgent.java:168)

    at org.cmdbuild.shark.toolagent.AbstractConditionalToolAgent.invokeApplication(AbstractConditionalToolAgent.java:76)

    at org.enhydra.shark.toolagent.DefaultToolAgent.invokeApplication(DefaultToolAgent.java:163)

    at org.enhydra.shark.toolagent.StandardToolAgentManager.invokeToolAgent(StandardToolAgentManager.java:146)

    at org.enhydra.shark.StandardToolActivityHandler$ToolRunner.invokeApplication(StandardToolActivityHandler.java:179)

    at org.enhydra.shark.StandardToolActivityHandler$ToolRunner.run(StandardToolActivityHandler.java:88)

    at org.enhydra.shark.StandardToolActivityHandler.executeActivity(StandardToolActivityHandler.java:46)

    at org.enhydra.shark.WfActivityImpl.runTool(WfActivityImpl.java:1489)

    at org.enhydra.shark.WfActivityImpl.startActivity(WfActivityImpl.java:1421)

    at org.enhydra.shark.WfActivityImpl.activate(WfActivityImpl.java:263)

    at org.enhydra.shark.WfProcessImpl.startActivity(WfProcessImpl.java:920)

    at org.enhydra.shark.WfProcessImpl.queueNext(WfProcessImpl.java:1136)

    at org.enhydra.shark.WfProcessImpl.run(WfProcessImpl.java:750)

    at org.enhydra.shark.WfProcessImpl.activity_complete(WfProcessImpl.java:971)

    at org.enhydra.shark.WfActivityImpl.finish(WfActivityImpl.java:443)

    at org.enhydra.shark.WfActivityImpl.complete(WfActivityImpl.java:368)

    at org.enhydra.shark.SharkUtilities.changeActivityState(SharkUtilities.java:1971)

    at org.enhydra.shark.WAPIImpl.changeWorkItemState(WAPIImpl.java:1206)

    at org.enhydra.shark.ws.WAPIWrapper.changeWorkItemState(WAPIWrapper.java:984)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:585)

    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)

    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)

    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)

    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)

    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)

    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

    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 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:293)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)

    at java.lang.Thread.run(Thread.java:595)

org.enhydra.shark.api.internal.toolagent.ToolAgentGeneralException: cannot execute stored procedure: check_priority

    at org.cmdbuild.shark.toolagent.ExecuteStoredProcedureToolAgent.innerInvoke(ExecuteStoredProcedureToolAgent.java:191)

    at org.cmdbuild.shark.toolagent.AbstractConditionalToolAgent.invokeApplication(AbstractConditionalToolAgent.java:76)

    at org.enhydra.shark.toolagent.DefaultToolAgent.invokeApplication(DefaultToolAgent.java:163)

    at org.enhydra.shark.toolagent.StandardToolAgentManager.invokeToolAgent(StandardToolAgentManager.java:146)

    at org.enhydra.shark.StandardToolActivityHandler$ToolRunner.invokeApplication(StandardToolActivityHandler.java:179)

    at org.enhydra.shark.StandardToolActivityHandler$ToolRunner.run(StandardToolActivityHandler.java:88)

    at org.enhydra.shark.StandardToolActivityHandler.executeActivity(StandardToolActivityHandler.java:46)

    at org.enhydra.shark.WfActivityImpl.runTool(WfActivityImpl.java:1489)

    at org.enhydra.shark.WfActivityImpl.startActivity(WfActivityImpl.java:1421)

    at org.enhydra.shark.WfActivityImpl.activate(WfActivityImpl.java:263)

    at org.enhydra.shark.WfProcessImpl.startActivity(WfProcessImpl.java:920)

    at org.enhydra.shark.WfProcessImpl.queueNext(WfProcessImpl.java:1136)

    at org.enhydra.shark.WfProcessImpl.run(WfProcessImpl.java:750)

    at org.enhydra.shark.WfProcessImpl.activity_complete(WfProcessImpl.java:971)

    at org.enhydra.shark.WfActivityImpl.finish(WfActivityImpl.java:443)

    at org.enhydra.shark.WfActivityImpl.complete(WfActivityImpl.java:368)

    at org.enhydra.shark.SharkUtilities.changeActivityState(SharkUtilities.java:1971)

    at org.enhydra.shark.WAPIImpl.changeWorkItemState(WAPIImpl.java:1206)

    at org.enhydra.shark.ws.WAPIWrapper.changeWorkItemState(WAPIWrapper.java:984)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:585)

    at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)

    at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)

    at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)

    at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)

    at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)

    at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)

    at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)

    at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)

    at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)

    at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)

    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 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:293)

    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)

    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)

    at java.lang.Thread.run(Thread.java:595)

2011-03-20 15:20:51,020: DefaultToolAgent - can't execute tool agent class org.cmdbuild.shark.toolagent.ExecuteStoredProcedureToolAgent - application  terminated incorrectly: org.enhydra.shark.api.internal.toolagent.ToolAgentGeneralException: cannot execute stored procedure: check_priority

2011-03-20 15:20:51,020: Activity[Process Id=4_Package_gestioneticket_Process_gestioneticket, Id=16_4_Package_gestioneticket_Process_gestioneticket_SendMailLavorazione, ba=null, ActDefId=SendMailLavorazione] - failed to execute tool [id=check_priority]

Event audit - Activity 16_4_Package_gestioneticket_Process_gestioneticket_SendMailLavorazione state changed from open.running to closed.terminated

 

 

C'è qualche passaggio descritto nel manuale dei workflow che non eseguo correttamente?

 

Grazie della disponibilità,

Andrea