uipath-maestro-bpmn

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Reasoning budget

推理预算

  • Match reasoning to step difficulty and bias toward acting; for mechanical / IO / format steps, if a provided script already covers the task, run it — don't re-derive it.
  • Save deep, extended reasoning for the one genuinely hard judgment a script can't make for you.
  • 根据步骤难度匹配推理方式,优先行动;对于机械/输入输出/格式类步骤,如果已有脚本可完成任务,直接运行脚本——无需重新推导。
  • 将深度、扩展推理留给脚本无法完成的真正复杂判断。

Working style

工作风格

  • Understand first, then decide. Read this skill's SKILL.md and understand the scripts it ships before you act. Then plan accordingly, such as run a script as-is when it fits, change a script when it's close, or write extra scripts to complement — based on what the scripts actually do, not a guess.
  • Plan the whole path up front, then chain. Outline the full sequence of steps before running anything, batch independent steps into one turn, and pipeline the whole plan in as few turns as possible. Don't do things that can be pipelined into one call turn-by-turn.
  • Inspect an input ONCE. To learn a file's structure (sheets/columns, pages, form fields, keys), dump it once — ideally to a file you then grep — never re-open the same file field-by-field or retry it with several libraries.
  • Don't repeat work. Do not rerun a command when its inputs and relevant state are unchanged, and do not reread an unchanged file, script, or SKILL.md already in context. After a tool or command may modify a file, reread the affected content before relying on it.
  • Write code once and reuse. If a step needs code, write it once as a small script (paths/params as CLI args) and call it; don't paste near-duplicate inline python across turns. Keep it terse — no comment banners or narration in inline scripts.
  • Keep outputs small. Don't put large tool results and outputs into the context, instead write them into a file and use tools to inspect them. If there is no tool available, you should write your own scripts to inspect the file.
  • Don't do anything unnecessary. Don't call tools, read files, or put results into context unless they're immediately needed.
  • 先理解,再决策。 先阅读本技能的SKILL.md并了解其附带脚本的功能,再采取行动。然后据此规划,比如脚本适用时直接运行,接近需求时修改脚本,或编写额外脚本进行补充——依据脚本实际功能,而非猜测。
  • 提前规划完整路径,再链式执行。 在运行任何操作前先列出完整步骤序列,将独立步骤批量整合到一轮操作中,用尽可能少的轮次完成整个计划。不要将可批量处理的操作逐轮执行。
  • 仅检查一次输入。 要了解文件结构(工作表/列、页面、表单字段、键),只需导出一次——最好导出到文件后用grep工具查看——切勿逐字段重新打开同一文件,或尝试用多个库重复读取。
  • 避免重复工作。 当输入和相关状态未改变时,不要重新运行命令;不要重复读取上下文中已有的未修改文件、脚本或SKILL.md。工具或命令可能修改文件后,在依赖该文件前需重新读取受影响的内容。
  • 编写一次代码并复用。 如果某步骤需要代码,编写一个小型脚本(路径/参数作为CLI参数)并调用;不要在多轮操作中粘贴近乎重复的内联Python代码。保持代码简洁——内联脚本中不要添加注释横幅或说明文字。
  • 保持输出精简。 不要将大型工具结果和输出放入上下文,而是写入文件并使用工具查看。如果没有可用工具,应自行编写脚本查看文件。
  • 不做不必要的操作。 除非立即需要,否则不要调用工具、读取文件或将结果放入上下文。

UiPath Maestro BPMN

UiPath Maestro BPMN

Work with UiPath Maestro (Process Orchestration)
.bpmn
projects across their lifecycle: author, validate, package, operate, and diagnose. Authoring is registry-driven: every
uipath:*
extension payload comes from a template the registry serves; the structural BPMN that holds those nodes together (process scaffold, sequence flows, gateways, events, boundary events, containers, multi-instance markers, and the diagram) is authored from the documented spec + canvas contract. Packaging, operating (upload, publish, run, manage), and diagnosing are driven through the UiPath CLI, covered in the capability references below.
全生命周期处理UiPath Maestro(流程编排)的
.bpmn
项目:创建、验证、打包、运维和诊断。创建基于注册表驱动:每个
uipath:*
扩展负载均来自注册表提供的模板;承载这些节点的结构化BPMN(流程框架、顺序流、网关、事件、边界事件、容器、多实例标记和流程图)依据文档规范和画布协议创建。打包、运维(上传、发布、运行、管理)和诊断通过UiPath CLI完成,详情见下方功能参考。

When to use

使用场景

  • Create a Maestro
    .bpmn
    from a description.
  • Edit
    .bpmn
    structure: gateways, events, boundary events, subprocesses, call activities, multi-instance loops, sequence-flow conditions, variables.
  • Add a UiPath extension node (RPA job, agent, HITL, queue, business rule, API workflow, Integration Service connector, internal message, timer).
  • Validate a
    .bpmn
    against the canvas rules before import.
  • Package, upload, publish, or run a project, and manage its jobs and instances.
  • Diagnose a failed or misbehaving run.
  • 根据描述创建Maestro
    .bpmn
    文件。
  • 编辑
    .bpmn
    结构:网关、事件、边界事件、子流程、调用活动、多实例循环、顺序流条件、变量。
  • 添加UiPath扩展节点(RPA任务、Agent、HITL、队列、业务规则、API工作流、Integration Service连接器、内部消息、计时器)。
  • 在导入前根据画布规则验证
    .bpmn
    文件。
  • 打包、上传、发布或运行项目,并管理其任务和实例。
  • 诊断失败或运行异常的流程。

Editing an existing
.bpmn
(preserve what you did not author)

编辑现有
.bpmn
文件(保留非自行创建的内容)

The skill can edit an existing file. Make surgical edits and preserve content you did not author: unknown
uipath:*
elements,
uipath:migrationVersion
, tags, imported Integration Service payloads, and stable element IDs. Do not regenerate the whole file or drop extension data the skill does not recognize — preserve-only structures (see the blocklist in references/structural-bpmn.md) round-trip untouched. Never normalize existing nodes to this skill's canonical templates: do not add missing attributes (e.g.
type="json" target="bodyField"
on an existing
uipath:input
) to elements the edit does not target — on untouched neighbors only wiring (
bpmn:incoming
/
bpmn:outgoing
) may change.
For
.flow
JSON use
uipath-maestro-flow
; for XAML/coded workflows use
uipath-rpa
; for Python agents use
uipath-agents
; for Case plans use
uipath-maestro-case
.
本技能可编辑现有文件。需进行精准编辑,保留非自行创建的内容:未知的
uipath:*
元素、
uipath:migrationVersion
、标签、导入的Integration Service负载以及稳定的元素ID。不要重新生成整个文件或丢弃技能无法识别的扩展数据——仅保留结构(详见references/structural-bpmn.md中的黑名单),原样往返处理。切勿将现有节点标准化为技能的规范模板:不要向未针对的元素添加缺失的属性(例如现有
uipath:input
中的
type="json" target="bodyField"
)——仅未修改的相邻节点的连线(
bpmn:incoming
/
bpmn:outgoing
)可更改。
处理
.flow
JSON文件请使用
uipath-maestro-flow
;处理XAML/编码工作流请使用
uipath-rpa
;处理Python Agent请使用
uipath-agents
;处理案例计划请使用
uipath-maestro-case

The model

模型

Two halves make a valid Maestro
.bpmn
:
  1. uipath:*
    payloads — registry-owned.
    Each node's extension XML (
    uipath:activity
    /
    uipath:event
    /
    uipath:mapping
    , its
    context
    ,
    input
    ,
    output
    , and
    bindingInfo
    ) comes from
    uip maestro bpmn registry get <type>
    's
    xmlTemplate
    . Never hand-author a
    uipath:*
    element from prose.
  2. Structural BPMN — spec/canvas-owned. The registry emits no
    <bpmn:definitions>
    /
    <bpmn:process>
    , no sequence flows, no gateway conditions/defaults, no event-definition payloads, no boundary-event attributes, no subprocess/loop structure, and no diagram. Author all of these from references/structural-bpmn.md, which is grounded in the registry spec and the Studio Web canvas serializer.
有效的Maestro
.bpmn
文件由两部分组成:
  1. uipath:*
    负载——注册表所有。
    每个节点的扩展XML(
    uipath:activity
    /
    uipath:event
    /
    uipath:mapping
    及其
    context
    input
    output
    bindingInfo
    )来自
    uip maestro bpmn registry get <type>
    xmlTemplate
    切勿根据文本手动创建
    uipath:*
    元素。
  2. 结构化BPMN——规范/画布所有。 注册表不提供
    <bpmn:definitions>
    /
    <bpmn:process>
    、顺序流、网关条件/默认值、事件定义负载、边界事件属性、子流程/循环结构以及流程图。这些内容需依据references/structural-bpmn.md创建,该文档基于注册表规范和Studio Web画布序列化器。

Workflow

工作流程

Work the four steps quickly, but keep the path matched to the user's ask. Treat requests to discover before authoring, save raw registry JSON/evidence, or "do not author yet" as discovery-only even if they describe an eventual BPMN. In that mode, immediately create
registry-evidence/
, run and save
registry pull --output json
,
registry list --output json
or
registry search ... --output json
, and
registry get <type> --output json
for each requested type; do not read deep authoring references or scaffold a project. For authoring asks, author early: do not pre-read every reference before writing. Read a reference only when you reach the structure it covers, get the needed templates, then write the first complete draft before further spelunking. If references/structural-bpmn.md or references/expression-authoring.md directly covers the requested construct, write a first complete draft before further spelunking.
For registry-evidence-only tasks, be command-first and time-boxed:
  • Create
    registry-evidence/
    before anything else.
  • Run the registry command forms the user asked for. For RPA job + internal message discovery, use
    uip maestro bpmn registry list --limit -1 --output json
    ,
    uip maestro bpmn registry get Orchestrator.StartJob --output json
    , and
    uip maestro bpmn registry get Maestro.ReceiveMessageEvent --output json
    .
  • If
    uip
    is unavailable in a temp/smoke sandbox, or if it writes a valid JSON failure object such as
    "Result": "Failure"
    instead of registry content, do not search the repo for a replacement CLI or inspect test fixtures. Still issue the required
    list
    and
    get
    command forms once each with output redirected to their evidence files (allowing failure with
    || true
    ), so the transcript shows the discovery loop:
    uip maestro bpmn registry list --limit -1 --output json
    and
    uip maestro bpmn registry get <type> --output json
    . Record the failed CLI attempts in
    registry-evidence/cli-error.txt
    , then overwrite any failure JSON in the expected
    registry-evidence/*.json
    files with valid JSON evidence from
    skills/uipath-maestro-bpmn/validator/bpmn-spec.json
    containing the same extension types and stop. The final evidence files must literally contain the discovered type names, for example
    Orchestrator.StartJob
    and
    Maestro.ReceiveMessageEvent
    .
  1. Discover.
    uip maestro bpmn registry pull
    once (cached for the session — do not re-pull), then
    list
    /
    search
    to map intent to extension types;
    uip is connections list --all-folders
    for live connections (always
    --all-folders
    — a folder-scoped list silently misses connections). Confirm every selection with the user (use AskUserQuestion). Never fabricate an identifier. See references/registry-workflow.md.
  2. Get templates.
    uip maestro bpmn registry get <type> --output json
    for each chosen registry-owned node only. Enrich
    Intsvc.*
    connector nodes with
    --connection-id
    /
    --object-name
    . Do not call
    registry get
    for structural gaps the registry never owns: sequence flows, gateways, events, boundary events, multi-instance/loop markers,
    errorMapping
    /retry structure, or diagrams. If a registry template's BPMN host tag is PascalCase (for example
    <bpmn:SendTask>
    or
    <bpmn:ReceiveTask>
    ), normalize the host tag to the serializer's lower-camel BPMN element (
    <bpmn:sendTask>
    ,
    <bpmn:receiveTask>
    ) while preserving the
    uipath:*
    payload exactly.
  3. Assemble. Author directly from the complete minimal file in references/structural-bpmn.md plus each node's
    xmlTemplate
    (fill placeholders only). That skeleton already shows variables, the entry point, a branch, and the diagram. Do not reverse-engineer authoring patterns from task fixtures or generated package files — fixture spelunking is the top reason authoring runs out of time. Add only the structural pieces your process needs (extra gateways, events, boundary events, containers, multi-instance markers, expression/error mappings, retry attributes), then run
    uip maestro bpmn format <file.bpmn>
    to generate the diagram. If
    format
    reports
    unknown command
    , update the CLI (see references/cli-conventions.md); if upgrading is unavailable, use the fallback DI structure in references/structural-bpmn.md. For local authoring prompts, use the plain project layout
    <ProjectName>/<ProjectName>.bpmn
    with
    <ProjectName>/project.uiproj
    ; do not create
    *Solution/
    , package files, or
    .uipx
    artifacts unless the user explicitly asks to package or operate the project. When adding draft or preserve-only case-management variants, include a real lowercase
    <uipath:caseManagement version="v1">...</uipath:caseManagement>
    payload with synthetic content as a separate preserve-only extension. Do not treat an
    Orchestrator.StartCaseMgmtProcess*
    typed activity shell as a substitute for that payload when the user asks to preserve case-management contract variants. When asked to preserve a generic unsupported
    uipath:Activity
    , write the actual capitalized element
    <uipath:Activity version="v1">...</uipath:Activity>
    . Do not write
    <uipath:activity><uipath:type value="uipath:Activity" ... />
    ; that is a lowercase typed shell, not the preserve-only generic payload. When writing public-safe placeholders into XML attribute values, XML-escape angle brackets: use
    &lt;TENANT_URL&gt;
    ,
    &lt;FOLDER_KEY&gt;
    , and
    &lt;CONNECTION_NAME&gt;
    in attributes. Raw
    <PLACEHOLDER>
    text is only safe in element text or CDATA; unescaped angle brackets inside attributes make the BPMN not well-formed. When routing on an Actions.HITL user task's outcome, the sequence-flow conditions from the exclusive gateway must reference the exact variable bound by the HITL template's
    <uipath:output ... var="...">
    (for example
    =vars.Var_HitlResult == "approve"
    ), not only a copied or derived script variable. For Integration Service draft notes, name every CLI-owned blocker literally, including the exact phrase
    connection binding
    , plus dynamic schemas, generated outputs,
    bindings_v2.json
    , and package metadata. Avoid softer wording such as "connection and process binding" because it hides the concrete artifact the CLI must supply. If the user asks to package or operate, run
    uip maestro bpmn update-metadata <file.bpmn>
    to generate the five package metadata files. Only fall back to the minimal local metadata shape in references/shared/local-metadata-regeneration-guide.md when the CLI is unavailable. Do not copy CLI scaffold metadata shapes into a synthetic local project.
  4. Validate. Run the CLI validator — it runs the full PO.Frontend canvas rule set (structural rules plus variable, method-call, input-type, and event-object checks) offline, plus deploy-readiness checks:
    bash
    uip maestro bpmn validate <file.bpmn> --output json
    Exit 0 = valid; exit 1 = validation failed (the envelope lists each issue with its rule code). Warnings are reported but do not fail the run. Validate once; fix only error-severity findings. Do not re-validate in a loop chasing warnings. If
    validate
    reports "unknown command" or clearly skips the structural rules, the installed CLI predates them — update it (see references/cli-conventions.md). See references/structural-bpmn.md#validation.
快速完成四个步骤,但需确保路径匹配用户需求。如果用户要求先探索再创建、保存原始注册表JSON/证据,或“暂不创建”,即使最终会创建BPMN,也仅执行探索操作。在此模式下,立即创建
registry-evidence/
目录,运行并保存
registry pull --output json
registry list --output json
registry search ... --output json
,以及针对每个请求类型的
registry get <type> --output json
;不要深入阅读创建参考文档或搭建项目框架。对于创建请求,尽早开始创建:不要在编写前预读所有参考文档。仅当遇到对应结构时才阅读参考文档,获取所需模板,然后编写第一个完整草稿,之后再深入研究。如果references/structural-bpmn.mdreferences/expression-authoring.md直接涵盖请求的结构,编写第一个完整草稿后再深入研究。
对于仅需注册表证据的任务,优先使用命令并限定时间:
  • 首先创建
    registry-evidence/
    目录。
  • 运行用户要求的注册表命令。对于RPA任务+内部消息探索,使用
    uip maestro bpmn registry list --limit -1 --output json
    uip maestro bpmn registry get Orchestrator.StartJob --output json
    uip maestro bpmn registry get Maestro.ReceiveMessageEvent --output json
  • 如果临时/沙箱环境中无法使用
    uip
    ,或其返回的是有效的JSON失败对象(例如
    "Result": "Failure"
    )而非注册表内容,不要在仓库中寻找替代CLI或检查测试 fixtures。仍需按要求各运行一次
    list
    get
    命令形式,并将输出重定向到对应的证据文件(允许失败,添加
    || true
    ),以便记录探索流程:
    uip maestro bpmn registry list --limit -1 --output json
    uip maestro bpmn registry get <type> --output json
    。将失败的CLI尝试记录在
    registry-evidence/cli-error.txt
    中,然后用
    skills/uipath-maestro-bpmn/validator/bpmn-spec.json
    中的有效JSON证据覆盖预期
    registry-evidence/*.json
    文件中的任何失败JSON,该证据需包含相同的扩展类型,然后停止操作。最终的证据文件必须包含实际发现的类型名称,例如
    Orchestrator.StartJob
    Maestro.ReceiveMessageEvent
  1. 探索。 运行一次
    uip maestro bpmn registry pull
    (会话内缓存——无需重新拉取),然后通过
    list
    /
    search
    将需求映射到扩展类型;运行
    uip is connections list --all-folders
    获取实时连接(始终使用
    --all-folders
    ——按文件夹范围列出会遗漏连接)。与用户确认每一项选择(使用AskUserQuestion)。切勿编造标识符。详见references/registry-workflow.md
  2. 获取模板。 仅针对每个选定的注册表所有节点运行
    uip maestro bpmn registry get <type> --output json
    。为
    Intsvc.*
    连接器节点添加
    --connection-id
    /
    --object-name
    参数。不要为注册表不涉及的结构空白调用
    registry get
    :顺序流、网关、事件、边界事件、多实例/循环标记、
    errorMapping
    /重试结构或流程图。如果注册表模板的BPMN宿主标签为帕斯卡命名法(例如
    <bpmn:SendTask>
    <bpmn:ReceiveTask>
    ),需将宿主标签标准化为序列化器的小驼峰式BPMN元素(
    <bpmn:sendTask>
    <bpmn:receiveTask>
    ),同时完全保留
    uipath:*
    负载。
  3. 组装。 直接依据references/structural-bpmn.md中的完整最小文件加上每个节点的
    xmlTemplate
    (仅填充占位符)进行创建。该框架已包含变量、入口点、分支和流程图。不要从任务fixtures或生成的包文件反向工程创建模式——研究fixtures是导致创建超时的主要原因。仅添加流程所需的结构部分(额外网关、事件、边界事件、容器、多实例标记、表达式/错误映射、重试属性),然后运行
    uip maestro bpmn format <file.bpmn>
    生成流程图。如果
    format
    命令返回
    unknown command
    ,请更新CLI(详见references/cli-conventions.md);如果无法升级,使用references/structural-bpmn.md中的备用DI结构。对于本地创建请求,使用简单项目布局
    <ProjectName>/<ProjectName>.bpmn
    <ProjectName>/project.uiproj
    ;除非用户明确要求打包或运维项目,否则不要创建
    *Solution/
    、包文件或
    .uipx
    工件。 添加草稿或仅保留的案例管理变体时,需包含真实的小写
    <uipath:caseManagement version="v1">...</uipath:caseManagement>
    负载,其中包含合成内容作为单独的仅保留扩展。当用户要求保留案例管理协议变体时,不要用
    Orchestrator.StartCaseMgmtProcess*
    类型的活动外壳替代该负载。 当要求保留通用的不支持
    uipath:Activity
    时,编写实际的大写元素
    <uipath:Activity version="v1">...</uipath:Activity>
    。不要编写
    <uipath:activity><uipath:type value="uipath:Activity" ... />
    ;这是小写的类型化外壳,而非仅保留的通用负载。 向XML属性值中写入公开安全的占位符时,需对尖括号进行XML转义:在属性中使用
    &lt;TENANT_URL&gt;
    &lt;FOLDER_KEY&gt;
    &lt;CONNECTION_NAME&gt;
    。原始
    <PLACEHOLDER>
    文本仅在元素文本或CDATA中安全;属性内未转义的尖括号会导致BPMN格式不正确。 基于Actions.HITL用户任务的结果进行路由时,排他网关的顺序流条件必须引用HITL模板的
    <uipath:output ... var="...">
    绑定的精确变量(例如
    =vars.Var_HitlResult == "approve"
    ),而非仅复制或派生的脚本变量。 对于Integration Service草稿说明,需明确命名每个CLI相关的障碍,包括确切短语
    connection binding
    ,以及动态模式、生成的输出、
    bindings_v2.json
    和包元数据。避免使用“连接和流程绑定”等模糊表述,因为这会隐藏CLI必须提供的具体工件。 如果用户要求打包或运维,运行
    uip maestro bpmn update-metadata <file.bpmn>
    生成五个包元数据文件。仅当CLI不可用时,才使用references/shared/local-metadata-regeneration-guide.md中的最小本地元数据格式作为备选。不要将CLI框架元数据格式复制到合成本地项目中。
  4. 验证。 运行CLI验证器——它会离线运行完整的PO.Frontend画布规则集(结构规则以及变量、方法调用、输入类型和事件对象检查),加上部署就绪检查:
    bash
    uip maestro bpmn validate <file.bpmn> --output json
    退出码0表示有效;退出码1表示验证失败(返回结果会列出每个问题及其规则代码)。警告会被报告,但不会导致运行失败。仅验证一次;仅修复错误级别的问题。不要循环验证以解决警告。如果
    validate
    命令返回“unknown command”或明显跳过结构规则,说明安装的CLI版本过旧——请更新(详见references/cli-conventions.md)。详见references/structural-bpmn.md#validation

Operate and diagnose

运维与诊断

Beyond authoring, this skill packages, ships, runs, and diagnoses Maestro projects through the UiPath CLI.
  • Package and operate (package a project, upload to Studio Web, publish or deploy, run or debug instances, and manage jobs, instances, incidents, and lifecycle actions): see references/operate/CAPABILITY.md.
  • Diagnose (fetch incidents, variables, and element executions, and trace a failed run back to its BPMN element): see references/diagnose/CAPABILITY.md.
Any cloud-side change (upload, publish, deploy, run, pause, resume, cancel, retry, migrate) requires explicit user consent, and local validation should pass first.
除创建外,本技能还可通过UiPath CLI打包、发布、运行和诊断Maestro项目。
  • 打包与运维(打包项目、上传到Studio Web、发布或部署、运行或调试实例,以及管理任务、实例、事件和生命周期操作):详见references/operate/CAPABILITY.md
  • 诊断(获取事件、变量和元素执行情况,并将失败的运行追溯到对应的BPMN元素):详见references/diagnose/CAPABILITY.md
任何云端变更(上传、发布、部署、运行、暂停、恢复、取消、重试、迁移)都需要用户明确同意,且需先通过本地验证。

Structural coverage

结构覆盖范围

This skill teaches authoring of the full surface the canvas supports. What the registry serves a template for vs. what you author by hand:
StructureSource
Node
uipath:*
payloads (RPA, agent, HITL, queue, business rule, API workflow, IS connector, internal message, timer, script, variables)
Registry
xmlTemplate
<bpmn:definitions>
/
<bpmn:process>
scaffold + namespaces
Authored (registry gap)
Sequence flows,
conditionExpression
, gateway
default
Authored (registry gap)
Gateways: exclusive, parallel, inclusive, event-based (complex is preserve-only)Authored (registry gap)
Events + event-definition matrix: message, timer, error, terminate (end-only). Signal/escalation/conditional/link/compensate/cancel/multiple are preserve-onlyAuthored (registry gap); payload per canvas serializer
Boundary events:
attachedToRef
, interrupting/non-interrupting (
cancelActivity
)
Authored (registry gap)
Subprocess, event subprocess (
triggeredByEvent
), call activity
Authored (registry gap); call-activity payloads from registry
Multi-instance / loop characteristicsAuthored from canvas contract — registry exposes no template (registry gap)
bpmndi:BPMNDiagram
(shape per node, edge per flow)
Generated via
uip maestro bpmn format <file.bpmn>
registry emits none (registry gap)
Flagged registry gaps: the registry serves no template for structural BPMN, sequence-flow conditions, event-definition payloads, boundary-event attributes, multi-instance markers, or the diagram. These are authored from the spec + canvas contract in references/structural-bpmn.md and honestly surfaced to the user as gaps when asked.
本技能教授画布支持的所有创建内容。注册表提供模板的内容与需手动创建的内容对比:
结构来源
节点
uipath:*
负载(RPA、Agent、HITL、队列、业务规则、API工作流、IS连接器、内部消息、计时器、脚本、变量)
注册表
xmlTemplate
<bpmn:definitions>
/
<bpmn:process>
框架 + 命名空间
手动创建(注册表空白)
顺序流、
conditionExpression
、网关
default
手动创建(注册表空白)
网关:排他、并行、包容、事件驱动(复杂类型仅保留)手动创建(注册表空白)
事件 + 事件定义矩阵:消息、计时器、错误、终止(仅结束事件)。信号/升级/条件/链接/补偿/取消/多事件仅保留手动创建(注册表空白);负载遵循画布序列化器
边界事件:
attachedToRef
、中断/非中断(
cancelActivity
手动创建(注册表空白)
子流程、事件子流程(
triggeredByEvent
)、调用活动
手动创建(注册表空白);调用活动负载来自注册表
多实例/循环特性依据画布协议手动创建——注册表未提供模板(注册表空白)
bpmndi:BPMNDiagram
(每个节点对应一个形状,每个流对应一条边)
通过
uip maestro bpmn format <file.bpmn>
生成——注册表未提供(注册表空白)
标记的注册表空白:注册表未提供结构化BPMN、顺序流条件、事件定义负载、边界事件属性、多实例标记或流程图的模板。这些内容需依据references/structural-bpmn.md中的规范和画布协议手动创建,当用户询问时需如实告知这些空白。

Rules

规则

  1. Registry owns every
    uipath:*
    payload.
    Author from
    registry get
    templates; never hand-write
    uipath:
    XML from prose.
  2. Never fabricate an identifier. Connection IDs, process/queue/connector keys, app IDs, folder ids/paths come from discovery or the user.
  3. Structural BPMN is authored, not invented. Follow the spec/canvas contract in references/structural-bpmn.md; flag honestly what the registry does not expose. BPMN XML element names are case-sensitive: use exact lower-camel tags such as
    <bpmn:startEvent>
    ,
    <bpmn:intermediateCatchEvent>
    ,
    <bpmn:scriptTask>
    , and
    <bpmn:endEvent>
    . Do not write PascalCase tags like
    <bpmn:IntermediateCatchEvent>
    .
  4. Confirm before authoring. Confirm the chosen connector/connection/process and the process structure with the user (AskUserQuestion).
  5. The diagram is mandatory. Import is diagram-driven — every node needs a
    BPMNShape
    , every flow a
    BPMNEdge
    , or it will not appear on the canvas.
  6. Node type is a child element, never an attribute. Every
    uipath:activity
    /
    uipath:event
    /
    uipath:mapping
    declares its type as
    <uipath:type value="<Type>" version="v1" />
    inside the wrapper. Never write
    <uipath:activity type="…">
    — the canvas will not recognize the node. Event extension types (
    Intsvc.WaitForEvent
    ,
    Intsvc.EventTrigger
    ,
    Maestro.ReceiveMessageEvent
    ,
    Maestro.SendMessageEvent
    ) must use
    <uipath:event>
    , including when the BPMN host is task-like such as
    <bpmn:receiveTask>
    .
  7. No
    --
    in XML comments.
    XML forbids
    --
    (double-hyphen) inside
    <!-- … -->
    , so never paste CLI commands or flags (
    --output
    ,
    --connection-id
    ,
    --object-name
    ) into a comment — it makes the file unparseable. Keep comments minimal.
  8. Use
    --output json
    for parsed CLI calls.
  9. Public-safe always. No customer XML, tenant URLs, real IDs, or private names — see references/public-safety.md.
  10. Confirm before any cloud change. Upload, publish, deploy, run, pause, resume, cancel, retry, and migrate require explicit user consent; validate locally first.
  1. 每个
    uipath:*
    负载均归注册表所有。
    依据
    registry get
    模板创建;切勿根据文本手动编写
    uipath:
    XML。
  2. 切勿编造标识符。 连接ID、流程/队列/连接器键、应用ID、文件夹ID/路径需来自探索或用户提供。
  3. 结构化BPMN需手动创建,而非凭空发明。 遵循references/structural-bpmn.md中的规范/画布协议;如实告知用户注册表未提供的内容。 BPMN XML元素名称区分大小写:使用精确的小驼峰标签,例如
    <bpmn:startEvent>
    <bpmn:intermediateCatchEvent>
    <bpmn:scriptTask>
    <bpmn:endEvent>
    。不要使用帕斯卡命名法标签,如
    <bpmn:IntermediateCatchEvent>
  4. 创建前确认。 与用户确认所选的连接器/连接/流程以及流程结构(使用AskUserQuestion)。
  5. 流程图是必需的。 导入基于流程图驱动——每个节点需要一个
    BPMNShape
    ,每个流需要一个
    BPMNEdge
    ,否则无法在画布上显示。
  6. 节点类型是子元素,而非属性。 每个
    uipath:activity
    /
    uipath:event
    /
    uipath:mapping
    需在包装器内通过
    <uipath:type value="<Type>" version="v1" />
    声明其类型。切勿编写
    <uipath:activity type="…">
    ——画布无法识别该节点。 事件扩展类型(
    Intsvc.WaitForEvent
    Intsvc.EventTrigger
    Maestro.ReceiveMessageEvent
    Maestro.SendMessageEvent
    )必须使用
    <uipath:event>
    ,即使BPMN宿主是类似任务的元素,如
    <bpmn:receiveTask>
  7. XML注释中禁止使用
    --
    XML禁止在
    <!-- … -->
    内使用
    --
    (双连字符),因此切勿将CLI命令或标志(
    --output
    --connection-id
    --object-name
    )粘贴到注释中——这会导致文件无法解析。尽量减少注释。
  8. 解析CLI调用时使用
    --output json
  9. 始终保持公开安全。 不要包含客户XML、租户URL、真实ID或私有名称——详见references/public-safety.md
  10. 任何云端变更前需确认。 上传、发布、部署、运行、暂停、恢复、取消、重试和迁移都需要用户明确同意;先进行本地验证。

References

参考文档

TopicRead
Discover → template → bind → assemble loopreferences/registry-workflow.md
Structural BPMN, event matrix, boundary events, containers, multi-instance, diagram, validationreferences/structural-bpmn.md
Runtime expressions,
vars.
/
bindings.
/
iterator.
,
=js:
(Jint) syntax
references/expression-authoring.md
CLI conventions and the side-effect boundaryreferences/cli-conventions.md
Keeping content public-safereferences/public-safety.md
Package, upload, publish, run, or manage instancesreferences/operate/CAPABILITY.md
Diagnose a failed or misbehaving runreferences/diagnose/CAPABILITY.md
Project layout and generated package filesreferences/shared/project-layout.md
主题链接
探索→模板→绑定→组装流程references/registry-workflow.md
结构化BPMN、事件矩阵、边界事件、容器、多实例、流程图、验证references/structural-bpmn.md
运行时表达式、
vars.
/
bindings.
/
iterator.
=js:
(Jint)语法
references/expression-authoring.md
CLI约定和副作用边界references/cli-conventions.md
保持内容公开安全references/public-safety.md
打包、上传、发布、运行或管理实例references/operate/CAPABILITY.md
诊断失败或运行异常的流程references/diagnose/CAPABILITY.md
项目布局和生成的包文件references/shared/project-layout.md