2.9. Expression Tool#
ExpressionToolは、それ自体またはワークフローのステップとして実行することができるProcessの一種です。純粋な JavaScript 式を実行します。入力データを操作し、出力として結果を生成する必要がある複雑な JavaScript 式を分離する方法として使用されることを意図しています。
CommandLinetToolと同様に、inputs とoutputs が必要です。しかし、baseCommand の代わりに、expression 属性を必要とします。
CWL expression tool.#
uppercase.cwl#cwlVersion: v1.2
class: ExpressionTool
requirements:
  InlineJavascriptRequirement: {}
inputs:
  message: string
outputs:
  uppercase_message: string
expression: |
  ${ return {"uppercase_message": inputs.message.toUpperCase()}; }
注釈
この式には.toUpperCase() で JavaScript の呼び出しが含まれているため、 InlineJavascriptRequirement を使用する必要があります。これは、ExpressionToolを使用するツールにとって、JavaScriptが必要であることを意味します。