AnsweredAssumed Answered

Récupérer bpm:context dans une action

Question asked by skank on Jul 20, 2010
Latest reply on Jul 20, 2010 by skank
Bonjour,

désolé si ma question est triviale, mais j'essaie sans succès et je n'y arrive pas  :?

Ma question est : comment récupérer la valeur de bpm:context dans une action ?

Je m'explique : je voudrais déplacer un noeud dans une action généré par un workflow, et après avoir regardé le wiki, il faut que je récupère bpm:context qui contient le nodeRef dont j'ai besoin.

J'ai procédé ainsi :

<process-definition xmlns="http://jbpm.org/jpdl-3.1.xsd"
                    name="azwf:plateauairbusworkflow">

    <swimlane name="initiator" />

    <start-state name="Start">
        <task name="azwf:start" swimlane="initiator" />
        <transition name="toDraft" to="Draft">
            <action name="StartWorkflowHandler" class="com.workflow.handler.StartWorkflowHandler">
                <contextNode type="org.alfresco.service.cmr.repository.NodeRef">#{bpm_context}</contextNode>
            </action>
        </transition>
    </start-state>

Et ensuite dans l'action :

public class StartWorkflowHandler implements ActionHandler {

    public NodeRef contextNode;

    public void setContextNode(NodeRef contextNode) {
        this.contextNode = contextNode;
    }
   
    public void execute(ExecutionContext ec) throws Exception {

        (…)
        Map<QName, Serializable> contentProps = new HashMap<QName, Serializable>();
        contentProps = service.getProperties(contextNode);
        service.moveNode(contextNode, draft, ContentModel.ASSOC_CONTAINS,QName.createQName(…);
       

Seulement, contextNode est nul. D'après la doc de jPDL (http://docs.jboss.org/jbpm/v3/userguide/jpdl.html#configurationofdelegations), il faut un constructeur de String dans NodeRef (il y en a un), mais cela ne fonctionne pas quand même…

Il est peut-être possible de faire autrement, par exemple en créant un bean, mais je ne suis pas très familier avec les concepts de Spring, malgré les tutos…

Quelqu'un peut-il m'aider s'il vous plait ?

Cordialement.

Outcomes