Home
The Toolkit for Online Communities
15888 Community Members, 0 members online, 1813 visitors today
Log In Register

workflow::fsm::generate_spec

OpenACS Home : ACS API Browser : Workflow 2.1.1 : workflow::fsm::generate_spec

workflow::fsm::generate_spec (public)

workflow::fsm::generate_spec -workflow_id workflow_id \
    [ -workflow_handler workflow_handler ] [ -handlers handlers ]
Defined in packages/workflow/tcl/workflow-procs.tcl

Generate a spec for a workflow in array list style.

Switches:
-workflow_id (required)
The id of the workflow to generate a spec for.
-workflow_handler (defaults to "workflow") (optional)
-handlers (defaults to " roles workflow::role actions workflow::action::fsm states workflow::state::fsm ") (optional)
Returns:
The spec for the workflow.
Author:
Lars Pind <lars@collaboraid.biz>

See Also:
Source code:
    workflow::fsm::generate_spec__arg_parser

    set spec [workflow::generate_spec  -workflow_id $workflow_id  -workflow_handler $workflow_handler  -handlers $handlers]

    return $spec

Generic XQL file:
<?xml version="1.0"?> <queryset> <fullquery name="workflow::get_id_not_cached.select_workflow_id_by_object_id"> <querytext> select workflow_id from workflows where object_id = :object_id and short_name = :short_name </querytext> </fullquery> <fullquery name="workflow::exists_p.do_select"> <querytext> select count(*) from workflows where workflow_id = :workflow_id </querytext> </fullquery> <fullquery name="workflow::get_not_cached.workflow_callbacks"> <querytext> select impl.impl_id, impl.impl_name, impl.impl_owner_name, ctr.contract_name, wc.sort_order from workflow_callbacks wc, acs_sc_impls impl, acs_sc_bindings bind, acs_sc_contracts ctr where wc.workflow_id = :workflow_id and impl.impl_id = wc.acs_sc_impl_id and impl.impl_id = bind.impl_id and bind.contract_id = ctr.contract_id order by wc.sort_order </querytext> </fullquery> <fullquery name="workflow::get_id_not_cached.select_workflow_id_by_package_key"> <querytext> select workflow_id from workflows where package_key = :package_key and short_name = :short_name and object_id is null </querytext> </fullquery> <fullquery name="workflow::default_sort_order.max_sort_order"> <querytext> select max(sort_order) from $table_name where workflow_id = :workflow_id </querytext> </fullquery> <fullquery name="workflow::callback_insert.insert_callback"> <querytext> insert into workflow_callbacks (workflow_id, acs_sc_impl_id, sort_order) values (:workflow_id, :acs_sc_impl_id, :sort_order) </querytext> </fullquery> </queryset>

Postgresql XQL file:
<?xml version="1.0"?> <queryset> <rdbms><type>postgresql</type><version>7.2</version></rdbms> <fullquery name="workflow::get_not_cached.workflow_info"> <querytext> select w.workflow_id, w.short_name, w.pretty_name, w.object_id, w.package_key, w.object_type, w.description, w.description_mime_type, a.short_name as initial_action, a.action_id as initial_action_id from workflows w left outer join workflow_actions a on (a.workflow_id = w.workflow_id and a.parent_action_id is null and a.trigger_type = 'init') where w.workflow_id = :workflow_id </querytext> </fullquery> <fullquery name="workflow::edit.do_insert"> <querytext> select workflow__new ( :attr_short_name, :attr_pretty_name, :attr_package_key, :attr_object_id, :attr_object_type, :attr_creation_user, :attr_creation_ip, :attr_context_id ); </querytext> </fullquery> <fullquery name="workflow::delete.do_delete"> <querytext> select workflow__delete(:workflow_id); </querytext> </fullquery> <fullquery name="workflow::callback_insert.select_sort_order"> <querytext> select coalesce(max(sort_order),0) + 1 from workflow_callbacks where workflow_id = :workflow_id </querytext> </fullquery> </queryset>

Oracle XQL file:
<?xml version="1.0"?> <queryset> <rdbms><type>oracle</type><version>8.1.6</version></rdbms> <fullquery name="workflow::get_not_cached.workflow_info"> <querytext> select w.workflow_id, w.short_name, w.pretty_name, w.object_id, w.package_key, w.object_type, w.description, w.description_mime_type, a.short_name as initial_action, a.action_id as initial_action_id from workflows w, workflow_actions a where w.workflow_id = :workflow_id and w.workflow_id = a.workflow_id (+) and a.parent_action_id is null and (a.trigger_type = 'init' or a.trigger_type is null) </querytext> </fullquery> <fullquery name="workflow::edit.do_insert"> <querytext> begin :1 := workflow.new ( short_name => :attr_short_name, pretty_name => :attr_pretty_name, package_key => :attr_package_key, object_id => :attr_object_id, object_type => :attr_object_type, creation_user => :attr_creation_user, creation_ip => :attr_creation_ip, context_id => :attr_context_id ); end; </querytext> </fullquery> <fullquery name="workflow::delete.do_delete"> <querytext> begin :1 := workflow.del(:workflow_id); end; </querytext> </fullquery> <fullquery name="workflow::callback_insert.select_sort_order"> <querytext> select nvl(max(sort_order),0) + 1 from workflow_callbacks where workflow_id = :workflow_id </querytext> </fullquery> </queryset>

[ hide source ] | [ make this the default ]
Show another procedure: