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