Hello Ed,

instead of:

        <data name='outfile2' format='txt'>
            <filter>two_outfiles == '1'</filter>
        </data>

try:

        <data name='outfile2' format='txt'>
            <filter>two_outfiles == True</filter>
        </data>


Let us know if this doesn't work for you or if you have further questions.

Thanks,

Dan

On Mar 9, 2010, at 1:08 AM, Edward Kirton wrote:

Hello,
Thanks for your help.  While I have conditionals and filters working now, I've noticed the filter doesn't seem to work with the Boolean type.  The workaround is simply changing the offending field to a Select type.

test tool config:

<tool id='output_filter_test' name='output filter test'>
    <description>test</description>
    <command interpreter='perl'>test.pl $two_outfiles $outfile1 $outfile2</command>
    <inputs>
        <param name='two_outfiles' type='boolean' truevalue='1' falsevalue='0' checked='true' label='Want second file'/>
    </inputs>
    <outputs>
        <data name='outfile1' format='txt'/>
        <data name='outfile2' format='txt'>
            <filter>two_outfiles == '1'</filter>
        </data>
    </outputs>
    <help>
    Test script.
    </help>
</tool>

it refers to this simple perl script:

#!/jgi/tools/bin/perl

die("Expected 3 args") unless @ARGV == 3;
my ($two_files, $outfile1, $outfile2) = @ARGV;
open(OUT, ">$outfile1") or die($!);
print OUT "this is outfile 1\n";
close OUT;
if ($two_files) {
    open(OUT, ">$outfile2") or die($!);
    print OUT "this is outfile 2\n";
    close OUT;
}
exit 0;