UiPath Documentation
uipath-cli
latest
false
UiPath CLI 用户指南
重要 :
请注意,此内容已使用机器翻译进行了本地化。 新发布内容的本地化可能需要 1-2 周的时间才能完成。

UIP Maestro 案例

使用“uip Maestro Case”创建、打包、调试、验证和创作案例管理项目,这是在 BPMN 和 Flow 之后的第三个 Maestro 编排界面。

uip maestro case用于创建、打包、调试和创作案例管理项目,这是除了BPMN和Flow之外的第三个 Maestro 编排界面。案例项目将长时间运行的人工驱动工作单元建模为案例计划:一个 JSON 文档 ( caseplan.json ),描述阶段、任务、SLA、触发器以及在不同阶段之间移动案例的进入/退出条件 —比线性流程更接近于有生命周期的结构化工作流。

该工具作为单独的 @uipath/case-tool 包提供,由 @uipath/maestro-tool 分支下的 case 动态加载 — 此处的每个命令都作为 uip maestro case <verb> 调用,从不作为独立的 uip case 调用。

该资源跨越九个页面​

概念​

  • 创作模型:直接编辑caseplan.json ,然后validate 。案例内容没有 CLI 驱动的变异路径。手动创作或编辑caseplan.json (或让智能体在uipath-maestro-case技能的 JSON 形状引用的指导下完成),然后运行uip maestro case validate进行检查。上述同级页面上记录的 read 动词(“cases get”、“stages list”、“tasks get”等)旨在帮助您在以这种方式创作计划时检查计划 — 它们不是写入 API 的一部分。
  • 案例、BPMN 与流— 所有三个都是打包为.nupkg并共享 runtime 基元 ( process / job / instances / incidents / registry ) 的 Maestro 编排界面,但案例管理拥有自己的编排界面主资产为caseplan.json (加上生成的caseplan.json.bpmn ),其项目类型为CaseManagement project.uiproj operate.json与 BPMN 的.bpmn和 Flow 的.flow不同。
  • 验证配置文件— validate根据创作的进度运行四个配置文件之一: skeleton (仅结构 — 节点、边缘、身份、类型)、 skeleton-v2 (框架以及 SLA/升级/entry-exit-rule)检查,仍会跳过任务内容)、 strict (每项检查,包括“无任务的阶段”、未解析的$xref标记和连接器上下文完整性(即已完成案例的门户))和默认的full配置文件(宽松,适用于部分创作或已打包的文件)。--sdd <path> 根据规范文档审核完整性,并包含 --strict。
  • spec是一个规划工具,而非案例计划变异程序:它会获取一个 Integration Service 连接器活动或触发器的规范化说明(输入、输出、必填字段),以便您知道要在caseplan.json的任务/中放入哪些内容在编写触发器定义之前,先检查触发器定义。通过--activity-type-id / --connection-id查找所需的registry get-connector / get-connection值。

大纲​

uip maestro case init <name> [--force] [--skip-solution-registration]
uip maestro case pack <project-path> <output-path> [-n, --name <name>] [-v, --version <version>] [package-metadata options...]
uip maestro case debug <project-path> [--folder-id <id>] [--poll-interval <ms>] [--login-validity <minutes>]
uip maestro case validate <file> [--skeleton | --skeleton-v2 | --strict] [--sdd <path>]
uip maestro case spec --type <activity|trigger> --activity-type-id <uuid> --connection-id <id> [--object-name <name>] [--skip-case-shape | --input-details <json>]
uip maestro case init <name> [--force] [--skip-solution-registration]
uip maestro case pack <project-path> <output-path> [-n, --name <name>] [-v, --version <version>] [package-metadata options...]
uip maestro case debug <project-path> [--folder-id <id>] [--poll-interval <ms>] [--login-validity <minutes>]
uip maestro case validate <file> [--skeleton | --skeleton-v2 | --strict] [--sdd <path>]
uip maestro case spec --type <activity|trigger> --activity-type-id <uuid> --connection-id <id> [--object-name <name>] [--skip-case-shape | --input-details <json>]

UIP Maestro 案例初始化​

使用样板文件创建一个新的 案例项目: project.uiproj、operate.json、entry-points.json、bindings_v2.json、package-descriptor.json 和最小的 caseplan.json(仅在案例不存在时才写入 — 重新运行 init 从不会破坏编写的案例计划)。如果在现有解决方案外部运行,则系统会自动构建父 <name>Solution,并将案例项目嵌套在其中;如果在一个解决方案中运行,则项目将注册到该解决方案中。

参数​

名称必填用途
<name>是案例项目名称。仅限字母、数字、下划线和连字符。

选项​

长值描述
--force标记即使目标目录不为空,也进行初始化。写入文件而不清除现有内容。
--skip-solution-registration标记不要在相关解决方案中自动注册此项目。

示例​

uip maestro case init my-case-project
uip maestro case init my-case-project

数据形状(--输出 json)​

{
  "Code": "CaseInit",
  "Data": {
    "Status": "Created successfully",
    "Path": "/workspace/my-case-project",
    "CasePlan": "/workspace/my-case-project/caseplan.json",
    "CasePlanStatus": "Created",
    "SolutionRegistration": { "Status": "Registered", "Solution": "...", "ProjectId": "..." },
    "AutoCreatedSolution": { "...": "present only when a parent solution was scaffolded" },
    "ProjectArtifacts": { "...": "present only when registered into a parent solution" },
    "NextSteps": "present only when SolutionRegistration.Instructions is set"
  }
}
{
  "Code": "CaseInit",
  "Data": {
    "Status": "Created successfully",
    "Path": "/workspace/my-case-project",
    "CasePlan": "/workspace/my-case-project/caseplan.json",
    "CasePlanStatus": "Created",
    "SolutionRegistration": { "Status": "Registered", "Solution": "...", "ProjectId": "..." },
    "AutoCreatedSolution": { "...": "present only when a parent solution was scaffolded" },
    "ProjectArtifacts": { "...": "present only when registered into a parent solution" },
    "NextSteps": "present only when SolutionRegistration.Instructions is set"
  }
}

CasePlanStatus"Created"在新框架上为"Preserved" ,而在保持现有caseplan.json 不变(在已编写的项目上重新运行init )时为 。SolutionRegistration 始终存在 — 它的 Status 是 "NotInSolution",而不是在不存在父解决方案时省略字段。

UIP Maestro 案例包​

将案例项目目录打包到 .nupkg 文件中,该文件从项目根目录读取 caseplan.json。

参数​

名称必填用途
<project-path>是案例项目目录的路径。
<output-path>是.nupkg 的输出目录。

选项​

长值描述
-n, --name <name>字符串包名称。默认值:项目文件夹名称。
-v, --version <version>字符串包版本。默认 1.0.0。

同时接受此存储库的共享包元数据选项( --repository-url / --repository-commit / --repository-branch / --repository-type 、 --release-notes 、 --project-url 、 --author 、 --description )— 请参阅任何其他pack命令完整共享集的选项表格(例如uip maestro bpmn pack ),此命令以相同的方式注册。

示例​

uip maestro case pack ./my-case-project ./dist --version 1.2.0
uip maestro case pack ./my-case-project ./dist --version 1.2.0

数据形状(--输出 json)​

{
  "Code": "CasePack",
  "Data": {
    "Package": "my-case-project.1.2.0.nupkg",
    "Output": "./dist/my-case-project.1.2.0.nupkg"
  }
}
{
  "Code": "CasePack",
  "Data": {
    "Package": "my-case-project.1.2.0.nupkg",
    "Output": "./dist/my-case-project.1.2.0.nupkg"
  }
}

针对打包期间的架构错误(格式错误的 caseplan.json),在显示为故障之前,我们提供针对特定案例的指导原则 — 期待可操作的 Instructions,而不是原始解析器错误。

uip Maestro 案例调试​

通过将案例项目上传到 Studio Web 并在其中运行调试会话来调试案例项目,案例管理没有仅限本地的调试模式(与其他一些 Maestro 调试命令不同)。

参数​

名称必填用途
<project-path>是案例项目目录的路径。必须包含 project.uiproj。

选项​

长值描述
--folder-id <id>整数Orchestrator 文件夹 ID (OrganizationUnitId)。省略时由自动检测。
--poll-interval <ms>整数轮询间隔(以毫秒为单位)。默认 2000。
--login-validity <minutes>整数在令牌过期前触发刷新的最短分钟数。默认 10。

需要带有可解析组织、租户和访问令牌的活动登录名 (uip login) — 快速失败,并显示特定消息,指明缺少的登录状态部分。

示例​

uip maestro case debug ./my-case-project
uip maestro case debug ./my-case-project

数据形状(--输出 json)​

{
  "Code": "CaseDebug",
  "Data": {
    "jobKey": "b2c3d4e5-0000-0000-0000-000000000001",
    "instanceId": "c3d4e5f6-0000-0000-0000-000000000001",
    "runId": "d4e5f6a7-0000-0000-0000-000000000001",
    "finalStatus": "Completed",
    "solutionId": "e5f6a7b8-0000-0000-0000-000000000001",
    "studioWebUrl": "https://cloud.uipath.com/org/tenant/studio_/debug/e5f6a7b8",
    "elementExecutions": [
      { "elementId": "Stage_1", "status": "Completed" },
      { "elementId": "Stage_2", "status": "Completed" }
    ]
  }
}
{
  "Code": "CaseDebug",
  "Data": {
    "jobKey": "b2c3d4e5-0000-0000-0000-000000000001",
    "instanceId": "c3d4e5f6-0000-0000-0000-000000000001",
    "runId": "d4e5f6a7-0000-0000-0000-000000000001",
    "finalStatus": "Completed",
    "solutionId": "e5f6a7b8-0000-0000-0000-000000000001",
    "studioWebUrl": "https://cloud.uipath.com/org/tenant/studio_/debug/e5f6a7b8",
    "elementExecutions": [
      { "elementId": "Stage_1", "status": "Completed" },
      { "elementId": "Stage_2", "status": "Completed" }
    ]
  }
}

密钥应保留其原生驼峰式命名法(而非帕斯卡命名法)——此有效负载旨在由评估检查器和 SDK 以编程方式读取,与 Flow 的调试命令和 registry get 使用的拆分命令相同。当 finalStatus 为 "Completed"/"Successful" 以外的任何值时,即使信封本身报告 Result: "Success",命令也会非零退出 — 请检查脚本中的退出代码,而不仅仅是 Data 的存在。

uip Maestro 案例验证​

根据案例管理的结构和业务规则验证案例管理 JSON 文件。

参数​

名称必填用途
<file>是案例管理 JSON 文件的路径(通常是 caseplan.json)。

选项​

长描述
--skeleton仅结构检查(节点、边缘、身份、类型)。跳过任务内容、SLA、升级和进入/退出规则 — 在创作的框架阶段非常有用。与 --skeleton-v2/--strict 冲突。
--skeleton-v2框架检查以及 SLA、升级和进入/退出规则检查。仍会跳过任务内容。与 --skeleton/--strict 冲突。
--strict每次检查,加上严格集合:没有任务、未解决的 $xref 标记、提升的 conditionExpression、形式参数/输出绑定形状和连接器上下文完整性的阶段。已完成案例的入口。与 --skeleton/--skeleton-v2 冲突。
--sdd <path>根据给定的 SDD(规范文档)对案例计划的完整性进行审核,明确其声明的每个阶段、任务、任务类型、条件行、SLA、触发器和案例变量都必须存在。隐含 --strict。

省略所有四次运行默认的 full 配置文件:宽松,因此部分创作的文件或已打包的文件仍有效。

示例​

uip maestro case validate case.json
uip maestro case validate case.json --skeleton
uip maestro case validate case.json --strict
uip maestro case validate case.json --sdd ./spec.md
uip maestro case validate case.json
uip maestro case validate case.json --skeleton
uip maestro case validate case.json --strict
uip maestro case validate case.json --sdd ./spec.md

数据形状(--输出 json)​

{
  "Code": "CaseValidate",
  "Data": {
    "File": "case.json",
    "Status": "Valid",
    "Warnings": "2 warning(s):\n  - [stages[0].tasks[1]] ...",
    "Issues": [
      { "Code": "UNRESOLVED_REFERENCE", "Path": "stages[0].tasks[1]", "Message": "...", "Severity": "warning" }
    ]
  }
}
{
  "Code": "CaseValidate",
  "Data": {
    "File": "case.json",
    "Status": "Valid",
    "Warnings": "2 warning(s):\n  - [stages[0].tasks[1]] ...",
    "Issues": [
      { "Code": "UNRESOLVED_REFERENCE", "Path": "stages[0].tasks[1]", "Message": "...", "Severity": "warning" }
    ]
  }
}

Profile: "strict"仅当传递了Data --strict(或--sdd )时,才会将 添加到 。Warnings/Issues 仅当有效文件仍会生成警告时才会存在。失败时(Result: "Failure",退出 1),Data.Issues 会以稳定的 Code、Path、Message 和 Severity 形式携带所有错误和警告 — 解析此数组,而不是人工可读的 Instructions(如果您正在驱动修复循环)文本。

uip Maestro 案例规范​

生成规范化的 ConnectorTaskSpec — 生成可运行的 Integration Service 活动或在案例计划中触发器任务所需的一切。在本地类型缓存中查找类型,列出连接器的 Integration Service 连接,并提取 Integration Service 元数据。

选项​

长值必填描述
--type <type>activity | trigger是要查找的类型缓存。
--activity-type-id <uuid>UUID是Studio Web uiPathActivityTypeId。通过registry pull + 读取typecache-{activities,triggers}-index.json缓存文件,或registry get-connector查找它。
--connection-id <id>UUID是连接 ID。列出包含registry get-connection --type typecache-{activities,triggers} --activity-type-id <uuid>候选对象。
--object-name <name>字符串否覆盖类型缓存 objectName。对于类型缓存存储占位符(例如Data Service {tenantEntityName|folderEntityName})— 选择一个真实的实体名称。
--skip-case-shape标记否在响应中省略 caseShape (inputs[]/outputs[]/context[]) — 在只需要连接器合同时使用。与 --input-details 互斥。
--input-details <json>JSON否预填充值并入生成的 caseShape。形状差异 --type:活动接受 {bodyParameters, queryParameters, pathParameters, filter};触发器接受 {eventParameters, filter}。与 --skip-case-shape 互斥。

示例​

# Curated connector activity (Send Email)
uip maestro case spec --type activity \
  --activity-type-id c7ce0a96-2091-3d94-b16f-706ebb1eb351 \
  --connection-id fc82e610-c454-4bc7-a1a5-b5aa529d1ba6
# Curated connector activity (Send Email)
uip maestro case spec --type activity \
  --activity-type-id c7ce0a96-2091-3d94-b16f-706ebb1eb351 \
  --connection-id fc82e610-c454-4bc7-a1a5-b5aa529d1ba6
# Curated connector trigger (Email Received)
uip maestro case spec --type trigger \
  --activity-type-id 7dc57f24-894c-5ae2-a902-66056fa40609 \
  --connection-id fc82e610-c454-4bc7-a1a5-b5aa529d1ba6
# Curated connector trigger (Email Received)
uip maestro case spec --type trigger \
  --activity-type-id 7dc57f24-894c-5ae2-a902-66056fa40609 \
  --connection-id fc82e610-c454-4bc7-a1a5-b5aa529d1ba6

数据形状(--输出 json)​

{
  "Code": "ConnectorTaskSpec",
  "Data": {
    "specVersion": 1,
    "identity": {
      "target": "activity",
      "uiPathActivityTypeId": "c7ce0a96-2091-3d94-b16f-706ebb1eb351",
      "connectorKey": "uipath-microsoft-outlook365",
      "objectName": "send-mail-v2",
      "typecacheEntry": { "displayName": "Send Email" }
    },
    "operation": { "name": "POST", "verb": "create", "httpMethod": "POST", "path": "/hubs/productivity/send-mail-v2" },
    "inputs": { "bodyFields": [{ "name": "message.toRecipients", "required": true }] }
  }
}
{
  "Code": "ConnectorTaskSpec",
  "Data": {
    "specVersion": 1,
    "identity": {
      "target": "activity",
      "uiPathActivityTypeId": "c7ce0a96-2091-3d94-b16f-706ebb1eb351",
      "connectorKey": "uipath-microsoft-outlook365",
      "objectName": "send-mail-v2",
      "typecacheEntry": { "displayName": "Send Email" }
    },
    "operation": { "name": "POST", "verb": "create", "httpMethod": "POST", "path": "/hubs/productivity/send-mail-v2" },
    "inputs": { "bodyFields": [{ "name": "message.toRecipients", "required": true }] }
  }
}

触发器规范的 operation 形状不同(eventMode/事件名称,而不是 HTTP 动词/路径)— 请参阅上面的第二个示例。

另请参阅​

此页面有帮助吗?

连接

需要帮助? 支持

想要了解详细内容? UiPath Academy

有问题? UiPath 论坛

保持更新