common-workflow-language / common-workflow-language

Repository for the CWL standards. Use https://cwl.discourse.group/ for support 😊

Home Page:https://www.commonwl.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

conditional step with `pickValue` method in inputs crashes when condition does not apply

hariszaf opened this issue · comments

To build a wf that could be partially used, I am trying to have
some conditions and provide alternative input files
for the case a user has already or hasn't done a step.

In some cases however, the user might not be interested in that step at all.

Such an example is implemented here.

As you see in line 250 an extra choice
has been provided and that is because if it does not, the wf crashes in case where
inputs.funct_annot != true and I get an error mentioning that all sources are of null value.

I guess the condition should be evaluated first, before going into the check of the input arguments of the step.

@mr-c and I had a discussion about this. The tentative solution is for the invalid parameters input_fast and maskfile to be excluded from the inputs object supplied to the when clause, so the when clause can be evaluated and the step skipped (as intended) instead of failing. Then this edge case can be addressed in the upcoming CWL 1.2.1 spec.