

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 任務參數類型
<a name="build-job-bundle-parameter-types"></a>

任務範本`parameterDefinitions`清單中的每個項目都會宣告一個任務參數。每個參數都有 `name`和 `type`，而且可以有 `description`、 `default`和 `userInterface`區塊，以及 `label`、 `groupLabel`和 `control`。類型會決定參數接受哪些值、其支援哪些限制欄位，以及依預設顯示哪些控制提交對話方塊。範本將值稱為 `{{Param.{{Name}}}}`。類型如下所示。

有些類型是基本開放任務描述規格的一部分。其餘部分由 `EXPR`延伸項目新增，使用它們的範本必須列在其 `EXPR`中`extensions`。如需每種類型的field-by-field定義，請參閱 GitHub 網站上的[開啟任務描述任務參數定義](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#2-jobparameterdefinition)。

`INT`  
整數，以數字或數字字串表示。限制條件：`allowedValues`、`minValue`、`maxValue`。控制項：`SPIN_BOX`設定 `DROPDOWN_LIST` 時為 或 `allowedValues` 。

`FLOAT`  
數字，以數字或數字字串表示。限制條件：`allowedValues`、`minValue`、`maxValue`。控制項：`SPIN_BOX`設定 `DROPDOWN_LIST` 時為 或 `allowedValues` 。`decimals` 欄位會設定可編輯的小數位數。

`STRING`  
字串。限制條件：`allowedValues`、`minLength`、`maxLength`。控制：`LINE_EDIT`設定 `DROPDOWN_LIST`時為 或 `allowedValues` 。也接受 `MULTILINE_EDIT`，當 `allowedValues`保留 true/false 配對，例如 `CHECK_BOX`時`["true", "false"]`。

`PATH`  
檔案或目錄路徑。路徑映射規則會套用至工作者上的 值。限制條件：`allowedValues`、`minLength`、`maxLength`、`objectType`、`dataFlow`。控制項：`CHOOSE_INPUT_FILE`、 `CHOOSE_OUTPUT_FILE`或 `CHOOSE_DIRECTORY`，取決於 `objectType`和 `dataFlow`。

`BOOL` （需要 `EXPR`)  
`true` 或 `false`；數字`1`或 `0`；或字串 `true`、`yes`、`on`、`1``false`、`no`、、`off`，`0`以任何字母為例。沒有限制條件。控制：`CHECK_BOX`。

`RANGE_EXPR` （需要 `EXPR`)  
整數範圍表達式，例如 `"1-100"`、 `"1-100:10"`或 `"1,3,5-9"`。限制條件：`minLength`、`maxLength`。控制：`LINE_EDIT`。

`LIST[STRING]` （需要 `EXPR`)  
字串清單。限制條件：清單`maxLength`為 `minLength`和 ；每個項目`item.maxLength`為 `item.allowedValues``item.minLength`、 和 。控制：`LINE_EDIT_LIST`。

`LIST[PATH]` （需要 `EXPR`)  
路徑清單。路徑映射規則會套用至每個值。限制條件： 的清單和項目限制條件`LIST[STRING]`，加上 `objectType`和 `dataFlow`。控制項：`CHOOSE_INPUT_FILE_LIST`、 `CHOOSE_OUTPUT_FILE_LIST`或 `CHOOSE_DIRECTORY_LIST`，取決於 `objectType`和 `dataFlow`。

`LIST[INT]`、 `LIST[FLOAT]`（需要 `EXPR`)  
號碼清單。限制條件：清單`maxLength`為 `minLength`和 `item.allowedValues`；每個項目`item.maxValue`為 `item.minValue`、 和 。控制：`SPIN_BOX_LIST`。

`LIST[BOOL]` （需要 `EXPR`)  
布林值清單，每個都接受與 相同的值`BOOL`。限制條件：`minLength`、`maxLength`。控制：`CHECK_BOX_LIST`。

`LIST[LIST[INT]]` （需要 `EXPR`)  
整數清單清單，用於結構式輸入，例如相鄰清單。限制條件：巢狀`item`限制條件。控制項：`HIDDEN`；此類型沒有視覺化控制項。

每種類型也會接受 `HIDDEN`做為其控制項，讓 參數保持在提交對話方塊之外。`HIDDEN` 為管道以程式設計方式提供的值設定 。

`PATH` 和 `LIST[PATH]`類型具有兩個額外的欄位。 `objectType` 為 `FILE`或 `DIRECTORY`，而 `dataFlow`為 `IN`、`INOUT`、 `OUT`或 `NONE`。任務附件會讀取這些欄位，以決定要上傳哪些路徑做為輸入，以及要監看哪些輸出。`PATH` 參數也支援 檔案對話方塊`fileFilterDefault`的 `fileFilters`和 。如需詳細資訊，請參閱[任務套件的任務範本元素](build-job-bundle-template.md)。

下列定義顯示核取方塊、影格範圍、攝影機名稱清單，以及輸入檔案清單。範本會列出，`EXPR`因為最後四種類型需要它。

```
specificationVersion: 'jobtemplate-2023-09'
extensions:
  - EXPR
parameterDefinitions:
  - name: Samples
    type: INT
    default: 64
    minValue: 1
    maxValue: 4096
  - name: UseGpu
    type: BOOL
    default: false
    userInterface:
      label: Render on GPU
  - name: Frames
    type: RANGE_EXPR
    default: "1-100"
    userInterface:
      label: Frame Range
  - name: Cameras
    type: LIST[STRING]
    default: ["main", "closeup"]
    minLength: 1
    userInterface:
      label: Cameras to Render
  - name: Textures
    type: LIST[PATH]
    objectType: FILE
    dataFlow: IN
    default: []
```

在具有 `EXPR` 延伸的範本中，每個參數都有相符的表達式類型：`int`、`float`、`string`、`path`、`bool`、 `range_expr`或 `list[{{T}}]`。`RANGE_EXPR` 或清單參數可以直接是任務參數`range`的 ，讓每個影格或項目成為任務。對於 `PATH`和 `LIST[PATH]`， `RawParam.{{Name}}` 是路徑映射之前提交做為字串的值。

```
steps:
  - name: Render
    parameterSpace:
      taskParameterDefinitions:
        - name: Camera
          type: STRING
          range: "{{Param.Cameras}}"
        - name: Frame
          type: INT
          range: "{{Param.Frames}}"
    script:
      actions:
        onRun:
          command: render
          args:
            - "--camera"
            - "{{Task.Param.Camera}}"
            - "--frame"
            - "{{Task.Param.Frame}}"
            - "--samples"
            - "{{Param.Samples}}"
            - "{{ '--gpu' if Param.UseGpu else null }}"
            - "{{ ['--textures', Param.Textures.join(',')] if len(Param.Textures) > 0 else null }}"
```

最後兩個引數是表達式。`null` 結果不會新增任何引數，而清單結果會將每個項目新增為個別引數。如需詳細資訊，請參閱[任務範本中的表達式](build-job-bundle-expressions.md)。

若要提交使用 `EXPR` 參數類型的任務套件， 中的截止日期雲端 CLI 和提交對話方塊`deadline bundle gui-submit`，以及截止日期雲端監視器必須是支援延伸模組的版本。較舊的用戶端會拒絕具有這些類型的範本。