

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Job 参数类型
<a name="build-job-bundle-parameter-types"></a>

作业模板`parameterDefinitions`列表中的每个条目都声明了一个作业参数。每个参数都有 a `name` 和 a`type`，可以有 a `description` `default`、a 以及带有 a `label`、a 和 a `groupLabel` 的`userInterface`块`control`。类型决定了参数接受哪些值、它支持哪些约束字段，以及默认情况下为其显示的提交对话框的控件。模板将该值称为`{{Param.{{Name}}}}`。类型如下。

有些类型是基本的 Open Job Description 规范的一部分。其余的由`EXPR`扩展程序添加，使用它们的模板必须在其`EXPR`中列出`extensions`。有关每种类型的逐字段定义，请参阅网站上的 Open [Job Description 职位参数定义](https://github.com/OpenJobDescription/openjd-specifications/wiki/2023-09-Template-Schemas#2-jobparameterdefinition)。 GitHub 

`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`，以及`CHECK_BOX`何时`allowedValues`持有一 true/false 对，例如`["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`）  
字符串列表。约束条件：`minLength`以及`maxLength`针对列表；`item.allowedValues`、`item.minLength`、以及`item.maxLength`针对每个项目。控制：`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`）  
数字清单。约束条件：`minLength`以及`maxLength`针对列表；`item.allowedValues`、`item.minValue`、以及`item.maxValue`针对每个项目。控制：`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`、`OUT`、`INOUT`、或`NONE`。Job 附件会读取这些字段，以决定将哪些路径作为输入上传，哪些路径需要监视输出。文件对话框还`fileFilterDefault`支持`fileFilters`和。`PATH`有关更多信息，请参阅 [作业捆绑包的作业模板元素](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`fo `PATH` r `LIST[PATH]` an `RawParam.{{Name}}` d，是路径映射之前提交的值，以字符串形式提交。

```
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`参数类型的任务包，Deadline Cloud CLI 和中的提交对话框`deadline bundle gui-submit`以及 Deadline Cloud 监视器必须是支持该扩展的版本。较旧的客户会拒绝使用这些类型的模板。