| Class | OpenWFE::LaunchItem |
| In: |
lib/openwfe/workitem.rb
|
| Parent: | WorkItem |
LaunchItem instances are used to instantiate and launch processes. They contain attributes that are used as the initial payload of the workitem circulating in the process instances.
| DEF | = | "__definition" |
| FIELD_DEF | = | "field:#{DEF}" |
| workflow_definition_url | -> | wfdurl |
| , :description_map | ||
| workflow_definition_url= | -> | wfdurl= |
| workflow_definition_url | [RW] |
# File lib/openwfe/workitem.rb, line 462
462: def LaunchItem.from_h (h)
463:
464: li = super
465: li.workflow_definition_url = h[:workflow_definition_url]
466: li
467: end
This constructor will build an empty LaunchItem.
If the optional parameter process_definition is set, the definition will be embedded in the launchitem attributes for retrieval by the engine.
There are several ways to specify the process definition. Here are some examples:
# Use a Ruby class that extends OpenWFE::ProcessDefinition
LaunchItem.new(MyProcessDefinition)
# Provide an XML process definition as a string
definition = """
<process-definition name="x" revision="y">
<sequence>
<participant ref="alpha" />
<participant ref="bravo" />
</sequence>
</process-definition>
""".strip
LaunchItem.new(definition)
# Load an XML process definition from a local file
require 'uri'
LaunchItem.new(URI.parse("file:///tmp/my_process_definition.xml"))
# If you initialized your engine with
# {:remote_definitions_allowed => true}, then you can also load an
# XML process definition from a remote url
require 'uri'
LaunchItem.new(URI.parse("http://foo.bar/my_process_definition.xml"))
# File lib/openwfe/workitem.rb, line 441
441: def initialize (process_definition=nil)
442:
443: super()
444:
445: if process_definition
446: @workflow_definition_url = FIELD_DEF
447: @attributes[DEF] = process_definition
448: end
449: end
Turns the LaunchItem instance into a simple ‘hash’ (easily serializable to other formats).
# File lib/openwfe/workitem.rb, line 455
455: def to_h
456:
457: h = super
458: h[:workflow_definition_url] = @workflow_definition_url
459: h
460: end