NAME

Bric::Biz::Workflow - Controls the progress of an asset through a series of desks.

VERSION

$Revision: 1.3.2.2 $

DATE

$Date: 2001/11/06 23:18:32 $

SYNOPSIS

my $flow = new Bric::Biz::Workflow($param);

$id    = $flow->get_id;

$name  = $flow->get_name;
$flow  = $flow->set_name($name);

$desc  = $flow->get_description;
$flow  = $flow->set_description($desc);

$flow  = $flow->add_desk($param);

# Returns a list of allowed desks.
@desks = $flow->allowed_desks();

# Lists the required desks
@desks = $flow->required_desks();

# Returns true if the asset object has been through all required desks.
$bool  = $flow->required_satisfied($asset_obj);

DESCRIPTION

A workflow is something that guides an asset through a set of desks, where an asset is any kind of creative content (a story, an image, a sound file, etc) and a desk performs and kind of validation or transformation upon an asset needed before it can be published. Example desks might be a 'legal' desk where users can verify any legal issue for a particular asset, or an 'edit' desk where users can check consistancy and presentation for an asset.

A workflow might be as simple as a linear path through a set of desks or as complex as requiring certain desks be visited with other desks optional and a route through the desks that can be arbitrarily complex.

INTERFACE

Constructors

$success = $obj = new Bric::Biz::Workflow($param);

Keys for $param are:

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$success = $obj = lookup Bric::Biz::Workflow($wf_id);

Takes a workflow ID and returns a workflow object.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

(@all || $all) = Bric::Biz::Workflow->list($param);

Return a list of all known workflow types. Keys of $param are:

All searches except 'active' are done using the LIKE operator, so '%' can be used for substring searching.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

(@ids || $ids) = Bric::Biz::Workflow->list_ids();

Return a list of IDs for all known workflow types.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

Destructors

$self->DESTROY

Dummy method to prevent wasting time trying to AUTOLOAD DESTROY.

Public Class Methods

my $meths = Bric::Biz::Workflow->my_meths
my (@meths || $meths_aref) = Bric::Biz::Workflow->my_meths(TRUE)

Returns an anonymous hash of instrospection data for this object. If called with a true argument, it will return an ordered list or anonymous array of intrspection data. The format for each introspection item introspection is as follows:

Each hash key is the name of a property or attribute of the object. The value for a hash key is another anonymous hash containing the following keys:

Throws: NONE.

Side Effects: NONE.

Notes: NONE.

Public Instance Methods

$flow->add_desk($param);

Add a desk to this workflow. Keys to param are:

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$flow->del_desk([$desk || $desk_id]);

Delete a desk from this workflow.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$flow->allowed_desks();

Returns a list of allowed desks.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$bool = $flow->desk_in_allowed($desk_obj);

Returns true if desk is in the list of allowed desks.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

@desks = $flow->required_desks();

Lists the required desks

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$bool = $flow->desk_in_required($desk_obj);

Returns true if the deskref given is in the required list

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$bool = $flow->required_satisfied($asset_obj);

Returns true if a assetref has been through all required desks.

Throws:

NONE

Side Effects:

NONE

Notes:

$desk = $flow->get_start_desk();
($flow || undef) = $flow->set_start_desk($desk_id);
$self = $flow->is_start_desk();

Get/Set the start desk.

Throws:

NONE

Side Effects:

NONE

Notes:

$desk || undef = $desk->is_active;
$desk = $desk->activate;
$desk = $desk->deactivate;

Get/Set the active flag.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$desk->remove;

Get/Set the active flag.

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

$save = $workflow->save;

Save this workflow

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

Private Methods

Private Class Methods

Private Instance Methods

$desk = $desk->_remove_workflow

Remove this workflow

Throws:

NONE

Side Effects:

NONE

Notes:

NONE

Private Functions

NOTES

NONE

AUTHOR

"Garth Webb" <garth@perijove.com>
Creative Engines Engineering

SEE ALSO

Bric, Bric::Biz::Workflow::Parts::Desk, perl

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 293:

'=item' outside of any '=over'

Around line 299:

Unknown directive: =init

Around line 305:

Unknown directive: =init

Around line 311:

Unknown directive: =init

Around line 406:

You forgot a '=back' before '=head2'

Around line 408:

'=item' outside of any '=over'

Around line 421:

You forgot a '=back' before '=head2'

Around line 427:

'=item' outside of any '=over'

Around line 509:

Expected '=item *'

Around line 511:

Expected '=item *'

Around line 513:

Expected '=item *'

Around line 515:

Expected '=item *'

Around line 517:

Expected '=item *'

Around line 519:

Expected '=item *'

Around line 521:

Expected '=item *'

Around line 632:

You forgot a '=back' before '=head2'

Around line 638:

'=item' outside of any '=over'

Around line 644:

Unknown directive: =init

Around line 650:

Unknown directive: =init

Around line 1114:

You forgot a '=back' before '=head1'

Around line 1240:

'=item' outside of any '=over'

Around line 1269:

You forgot a '=back' before '=head2'

Around line 1280:

=back without =over