That's a cool presentation. And the module looks great... except, why do I have to program Perl inside an XML file? This makes my skin crawl:
<workflow>
<type>myworkflow</type>
<state name="INITIAL">
<action name="upload file" resulting_state="uploaded" />
</state>
<state name="uploaded" autorun="yes">
<action name="verify file" resulting_state="annotate">
<!-- everyone other than 'CWINTERS' must verify -->
<condition test="$context->{user} ne 'CWINTERS'" />
</action>
...
I'd be much happier with:
my $workflow = Workflow::Generator->new(type => "myworkflow");
$state = $workflow->add_state(name => "INITIAL");
$state->add_action(name => "upload file", resulting_state => "uploa
+ded");
$state = $workflow->add_state(name => "uploaded", autorun => "yes")
+;
$state->add_action(name => "verify_file", resulting_state => "annot
+ate");
$condition = $state->add_condition(test => \&check_file);
It's more conscise and all the power of Perl is available for making repetitive structures from common data. If I ever decided to use Workflow I think Workflow::Generator would be my first project.
-sam
|