Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
Debug External Task
peklo
I have a workflow that first submits files to staging in the first task then does an external task data deploy in the second.
The submit works fine and the external task executes but does not seem to work from the workflow.
If I run the ipl from the command line it works fine.
How can I debug the external task within the workflow?
Thanks in advance
CP
Find more posts tagged with
Comments
jed
0. Add print/debug/logging to your external task
1. Disable the CallBack in the external task
2. Run the workflow and wait for it to stall at your external task
3. Run the external task on the command line passing in the required args such as:
/your/script/foo.ipl [jobid] [taskid]
See what is going on....
If it is still broken, the issue could be an ENV setting between your login and the workflow user running the external task. To check those things, print out the %ENV variables to a file and compare them between you running it on the command line, and the system running it via workflow.
--
Jed Michnowicz
jedm@sun.com
Content Management Engineering
Sun Microsystems
peklo
can you be more specific about:
Add print/debug/logging to your external task
How do I do this....If I could print to a log all my problems would be solved.
Thanks
jed
Since you do not disclose anything about your external task, that is going to be rather difficult. But, in perl it would be something like this:
open(F,">>/tmp/foo.out");
print F "Here is a line of debug stuff\n";
print F "Here is some more\n";
close F;
--
Jed Michnowicz
jedm@sun.com
Content Management Engineering
Sun Microsystems
peklo
Thanks
I got the log to write and it writes fine when I call from the command line.
When I call from the workflow, it doesn't write.
I looked at the workflow gui in teamsite and it displays my task as complete.
How can I tell if the task is actually executing.
Thanks
Adam Stoller
I suggest you post your externaltask script code.
It sounds like you need a fair amount of help writing scripts - and although it's the kind of thing you should be paying to learn ... we occasionally take pity on the newbies and help them out
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
peklo
Thanks for your help
I have attached my external script code (saved as at txt... it is usually an ipl). As I mentioned it works from the command line but not the workflow.
I put some debug code in from one of the samples...that too works from the command line but doesn't generate anything from the workflow.
The submit task (its out of the box) works but It is unclear if the external task is firing and definately clear that the script does not work from the workflow.
Thanks for the fresh set of eyes.
Below is the wft code:
<?xml version="1.0" encoding="UTF-8" standalone = "no"?>
<!DOCTYPE workflow SYSTEM "iwwf.dtd">
<!--
Copyright 1999-2001 Interwoven Inc.
All rights reserved.
-->
<template_script>
<![CDATA[
use TeamSite::Config;
my $iwhome = TeamSite::Config::iwgethome();
my $iwmount = TeamSite::Config::iwgetmount();
#
# Set $DEBUG_MODE to 1 if you want to have option for debug output
#
$DEBUG_MODE = 1;
#
# Include JavaScript functionality for replicating file comment
#
my $pre_html =<<'EOS';
<SCRIPT LANGUAGE="Javascript">
function makeArray( elements )
{
var propNames = new Array();
for (var i = 0; i < elements.length; i++)
{
var elem = (typeof elements.item == 'undefined')?elements
:elements.item(i);
if (elem.name.indexOf('File_comment_') != -1)
{
propNames[propNames.length] = elem.name;
}
}
return propNames;
}
function copy_file_comment(win)
{
var first = null;
var nameList = makeArray ( win.document.forms[0].elements);
for (var i = 0; i < nameList.length; i++)
{
field_name = nameList
;
if ((first == null) && (field_name == 'File_comment_0'))
{
first = win.document.forms[0].elements[field_name].value;
}
else
{
if (first != '')
{
win.document.forms[0].elements[field_name].value = first + '';
}
else
{
win.document.forms[0].elements[field_name].value = '';
}
}
}
}
</SCRIPT>
EOS
CGI_info(
pre_tagtable_html => $pre_html,
title => "Submit Workflow",
);
#----------------
# DEBUG OPTIONAL
#----------------
if ($DEBUG_MODE == 1)
{
TAG_info(
iw_debug_mode => [html => "<span style='font-size:11px;font-weight:normal'>Yes <input type='radio' checked value='true'> " .
"No <input type='radio' value='false'></span>",
label => "<span style='font-size:11px;font-weight:normal'>" .
"Debug mode?</span>" ,
is_required => "true",
],
);
}
# Force the form to show up at least once (because there are no
# required fields
if (!defined(__VALUE__(iw_first_time)))
{
TAG_info(
first_time_hidden_placeholder =>
[
html => "<input type=hidden value=''>",
is_required => 'true',
],
);
}
#---------------------------------
# INPUT FIELDS FOR SUBMIT COMMENTS
#---------------------------------
TAG_info(
submit_cmts_hdr =>
[ html => "<span></span>",
is_required => 'false',
label => "</td><td></td></tr>".
"<tr><td class='iw-base-heading-title' style='background-color: #EEE; padding: 4px;' colspan=2>" .
"Submit Comments" .
"</td></tr>" .
"<tr><td>"
],
);
TAG_info(
submit_cmt =>
[ html => "<textarea rows='4' style='width:100%'></textarea>",
label => "Submit Comment:",
is_required => 'false',
],
info_cmt =>
[ html => "<textarea rows='2' style='width:100%'></textarea>",
is_required => 'false',
label => "Submit Info:",
],
);
my $info_cmt = __VALUE__('info_cmt', 'html');
if ($info_cmt !~ /^\s*$/)
{
$info_tag = "<variable key='submit_info' value='$info_cmt'/>";
}
else
{
$info_tag = '';
}
my $submit_cmt = __VALUE__('submit_cmt', 'html');
#---------------------------------
# INPUT FIELD FOR SUBMIT OVERRIDE
#---------------------------------
$thisbr = __VALUE__('iw_workarea');
$thisbr =~ s/\\/\//g;
$thisbr =~ s/.*default\/(.*)\/WORKAREA\/.*/\1/;
my $radio1_checked_string = '';
my $radio2_checked_string = 'checked';
my $override = __VALUE__('iw_setwfarg_iw_overwrite');
if ($override eq "true")
{
$radio1_checked_string = 'checked';
$radio2_checked_string = '';
}
TAG_info(
iw_override => [html => "<span style='font-size:11px;font-weight:normal'> <input type='radio' $radio1_checked_string value='t'> Yes " .
"<input type='radio' $radio2_checked_string value='f'> No</span>",
label => "<span style='font-size:11px;'>Override conflicts with STAGING?</span>",
is_required => "true",
],
);
#-----------------
# Keep locks?
#-----------------
#
# 'yes' corresponds to 'f' because the value is used in the 'unlock'
# attribute of the submittask (i.e., inverse relationship)
#
#-----------------
TAG_info(
iw_keeplocks => [html => "<span style='font-size:11px;font-weight:normal'> <input type='radio' value='f'> Yes " .
"<input type='radio' checked value='t'> No</span>",
label => "<span style='font-size:11px;'>Keep locks?</span>",
is_required => "true",
],
);
#------------------------------
# Comments for individual files
#------------------------------
TAG_info(
file_cmts_hdr =>
[ html => "<span></span>",
is_required => 'false',
label => "</td><td></td></tr>" .
"<tr><td class='iw-base-heading-title' style='background-color: #EEE; padding: 4px;' colspan=2>" .
"Individual File Comments</td></tr>" .
"<tr><td>"
],
);
# make sure the file list is defined
my
@submit_file
= (); # files sorted in unencoded
if (__ELEM__('iw_file')) # form, then html-encoded
{ # by hand via CGI_lite
@submit_file
= map { TeamSite::CGI_lite::escape_html_data($_);
} sort __VALUE__('iw_file');
}
for (my $i=0; $i<
@submit_file
; ++$i)
{
my $comment_html = "</td><td></td></tr>" .
"<tr><td class='iw-base-text-field-label' style='padding-left:4px;' " .
"colspan='2'>" .
"$submit_file[$i]" .
"<div><textarea class='iw-base-text-field-data' ".
"style='width:100%;'".
"name='File_comment_$i' rows='3'>".
"</textarea></div>";
if ($i == 0 && ($#submit_file > 0))
{
$comment_html .=<<EOS;
<div align="right">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="1"><img src="/iw-cc/base/images/dialog_btn_left.gif"/></td>
<td nowrap valign="middle" align="middle" background="/iw-cc/base/images/dialog_btn_mid.gif">
<a href="javascript:copy_file_comment(self)" class="iw-base-actionlist-link">
Copy Comment
</a>
</td>
<td width="1"><img src="/iw-cc/base/images/dialog_btn_right.gif"/></td>
</tr>
</table>
</div>
EOS
}
$comment_html .= "</td></tr><tr><td>";
TAG_info(
"File_comment_$i" =>
[ html => "<span></span>",
error_msg => 'Please enter a comment.',
is_required => 'false',
label => $comment_html,
],
);
}
sub submit_files_xml
{
my $xml = '';
if (__ELEM__('iw_file') != 0)
{
$xml .= "<files>\n";
for (my $i=0; $i <
@submit_file
; ++$i)
{
$xml .= " <file path='$submit_file[$i]' comment='__TAG__(File_comment_$i);'/>\n";
}
$xml .= " </files>\n";
}
return $xml;
}
my $dataDeploycommand = "/opt/app/cms/wft/convertEA.ipl";
]]>
</template_script>
<workflow name="Submit Workflow"
owner="__TAG__('iw_user');"
creator="__TAG__('iw_user');"
description="__INSERT__($submit_cmt);">
<cgitask owner="__TAG__('iw_user');"
name="Check for conflicts"
start="t"
immediate="t">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Submit changes">
<succ v="Submit changes"/>
</successorset>
</successors>
<command v="iwconflictcheck.cgi"/>
<timeout v="+000001">
<succ v="Submit changes"/>
</timeout>
__INSERT__(submit_files_xml());
<variables>
<variable key="submittask_name" value="Submit changes"/>
</variables>
</cgitask>
<submittask owner="__TAG__('iw_user');"
name="Submit changes"
unlock="__TAG__('iw_keeplocks');"
savecomments="t"
start="f"
override="__TAG__('iw_override');">
<areavpath v="__TAG__('iw_workarea');"/>
<successorset>
<succ v="Deployment"/>
</successorset>
<variables>
<variable key="submit_cmt" value="__INSERT__($submit_cmt);"/>
__INSERT__($info_tag);
</variables>
</submittask>
<!-- - - - - - - - - - - - - External Task for Deployment- - - - - - - -->
<externaltask name="Deployment"
owner="__TAG__('iw_user');"
description="Initiating Deployment to Deploy files.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="onDeploySuccess">
<succ v="End"/>
</successorset>
</successors>
<command v="__INSERT__($dataDeploycommand);"/>
<activation>
<pred v="Submit changes" />
</activation>
</externaltask>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<endtask name="End">
</endtask>
</workflow>
jed
That is the workflow template. You will want to attach "/opt/app/cms/wft/convertEA.ipl". That is your external task.
--
Jed Michnowicz
jedm@sun.com
Content Management Engineering
Sun Microsystems
Adam Stoller
As mentioned - you posted the WFT code not the externaltask script code.
Also - I suggest you make sure that when you post such code that you either:
- learn how to format it correctly (the string '
' which is common in javascript code gets interpreted via "Markup" as the beginning of italics), or
- learn how to attach it as a file (thus avoiding the formatting problem), or
- set the "Make post" drop-down above where you put the content of your message to "Using HTML" (and deal with formatting of '<****>'), or
- set the "Make post" drop-down above where you put the content of your message to "without Markup/HTML" (thus avoiding the formatting problems)
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
peklo
Sorry Guys, I thought I attached the script...I was pretty cross-eyed after when I sent he post. Thanks for the tip about the formatting.
Hopefully the attachment makes it this time...
CP
<?xml version="1.0" encoding="UTF-8" standalone = "no"?>
<!DOCTYPE workflow SYSTEM "iwwf.dtd">
<!--
Copyright 1999-2001 Interwoven Inc.
All rights reserved.
-->
<template_script>
<![CDATA[
use TeamSite::Config;
my $iwhome = TeamSite::Config::iwgethome();
my $iwmount = TeamSite::Config::iwgetmount();
#
# Set $DEBUG_MODE to 1 if you want to have option for debug output
#
$DEBUG_MODE = 1;
#
# Include JavaScript functionality for replicating file comment
#
my $pre_html =<<'EOS';
<SCRIPT LANGUAGE="Javascript">
function makeArray( elements )
{
var propNames = new Array();
for (var i = 0; i < elements.length; i++)
{
var elem = (typeof elements.item == 'undefined')?elements
:elements.item(i);
if (elem.name.indexOf('File_comment_') != -1)
{
propNames[propNames.length] = elem.name;
}
}
return propNames;
}
function copy_file_comment(win)
{
var first = null;
var nameList = makeArray ( win.document.forms[0].elements);
for (var i = 0; i < nameList.length; i++)
{
field_name = nameList
;
if ((first == null) && (field_name == 'File_comment_0'))
{
first = win.document.forms[0].elements[field_name].value;
}
else
{
if (first != '')
{
win.document.forms[0].elements[field_name].value = first + '';
}
else
{
win.document.forms[0].elements[field_name].value = '';
}
}
}
}
</SCRIPT>
EOS
CGI_info(
pre_tagtable_html => $pre_html,
title => "Submit Workflow",
);
#----------------
# DEBUG OPTIONAL
#----------------
if ($DEBUG_MODE == 1)
{
TAG_info(
iw_debug_mode => [html => "<span style='font-size:11px;font-weight:normal'>Yes <input type='radio' checked value='true'> " .
"No <input type='radio' value='false'></span>",
label => "<span style='font-size:11px;font-weight:normal'>" .
"Debug mode?</span>" ,
is_required => "true",
],
);
}
# Force the form to show up at least once (because there are no
# required fields
if (!defined(__VALUE__(iw_first_time)))
{
TAG_info(
first_time_hidden_placeholder =>
[
html => "<input type=hidden value=''>",
is_required => 'true',
],
);
}
#---------------------------------
# INPUT FIELDS FOR SUBMIT COMMENTS
#---------------------------------
TAG_info(
submit_cmts_hdr =>
[ html => "<span></span>",
is_required => 'false',
label => "</td><td></td></tr>".
"<tr><td class='iw-base-heading-title' style='background-color: #EEE; padding: 4px;' colspan=2>" .
"Submit Comments" .
"</td></tr>" .
"<tr><td>"
],
);
TAG_info(
submit_cmt =>
[ html => "<textarea rows='4' style='width:100%'></textarea>",
label => "Submit Comment:",
is_required => 'false',
],
info_cmt =>
[ html => "<textarea rows='2' style='width:100%'></textarea>",
is_required => 'false',
label => "Submit Info:",
],
);
my $info_cmt = __VALUE__('info_cmt', 'html');
if ($info_cmt !~ /^\s*$/)
{
$info_tag = "<variable key='submit_info' value='$info_cmt'/>";
}
else
{
$info_tag = '';
}
my $submit_cmt = __VALUE__('submit_cmt', 'html');
#---------------------------------
# INPUT FIELD FOR SUBMIT OVERRIDE
#---------------------------------
$thisbr = __VALUE__('iw_workarea');
$thisbr =~ s/\\/\//g;
$thisbr =~ s/.*default\/(.*)\/WORKAREA\/.*/\1/;
my $radio1_checked_string = '';
my $radio2_checked_string = 'checked';
my $override = __VALUE__('iw_setwfarg_iw_overwrite');
if ($override eq "true")
{
$radio1_checked_string = 'checked';
$radio2_checked_string = '';
}
TAG_info(
iw_override => [html => "<span style='font-size:11px;font-weight:normal'> <input type='radio' $radio1_checked_string value='t'> Yes " .
"<input type='radio' $radio2_checked_string value='f'> No</span>",
label => "<span style='font-size:11px;'>Override conflicts with STAGING?</span>",
is_required => "true",
],
);
#-----------------
# Keep locks?
#-----------------
#
# 'yes' corresponds to 'f' because the value is used in the 'unlock'
# attribute of the submittask (i.e., inverse relationship)
#
#-----------------
TAG_info(
iw_keeplocks => [html => "<span style='font-size:11px;font-weight:normal'> <input type='radio' value='f'> Yes " .
"<input type='radio' checked value='t'> No</span>",
label => "<span style='font-size:11px;'>Keep locks?</span>",
is_required => "true",
],
);
#------------------------------
# Comments for individual files
#------------------------------
TAG_info(
file_cmts_hdr =>
[ html => "<span></span>",
is_required => 'false',
label => "</td><td></td></tr>" .
"<tr><td class='iw-base-heading-title' style='background-color: #EEE; padding: 4px;' colspan=2>" .
"Individual File Comments</td></tr>" .
"<tr><td>"
],
);
# make sure the file list is defined
my
@submit_file
= (); # files sorted in unencoded
if (__ELEM__('iw_file')) # form, then html-encoded
{ # by hand via CGI_lite
@submit_file
= map { TeamSite::CGI_lite::escape_html_data($_);
} sort __VALUE__('iw_file');
}
for (my $i=0; $i<
@submit_file
; ++$i)
{
my $comment_html = "</td><td></td></tr>" .
"<tr><td class='iw-base-text-field-label' style='padding-left:4px;' " .
"colspan='2'>" .
"$submit_file[$i]" .
"<div><textarea class='iw-base-text-field-data' ".
"style='width:100%;'".
"name='File_comment_$i' rows='3'>".
"</textarea></div>";
if ($i == 0 && ($#submit_file > 0))
{
$comment_html .=<<EOS;
<div align="right">
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<td width="1"><img src="/iw-cc/base/images/dialog_btn_left.gif"/></td>
<td nowrap valign="middle" align="middle" background="/iw-cc/base/images/dialog_btn_mid.gif">
<a href="javascript:copy_file_comment(self)" class="iw-base-actionlist-link">
Copy Comment
</a>
</td>
<td width="1"><img src="/iw-cc/base/images/dialog_btn_right.gif"/></td>
</tr>
</table>
</div>
EOS
}
$comment_html .= "</td></tr><tr><td>";
TAG_info(
"File_comment_$i" =>
[ html => "<span></span>",
error_msg => 'Please enter a comment.',
is_required => 'false',
label => $comment_html,
],
);
}
sub submit_files_xml
{
my $xml = '';
if (__ELEM__('iw_file') != 0)
{
$xml .= "<files>\n";
for (my $i=0; $i <
@submit_file
; ++$i)
{
$xml .= " <file path='$submit_file[$i]' comment='__TAG__(File_comment_$i);'/>\n";
}
$xml .= " </files>\n";
}
return $xml;
}
my $dataDeploycommand = "/opt/app/cms/wft/convertEA.ipl";
]]>
</template_script>
<workflow name="Submit Workflow"
owner="__TAG__('iw_user');"
creator="__TAG__('iw_user');"
description="__INSERT__($submit_cmt);">
<cgitask owner="__TAG__('iw_user');"
name="Check for conflicts"
start="t"
immediate="t">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="Submit changes">
<succ v="Submit changes"/>
</successorset>
</successors>
<command v="iwconflictcheck.cgi"/>
<timeout v="+000001">
<succ v="Submit changes"/>
</timeout>
__INSERT__(submit_files_xml());
<variables>
<variable key="submittask_name" value="Submit changes"/>
</variables>
</cgitask>
<submittask owner="__TAG__('iw_user');"
name="Submit changes"
unlock="__TAG__('iw_keeplocks');"
savecomments="t"
start="f"
override="__TAG__('iw_override');">
<areavpath v="__TAG__('iw_workarea');"/>
<successorset>
<succ v="Deployment"/>
</successorset>
<variables>
<variable key="submit_cmt" value="__INSERT__($submit_cmt);"/>
__INSERT__($info_tag);
</variables>
</submittask>
<!-- - - - - - - - - - - - - External Task for Deployment- - - - - - - -->
<externaltask name="Deployment"
owner="__TAG__('iw_user');"
description="Initiating Deployment to Deploy files.">
<areavpath v="__TAG__('iw_workarea');"/>
<successors>
<successorset description="onDeploySuccess">
<succ v="End"/>
</successorset>
</successors>
<command v="__INSERT__($dataDeploycommand);"/>
<activation>
<pred v="Submit changes" />
</activation>
</externaltask>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<endtask name="End">
</endtask>
</workflow>
Adam Stoller
I got the log to write and it writes fine when I call from the command line.
When I call from the workflow, it doesn't write.
You're saying that no data gets put into the debug log file when you run the workflow?
Are you sure the script is executable (i.e. if you do an 'ls -l' of the script - what do you see?)
The fact that you say the script runs from the command line would seem to indicate that the script is at least syntactacally correct (I can see lots of extraneous code that could be cut out, but that's not really important right now) - so I think we need to figure out why debugging isn't working when you run the script from the workflow.
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
peklo
Correct, when I run from the WF the debug logs DO NOT get written to
The permissions on the ipl are: -rwxrwxrwx 1 cc915059 cc_all
The permissions on the wf are: -rwxrwxr-x 1 cc915059 cc_all
Thanks
peklo
Another clue.
I think it may be hanging.
When I run the WF, the submit task works, then the window closed like everything is fine.
Obviously the script is not executing.
then I run the script from the command line using the same jobId and taskId and the ipl executes.
If I try to run it again from the command line using the same jobId and task id it says it can't find the job /task
Hope this helps
CP
cliffhanger
Is your $dataDeploycommand formed right? This is what you currently have:
$dataDeploycommand = "/opt/app/cms/wft/convertEA.ipl";
Itshould be something like:
$dataDeploycommand = "\"PATH-TO-IWPERL PATH-TO-YOUR-SCRIPT\" ";
peklo
That does not seem to help.
Thanks anyway.
CP
jed
That is not required for unix, assuming the schebang(sp?) is correct.
--
Jed Michnowicz
jedm@sun.com
Content Management Engineering
Sun Microsystems
Adam Stoller
Uhm - the #! line says /iw-home/iw-perl/bin/iwperl, yet elsewhere you have /opt/iw-home/...
is /iw-home a symlink to /opt/iw-home ? or is one of these incorrect (which one)?
What are the permissions on the directory [/opt]/iw-home/tmp ?
Who are you logged in to TeamSite as when you initate the workflow?
Who are you logged in to the server as when your run the script from the command line?
You might try changing the definition of $DEBUG_FILE to be something like /tmp/dbg.log or /var/tmp/dbg.log temporarily to verify that the problem isn't permissions on writing the log file during the running of the script within the workflow ...
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
peklo
Not sure on question one I think /iw-home is a virtual link..I will code in the entire path if that helps.
I thought permissions may be an issue so I moved the log file to the /tmp directory that didn't seem to make a difference.
when I log into teamsite I log in as cc915059 goup cc_all
I changed the permissions on the ipl and wft to root:daemon and get the same results.
Thanks
Adam Stoller
My guess is that it's one of those "something really simple" problems that's easy to miss and thus makes it "really difficult".
I suggest you temporarilly replace the script you're using with a VERY SIMPLE script that just creates a debugging log file and see if that works from the WFT - and work your way [hopefully] forwards from there.
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
cliffhanger
Could that "something really simple" be as simple as
<command v="__INSERT__($dataDeploycommand);"/>
should be
__INSERT__("<command v= $dataDeploycommand/>");
??
jbonifaci
Cliff, I believe what is there is fine and what you suggest would break it,
.
cliffhanger
:-)
May be its fine, but I don't think it'll break it.
jbonifaci
It would... as there would be no quotes around the value for the v attribute, which is poorly formatted xml...
Adam Stoller
Actually your suggestion would break things because the result - as written - would be an unquoted value for the 'v' attribute.
That being said, however, it would probably be a good idea to enable workflow debugging and take a look at the generated job description file to verify that what we *think* is getting placed in there is in fact what *is* getting placed into the command element. If not, that would definitely explain why the script doesn't run from within the workflow.
--fish
Senior Consultant, Quotient Inc.
http://www.quotient-inc.com
cliffhanger
Actually, if you look up in the thread, where I suggested to put iwperl in the command, I had double quotes included there. So I was sort of assuming that's taken care of in there.
But, hey good catch!