CMDBuild Forum

problema con metodo API createRelation

Salve,

sto cercando di creare un workflow per la gestione degli eventi seguendo il pdf del tutorial e il file HelpDeskSemplice.xpdl. Utilizzo la versione 1.2.2 ci cmdbuild con la macchina virtuale preinstallata. Ho creato un semplice workflow come test che prevede come prima fase l'inserimento del richiedente e successivamente, oltre alla visualizzazione del richiedente inserito precendentemente, l'associazione di un Item al ticket. In questa attività ho inserito nel tab extendet attribute il metodo createRelation con il valore

DomainName="ItemProva"
ClassName="Prova"
ObjId=ProcessId
Ret

ma ho provato anche con

DomainName="ItemProva"
ClassName1="Prova"
ObjId1=ProcessId
Ret

 

etc. etc.

dove ItemProva è il nome del dominio, con origine "Prova" e destinazione la superclasse "Item", della classe del processo che si chiama "Prova" e ret una var boolean. L'xpdl di questa attività è

<Activity Id="Associa" Name="Associa">

<Implementation>

<No/>

</Implementation>

<Performer>HelpDesk</Performer>

<ExtendedAttributes>

<ExtendedAttribute Name="JaWE_GRAPH_PARTICIPANT_ID" Value="HelpDesk"/>

<ExtendedAttribute Name="JaWE_GRAPH_OFFSET" Value="391,63"/>

<ExtendedAttribute Name="createRelation" Value="DomainName=&quot;ItemProva&quot;&#10;ClassName=&quot;Prova&quot;&#10;ObjId=ProcessId&#10;Ret"/>

<ExtendedAttribute Name="VariableToProcess_VIEW" Value="Richiedente"/>

</ExtendedAttributes>

</Activity>

 

Non ho nessun errore al caricamento dell'xpdl nè quando dopo aver inserito il richiedente vado all'attività Associa. Ma in questa non vedo nessun link che mi permetta di associare l'item da una lista come spiegato nel tutorial.

Il file catalina.out di shark nel punto dell'attività interessata è il seguente

 

2010-12-16 17:22:47,032: Process[key=209_Package_prova_Process_prova,mgrname=Package_prova#12#Process_prova] - Activity[Process Id=209_Package_prova_Process_prova, Id=221_209_Package_prova_Process_prova_Inserisci, ba=null, ActDefId=Inserisci] is completed.

2010-12-16 17:22:47,036: Process[key=209_Package_prova_Process_prova,mgrname=Package_prova#12#Process_prova] - Activity[Process Id=209_Package_prova_Process_prova, Id=222_209_Package_prova_Process_prova_Associa, ba=null, ActDefId=Associa] is created

Event audit - Activity 222_209_Package_prova_Process_prova_Associa state changed from null to open.not_running.not_started

 

cmdbuildInfo getStruct from name: Prova

ActivityOpened Request status: 200

2010-12-16 17:22:47,110: WAPIImpl.changeWorkItemState took 203 millis for proc=209_Package_prova_Process_prova,workitem=221_209_Package_prova_Process_prova_Inserisci#admin,newState=closed.completed,WMSessionHandle[Id=97,vendorData=admin@SuperUser]

Event audit - Activity 222_209_Package_prova_Process_prova_Associa state changed from open.not_running.not_started to open.running

 

cmdbuildInfo getStruct from name: Prova

Event audit - Activity 222_209_Package_prova_Process_prova_Associa state changed from open.running to closed.completed

 

cmdbuildInfo getStruct from name: Prova

sendActivityModified cardId: 295

activity closed: eventaudit/activitymodified/Package_prova/Process_prova/209_Package_prova_Process_prova/222_209_Package_prova_Process_prova_Associa

act.mod:

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

<Card CardId="295" CmdbuildClass="Prova">

    <Attributes>

        <Attribute Name="Richiedente" class="org.cmdbuild.workflow.type.ReferenceType">

            <Id>106</Id>

            <Description/>

            <IdClass>947550</IdClass>

        </Attribute>

        <Attribute Name="Priority">0</Attribute>

        <Attribute Name="NumTicket">0</Attribute>

        <Attribute Name="Description"/>

    </Attributes>

</Card>

 

 

 

mentre il log di cmdbuild sebra che non trovi nessun extended attribute nell'attività associa. Il log è il seguente

 

DEBUG 2010-12-16 17:22:47 [workflow] Workflow status: Avviato

DEBUG 2010-12-16 17:22:47 [sql     ] SELECT DISTINCT "Prova"."Status" AS "Prova_Status", "Prova"."NextExecutor" AS "Prova_NextExecutor", "Prova"."IdClass"::int4 AS "Prova_IdClass", "Prova"."Notes" AS "Prova_Notes", "Utente_Richiedente"."Id" AS "Prova_Richiedente", "Utente_Richiedente"."Description" AS "Prova_Richiedente_Description", "Prova"."BeginDate" AS "Prova_BeginDate", "Prova"."User" AS "Prova_User", "Prova"."Priority" AS "Prova_Priority", "Prova"."ActivityDescription" AS "Prova_ActivityDescription", "Prova"."ActivityDefinitionId" AS "Prova_ActivityDefinitionId", "Prova"."IsQuickAccept" AS "Prova_IsQuickAccept", "Prova"."NumTicket" AS "Prova_NumTicket", "Prova"."Description" AS "Prova_Description", "LookUp_FlowStatus"."Id" AS "Prova_FlowStatus", "LookUp_FlowStatus"."Description" AS "Prova_FlowStatus_Description", "Prova"."Code" AS "Prova_Code", "Prova"."ProcessCode" AS "Prova_ProcessCode", "Prova"."Id" AS "Prova_Id", (SELECT COUNT(*) FROM (SELECT DISTINCT "Prova"."Id" FROM "Prova" AS "Prova" LEFT JOIN "Utente" AS "Utente_Richiedente" ON "Utente_Richiedente"."Id" = "Prova"."Richiedente" LEFT JOIN "LookUp" AS "LookUp_FlowStatus" ON "LookUp_FlowStatus"."Id" = "Prova"."FlowStatus" WHERE ( ( "LookUp_FlowStatus"."Id" = 6 ) AND ( "Prova"."Status" = 'A' ) )) AS countid) AS "Count" FROM "Prova" AS "Prova" LEFT JOIN "Utente" AS "Utente_Richiedente" ON "Utente_Richiedente"."Id" = "Prova"."Richiedente" LEFT JOIN "LookUp" AS "LookUp_FlowStatus" ON "LookUp_FlowStatus"."Id" = "Prova"."FlowStatus" WHERE ( ( "LookUp_FlowStatus"."Id" = 6 ) AND ( "Prova"."Status" = 'A' ) ) ORDER BY "Prova"."Description" ASC, "Prova"."Id" ASC  OFFSET 0 LIMIT 20

DEBUG 2010-12-16 17:22:47 [workflow] obtain session handle...

DEBUG 2010-12-16 17:22:47 [workflow] call to execute

DEBUG 2010-12-16 17:22:48 [workflow] found card for 295

DEBUG 2010-12-16 17:22:48 [workflow] activities of process Process_prova already loaded

DEBUG 2010-12-16 17:22:48 [workflow] ext attrs of Associa, size: 0

DEBUG 2010-12-16 17:22:48 [workflow] ActivityDO object created for: 209_Package_prova_Process_prova, 222_209_Package_prova_Process_prova_Associa#admin

DEBUG 2010-12-16 17:22:48 [workflow] configureExtAttrs. on ActivityDO called

DEBUG 2010-12-16 17:22:48 [workflow] getActivityParticipant called

DEBUG 2010-12-16 17:22:48 [workflow] activities of process Process_prova already loaded

DEBUG 2010-12-16 17:22:48 [workflow] performer of Associa group: HelpDesk

DEBUG 2010-12-16 17:22:48 [workflow] disconnect from workflow engine

INFO  2010-12-16 17:22:50 [jsonrpc ] Calling url /management/modworkflow/advanceprocess

DEBUG 2010-12-16 17:22:50 [workflow] ProcessInstanceId: 209_Package_prova_Process_prova, WorkItemId: 222_209_Package_prova_Process_prova_Associa#admin

DEBUG 2010-12-16 17:22:50 [workflow] obtain session handle...

DEBUG 2010-12-16 17:22:50 [workflow] call to execute

INFO  2010-12-16 17:22:50 [workflow] Updating workitem 222_209_Package_prova_Process_prova_Associa#admin

DEBUG 2010-12-16 17:22:50 [workflow] get WorkItem  [ProcInstId: 209_Package_prova_Process_prova, WorkItemId: 222_209_Package_prova_Process_prova_Associa#admin

DEBUG 2010-12-16 17:22:50 [workflow] activities of process Process_prova already loaded

DEBUG 2010-12-16 17:22:50 [workflow] activities of process Process_prova already loaded

DEBUG 2010-12-16 17:22:50 [persist ] reference Richiedente was null, create and set changed

DEBUG 2010-12-16 17:22:50 [workflow] ext attrs of Associa, size: 0

DEBUG 2010-12-16 17:22:50 [workflow] ActivityDO object created for: 209_Package_prova_Process_prova, 222_209_Package_prova_Process_prova_Associa#admin

DEBUG 2010-12-16 17:22:50 [persist ] Lazy loaded card requested: 955818, 295

DEBUG 2010-12-16 17:22:50 [sql     ] SELECT DISTINCT "Prova"."Status" AS "Prova_Status", "Prova"."NextExecutor" AS "Prova_NextExecutor", "Prova"."IdClass"::int4 AS "Prova_IdClass", "Prova"."Notes" AS "Prova_Notes", "Utente_Richiedente"."Id" AS "Prova_Richiedente", "Utente_Richiedente"."Description" AS "Prova_Richiedente_Description", "Prova"."BeginDate" AS "Prova_BeginDate", "Prova"."User" AS "Prova_User", "Prova"."Priority" AS "Prova_Priority", "Prova"."ActivityDescription" AS "Prova_ActivityDescription", "Prova"."ActivityDefinitionId" AS "Prova_ActivityDefinitionId", "Prova"."IsQuickAccept" AS "Prova_IsQuickAccept", "Prova"."NumTicket" AS "Prova_NumTicket", "Prova"."Description" AS "Prova_Description", "LookUp_FlowStatus"."Id" AS "Prova_FlowStatus", "LookUp_FlowStatus"."Description" AS "Prova_FlowStatus_Description", "Prova"."Code" AS "Prova_Code", "Prova"."ProcessCode" AS "Prova_ProcessCode", "Prova"."Id" AS "Prova_Id" FROM "Prova" AS "Prova" LEFT JOIN "Utente" AS "Utente_Richiedente" ON "Utente_Richiedente"."Id" = "Prova"."Richiedente" LEFT JOIN "LookUp" AS "LookUp_FlowStatus" ON "LookUp_FlowStatus"."Id" = "Prova"."FlowStatus" WHERE ( "Prova"."Id" = 295 ) ORDER BY "Prova"."Id" ASC

DEBUG 2010-12-16 17:22:50 [sql     ] UPDATE "Prova" SET "Code" = 'Associa',"User" = 'admin' WHERE ( "Prova"."Id" = 295 )

DEBUG 2010-12-16 17:22:51 [workflow] Attribute 'Richiedente': ReferenceType[idclass: 947550 id: 106 description: ]

DEBUG 2010-12-16 17:22:51 [workflow] accepting work item

INFO  2010-12-16 17:22:51 [workflow] Event audit - Activity 222_209_Package_prova_Process_prova_Associa modified

DEBUG 2010-12-16 17:22:51 [workflow] Event audit - packId: Package_prova - procDefId: Process_prova - procInstId: 209_Package_prova_Process_prova - actInstId: 222_209_Package_prova_Process_prova_Associa, params -- cardId: 295 - requester: admin

DEBUG 2010-12-16 17:22:51 [persist ] Lazy loaded card requested: 955818, 295

DEBUG 2010-12-16 17:22:51 [sql     ] SELECT DISTINCT "Prova"."Status" AS "Prova_Status", "Prova"."NextExecutor" AS "Prova_NextExecutor", "Prova"."IdClass"::int4 AS "Prova_IdClass", "Prova"."Notes" AS "Prova_Notes", "Utente_Richiedente"."Id" AS "Prova_Richiedente", "Utente_Richiedente"."Description" AS "Prova_Richiedente_Description", "Prova"."BeginDate" AS "Prova_BeginDate", "Prova"."User" AS "Prova_User", "Prova"."Priority" AS "Prova_Priority", "Prova"."ActivityDescription" AS "Prova_ActivityDescription", "Prova"."ActivityDefinitionId" AS "Prova_ActivityDefinitionId", "Prova"."IsQuickAccept" AS "Prova_IsQuickAccept", "Prova"."NumTicket" AS "Prova_NumTicket", "Prova"."Description" AS "Prova_Description", "LookUp_FlowStatus"."Id" AS "Prova_FlowStatus", "LookUp_FlowStatus"."Description" AS "Prova_FlowStatus_Description", "Prova"."Code" AS "Prova_Code", "Prova"."ProcessCode" AS "Prova_ProcessCode", "Prova"."Id" AS "Prova_Id" FROM "Prova" AS "Prova" LEFT JOIN "Utente" AS "Utente_Richiedente" ON "Utente_Richiedente"."Id" = "Prova"."Richiedente" LEFT JOIN "LookUp" AS "LookUp_FlowStatus" ON "LookUp_FlowStatus"."Id" = "Prova"."FlowStatus" WHERE ( "Prova"."Id" = 295 ) ORDER BY "Prova"."Id" ASC

DEBUG 2010-12-16 17:22:51 [persist ] reference Richiedente unchanged. -- (should be false)false

DEBUG 2010-12-16 17:22:51 [sql     ] UPDATE "Prova" SET "User" = 'system' WHERE ( "Prova"."Id" = 295 )

INFO  2010-12-16 17:22:51 [workflow] Event audit - Activity 223_209_Package_prova_Process_prova_fine modified

DEBUG 2010-12-16 17:22:51 [workflow] Event audit - packId: Package_prova - procDefId: Process_prova - procInstId: 209_Package_prova_Process_prova - actInstId: 223_209_Package_prova_Process_prova_fine, params -- cardId: 295 - requester: system

......

 

Come mai non riesco a visualizzare il link per creare la relazione?

 

Grazie anticipatamente per la disponibilità.

 

Saluti

Andrea

L'ultima versione di HelpDeskSemplice.xpdl che ho trovato è relativa alla release 0.70.1 di CMDBuild datata 21/11/2007.

Con la release 1.0 i metodi del workflow sono stati modificati, pertanto tale tutorial non è aggiornato. L'attuale controllo visuale (extended attribute) corrispondente a createRelation dovrebbe essere il più potente manageRelation.

Consiglio la lettura di un manuale aggiornato

.

Paolo