Class OpenWFE::ProcessParticipant
In: lib/openwfe/participants/participants.rb
Parent: Object

Links a process under a participant [name].

Turns top level processes into participants

Some examples :

    require 'engine/participants/participants'

    engine.register_participant(
        "transmit_to_accounting",
        "http://company.process.server.ie/processes/acc0.xml")

    engine.register_participant(
        "hr_resume_review_process",
        "file:/var/processes/hr_resume_review_process.rb")

Some more examples :

    class RegistrationProcess < OpenWFE::ProcessDefinition
        sequence do
            participant :ref => "Alice"
            participant :ref => "Bob"
        end
    end

    # later in the code ...

    engine.register_participant("registration", RegistrationProcess)

Or directly with some XML string :

    engine.register_participant("registration", '''
        <process-definition name="registration" revision="0.1">
            <sequence>
                <participant ref="Alice" />
                <participant ref="Bob" />
            </sequence>
        </process-definition>
    '''.strip)

It‘s then easy to call the subprocess as if it were a participant :

    sequence do
        participant :ref => "registration"
            # or
        participant "registration"
            # or simply
        registration
    end

Note that the ‘subprocess’ expression may be used as well :

    sequence do
        subprocess ref => "http://dms.company.org/processes/proc1.rb"
    end

But you can‘t use the URL as an expression name for writing nice, concise, process definitions.

Methods

consume   new  

Included Modules

LocalParticipant

Public Class methods

The ‘object’ may be the URL of a process definition or the process definition itself as an XML string or a Ruby process definition (as a class or in a String).

[Source]

     # File lib/openwfe/participants/participants.rb, line 336
336:         def initialize (object)
337: 
338:             super()
339: 
340:             template_uri = OpenWFE::parse_known_uri object
341: 
342:             @template = template_uri || object
343:         end

Public Instance methods

This is the method called by the engine when it has a workitem for this participant.

[Source]

     # File lib/openwfe/participants/participants.rb, line 349
349:         def consume (workitem)
350: 
351:             get_expression_pool.launch_template(
352:                 get_flow_expression(workitem),
353:                 nil, # new environment
354:                 0, # sub_id
355:                 @template, 
356:                 workitem) 
357:                 #params)
358:         end

[Validate]