@uipath/skills 1.199.0 → 1.200.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CODEOWNERS +14 -8
- package/README.md +18 -3
- package/assets/skill-status.json +9 -1
- package/assets/uip-catalog-snapshot.json +227 -21
- package/package.json +11 -2
- package/scripts/npm-package-lifecycle.mjs +46 -0
- package/skills/uipath-admin/SKILL.md +5 -1
- package/skills/uipath-admin/references/audit-commands.md +1 -1
- package/skills/uipath-admin/references/audit-workflow-guide.md +9 -0
- package/skills/uipath-agents/SKILL.md +2 -2
- package/skills/uipath-agents/references/lowcode/capabilities/context/index.md +7 -0
- package/skills/uipath-agents/references/lowcode/capabilities/integration-service/integration-service.md +5 -6
- package/skills/uipath-agents/references/lowcode/critical-rules/critical-rules.md +1 -1
- package/skills/uipath-agents/references/lowcode/evaluations/evaluation-sets.md +5 -0
- package/skills/uipath-agents/references/lowcode/project-lifecycle.md +3 -3
- package/skills/uipath-agents/references/lowcode/prompting/autonomous-agent-prompting-guide.md +3 -2
- package/skills/uipath-api-workflow/SKILL.md +2 -1
- package/skills/uipath-api-workflow/references/cli-reference.md +3 -3
- package/skills/uipath-coded-apps/SKILL.md +3 -2
- package/skills/uipath-coded-apps/assets/fixtures/governance-dashboard-starter-kit.tar.gz +0 -0
- package/skills/uipath-coded-apps/assets/templates/web-app-template.md +1 -1
- package/skills/uipath-coded-apps/references/create-web-app.md +60 -48
- package/skills/uipath-coded-apps/references/dashboards/CAPABILITY.md +2 -2
- package/skills/uipath-coded-apps/references/dashboards/plugins/build/impl.md +2 -2
- package/skills/uipath-coded-apps/references/dashboards/primitives/tier-resolution.md +16 -16
- package/skills/uipath-coded-apps/references/oauth-scopes.md +28 -272
- package/skills/uipath-coded-apps/references/sdk/action-center.md +26 -243
- package/skills/uipath-coded-apps/references/sdk/agents.md +20 -130
- package/skills/uipath-coded-apps/references/sdk/conversational-agent.md +52 -706
- package/skills/uipath-coded-apps/references/sdk/data-fabric.md +20 -237
- package/skills/uipath-coded-apps/references/sdk/feedback.md +4 -139
- package/skills/uipath-coded-apps/references/sdk/governance-traces.md +7 -55
- package/skills/uipath-coded-apps/references/sdk/governance.md +4 -44
- package/skills/uipath-coded-apps/references/sdk/imports.md +77 -35
- package/skills/uipath-coded-apps/references/sdk/maestro.md +29 -406
- package/skills/uipath-coded-apps/references/sdk/orchestrator.md +30 -324
- package/skills/uipath-coded-apps/references/sdk/pagination.md +9 -67
- package/skills/uipath-coded-apps/references/sdk/traces.md +8 -43
- package/skills/uipath-functions/SKILL.md +23 -23
- package/skills/uipath-governance/SKILL.md +5 -4
- package/skills/uipath-governance/references/cli-cheatsheet.md +2 -1
- package/skills/uipath-governance/references/compliance-pack/coverage/impl.md +143 -58
- package/skills/uipath-governance/references/compliance-pack/restore/impl.md +61 -0
- package/skills/uipath-human-in-the-loop/SKILL.md +4 -2
- package/skills/uipath-insights/SKILL.md +17 -18
- package/skills/uipath-ixp/SKILL.md +12 -7
- package/skills/uipath-ixp/references/cli-reference.md +71 -9
- package/skills/uipath-ixp/references/improve-prompts-guide.md +23 -9
- package/skills/uipath-ixp/references/label-documents-guide.md +33 -5
- package/skills/uipath-maestro-bpmn/SKILL.md +15 -14
- package/skills/uipath-maestro-bpmn/references/cli-conventions.md +15 -6
- package/skills/uipath-maestro-bpmn/references/structural-bpmn.md +18 -17
- package/skills/uipath-maestro-case/SKILL.md +46 -33
- package/skills/uipath-maestro-case/assets/templates/sdd-template.md +77 -37
- package/skills/uipath-maestro-case/assets/templates/sdd-viewer.html +0 -2
- package/skills/uipath-maestro-case/references/bindings-and-expressions.md +3 -1
- package/skills/uipath-maestro-case/references/bindings-v2-sync.md +2 -2
- package/skills/uipath-maestro-case/references/brownfield.md +15 -5
- package/skills/uipath-maestro-case/references/case-commands.md +19 -3
- package/skills/uipath-maestro-case/references/case-editing-operations.md +24 -21
- package/skills/uipath-maestro-case/references/case-schema.md +38 -16
- package/skills/uipath-maestro-case/references/connector-trigger-common.md +15 -8
- package/skills/uipath-maestro-case/references/evals/evals.json +35 -18
- package/skills/uipath-maestro-case/references/implementation.md +86 -71
- package/skills/uipath-maestro-case/references/phase-0-interview.md +92 -23
- package/skills/uipath-maestro-case/references/phased-execution.md +70 -55
- package/skills/uipath-maestro-case/references/placeholder-tasks.md +5 -5
- package/skills/uipath-maestro-case/references/planning.md +57 -9
- package/skills/uipath-maestro-case/references/plugins/case/impl-json.md +7 -5
- package/skills/uipath-maestro-case/references/plugins/case/planning.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/conditions/case-exit-conditions/impl-json.md +5 -5
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/impl-json.md +41 -5
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-entry-conditions/planning.md +27 -3
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/impl-json.md +6 -6
- package/skills/uipath-maestro-case/references/plugins/conditions/stage-exit-conditions/planning.md +3 -1
- package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/impl-json.md +20 -7
- package/skills/uipath-maestro-case/references/plugins/conditions/task-entry-conditions/planning.md +37 -4
- package/skills/uipath-maestro-case/references/plugins/sla/impl-json.md +24 -13
- package/skills/uipath-maestro-case/references/plugins/sla/planning.md +9 -3
- package/skills/uipath-maestro-case/references/plugins/stages/impl-json.md +4 -0
- package/skills/uipath-maestro-case/references/plugins/stages/planning.md +4 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/action/impl-json.md +3 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/action/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/agent/planning.md +4 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/api-workflow/planning.md +4 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/case-management/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/case-management/planning.md +4 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-activity/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/connector-trigger/planning.md +2 -0
- package/skills/uipath-maestro-case/references/plugins/tasks/create-inline-common.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/tasks/process/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/process/planning.md +6 -4
- package/skills/uipath-maestro-case/references/plugins/tasks/rpa/impl-json.md +3 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/rpa/planning.md +4 -2
- package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/impl-json.md +4 -3
- package/skills/uipath-maestro-case/references/plugins/tasks/wait-for-timer/planning.md +4 -0
- package/skills/uipath-maestro-case/references/plugins/triggers/event/impl-json.md +17 -14
- package/skills/uipath-maestro-case/references/plugins/triggers/event/planning.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/triggers/manual/impl-json.md +13 -10
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/impl-json.md +18 -16
- package/skills/uipath-maestro-case/references/plugins/triggers/timer/planning.md +2 -2
- package/skills/uipath-maestro-case/references/plugins/variables/bindings/impl-json.md +1 -1
- package/skills/uipath-maestro-case/references/plugins/variables/global-vars/impl-json.md +11 -9
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/impl-json.md +6 -2
- package/skills/uipath-maestro-case/references/plugins/variables/io-binding/planning.md +19 -1
- package/skills/uipath-maestro-case/references/registry-discovery.md +3 -3
- package/skills/uipath-maestro-case/references/sdd-generation-rules.md +155 -51
- package/skills/uipath-maestro-case/references/sla-response-shapes.md +74 -0
- package/skills/uipath-maestro-flow/SKILL.md +4 -3
- package/skills/uipath-maestro-flow/references/author/CAPABILITY.md +3 -0
- package/skills/uipath-maestro-flow/references/author/references/editing-operations-json.md +10 -17
- package/skills/uipath-maestro-flow/references/author/references/editing-operations.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/greenfield.md +8 -6
- package/skills/uipath-maestro-flow/references/author/references/planning-impl.md +1 -1
- package/skills/uipath-maestro-flow/references/author/references/plugins/agent/impl.md +4 -9
- package/skills/uipath-maestro-flow/references/author/references/plugins/agentic-process/impl.md +3 -7
- package/skills/uipath-maestro-flow/references/author/references/plugins/api-workflow/impl.md +5 -8
- package/skills/uipath-maestro-flow/references/author/references/plugins/connector/impl.md +11 -4
- package/skills/uipath-maestro-flow/references/author/references/plugins/flow/impl.md +3 -7
- package/skills/uipath-maestro-flow/references/author/references/plugins/inline-agent/impl.md +14 -17
- package/skills/uipath-maestro-flow/references/author/references/plugins/ixp/impl.md +60 -13
- package/skills/uipath-maestro-flow/references/author/references/plugins/queue/impl.md +2 -14
- package/skills/uipath-maestro-flow/references/author/references/plugins/rpa/impl.md +4 -9
- package/skills/uipath-maestro-flow/references/author/references/plugins/script/impl.md +3 -0
- package/skills/uipath-maestro-flow/references/author/references/plugins/subflow/impl.md +5 -9
- package/skills/uipath-maestro-flow/references/author/references/plugins/transform/impl.md +13 -0
- package/skills/uipath-maestro-flow/references/shared/action-nodes.md +2 -2
- package/skills/uipath-maestro-flow/references/shared/file-format.md +16 -12
- package/skills/uipath-maestro-flow/references/shared/variables-and-expressions.md +3 -3
- package/skills/uipath-planner/SKILL.md +1 -1
- package/skills/uipath-planner/references/non-pdd-lane-guide.md +1 -1
- package/skills/uipath-platform/SKILL.md +1 -1
- package/skills/uipath-platform/references/data-fabric/bulk-import.md +10 -27
- package/skills/uipath-platform/references/data-fabric/choice-sets.md +7 -64
- package/skills/uipath-platform/references/data-fabric/data-fabric.md +76 -267
- package/skills/uipath-platform/references/data-fabric/entity-schema.md +23 -99
- package/skills/uipath-platform/references/data-fabric/file-attachments.md +5 -28
- package/skills/uipath-platform/references/data-fabric/filter-platform-contract.md +2 -2
- package/skills/uipath-platform/references/data-fabric/records-query.md +11 -32
- package/skills/uipath-platform/references/integration-service/reference-resolution.md +6 -2
- package/skills/uipath-platform/references/licensing/consumables-report.md +18 -0
- package/skills/uipath-platform/references/licensing/licensing.md +1 -1
- package/skills/uipath-platform/references/orchestrator/run-jobs.md +9 -2
- package/skills/uipath-platform/references/orchestrator/setup-environment.md +9 -0
- package/skills/uipath-platform/references/traces/feedback.md +4 -1
- package/skills/uipath-process-mining/SKILL.md +97 -0
- package/skills/uipath-process-mining/references/app-types.md +66 -0
- package/skills/uipath-process-mining/references/data-model.md +130 -0
- package/skills/uipath-process-mining/references/lifecycle-and-rbac.md +67 -0
- package/skills/uipath-process-mining/references/model-editing.md +112 -0
- package/skills/uipath-process-mining/references/pre-flight.md +119 -0
- package/skills/uipath-process-mining/references/querying.md +66 -0
- package/skills/uipath-process-mining/references/transformations.md +80 -0
- package/skills/uipath-process-mining/references/uip-pm-cli.md +145 -0
- package/skills/uipath-review/SKILL.md +23 -18
- package/skills/uipath-review/references/agents/agent-grading-rubric.md +1 -1
- package/skills/uipath-review/references/agents/agent-review-checklist.md +0 -4
- package/skills/uipath-review/references/agents/agents-coded-rules.md +1 -10
- package/skills/uipath-review/references/agents/agents-lowcode-rules.md +3 -6
- package/skills/uipath-review/references/agents/guardrails/coded-guardrails-review.md +62 -14
- package/skills/uipath-review/references/agents/guardrails/guardrails-review.md +60 -4
- package/skills/uipath-review/references/review-workflow-guide.md +3 -2
- package/skills/uipath-review/references/rule-catalog-workflow.md +4 -5
- package/skills/uipath-rpa/.maintenance/pattern-card-maintenance.md +20 -0
- package/skills/uipath-rpa/SKILL.md +57 -55
- package/skills/uipath-rpa/agents/uipath-project-discovery-agent.md +75 -19
- package/skills/uipath-rpa/assets/codedworkflow-template.md +245 -11
- package/skills/uipath-rpa/references/cli-reference.md +229 -6
- package/skills/uipath-rpa/references/coded/codedworkflow-reference.md +158 -2
- package/skills/uipath-rpa/references/coded/integration-service-guide.md +6 -5
- package/skills/uipath-rpa/references/coded/operations-guide.md +273 -5
- package/skills/uipath-rpa/references/coded-vs-xaml-guide.md +3 -3
- package/skills/uipath-rpa/references/common-pattern-card.md +303 -0
- package/skills/uipath-rpa/references/data-manipulation-guide.md +18 -3
- package/skills/uipath-rpa/references/debugging.md +0 -2
- package/skills/uipath-rpa/references/environment-setup.md +309 -1
- package/skills/uipath-rpa/references/error-handling-guide.md +1 -1
- package/skills/uipath-rpa/references/execution-maps-guide.md +110 -0
- package/skills/uipath-rpa/references/is-connector-xaml-guide.md +58 -4
- package/skills/uipath-rpa/references/legacy/activity-docs/Excel.md +1 -1
- package/skills/uipath-rpa/references/legacy/activity-docs/_DU-PROCESS.md +0 -2
- package/skills/uipath-rpa/references/legacy/activity-docs/_INDEX.md +2 -2
- package/skills/uipath-rpa/references/legacy/activity-docs/_PATTERNS.md +1 -1
- package/skills/uipath-rpa/references/legacy/activity-docs/_REFRAMEWORK.md +2 -7
- package/skills/uipath-rpa/references/legacy/cli-reference.md +599 -0
- package/skills/uipath-rpa/references/legacy/error-handling-guide.md +2 -2
- package/skills/uipath-rpa/references/legacy/legacy-mode-guide.md +16 -16
- package/skills/uipath-rpa/references/legacy/project-organization-guide.md +2 -2
- package/skills/uipath-rpa/references/legacy/selector-guide.md +163 -1
- package/skills/uipath-rpa/references/legacy/testing-guide.md +246 -3
- package/skills/uipath-rpa/references/legacy/xaml-basics-and-rules.md +267 -2
- package/skills/uipath-rpa/references/library-authoring-guide.md +4 -3
- package/skills/uipath-rpa/references/testing-guide.md +2 -28
- package/skills/uipath-rpa/references/trigger-pattern-guide.md +1 -1
- package/skills/uipath-rpa/references/xaml/canvas-layout-guide.md +140 -33
- package/skills/uipath-rpa/references/xaml/common-pitfalls.md +57 -240
- package/skills/uipath-rpa/references/xaml/csharp-activity-binding-guide.md +42 -2
- package/skills/uipath-rpa/references/xaml/long-running-workflow-guide.md +1 -1
- package/skills/uipath-rpa/references/xaml/xaml-basics-and-rules.md +194 -228
- package/skills/uipath-solution/references/activate-and-manage.md +22 -0
- package/skills/uipath-solution/references/develop-solution.md +26 -2
- package/skills/uipath-solution/references/pack-and-deploy.md +43 -9
- package/skills/uipath-test/SKILL.md +4 -4
- package/skills/uipath-test/references/playwright-first-mile-guide.md +5 -4
- package/skills/uipath-test/references/publish-and-link-guide.md +2 -2
- package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/click-silent-no-op.md +5 -5
- package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/playbooks/queue-operation-failed.md +20 -4
- package/skills/uipath-troubleshoot/references/activity-packages/classic-activities/summary.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/csv-activities/playbooks/read-csv-file-not-found.md +12 -0
- package/skills/uipath-troubleshoot/references/activity-packages/mail-activities/playbooks/send-outlook-mail-failures.md +12 -1
- package/skills/uipath-troubleshoot/references/activity-packages/system-activities/playbooks/get-asset-activity-bug-silent-failure.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/terminal-activities/playbooks/terminal-session-connection-failed.md +5 -1
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/click-silent-no-op.md +5 -5
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/dependency-version-conflict.md +27 -6
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/napplicationcard-view-generation-failed.md +10 -0
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/playbooks/scope-container-wrong-page.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/ui-automation/summary.md +1 -1
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/overview.md +4 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-auth-401-403.md +44 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-connection-failure.md +2 -1
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-content-type-rejected.md +37 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/http-request-proxy-blocked.md +39 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/package-version-mismatch.md +42 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/playbooks/securestring-misuse-analyzer.md +41 -0
- package/skills/uipath-troubleshoot/references/activity-packages/web-activities/summary.md +5 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-null-reference.md +14 -1
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/connector-runtime-exception.md +2 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/is-activities-prerelease-not-found.md +39 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/playbooks/response-content-too-large.md +41 -0
- package/skills/uipath-troubleshoot/references/products/integration-service/summary.md +9 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/console-conflict-login-to-console.md +40 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/credential-store-unavailable.md +42 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/executor-start-transient-rerun.md +49 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-consecutive-system-exceptions.md +47 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-faulted-session-timeout.md +19 -19
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-output-too-large.md +47 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/job-stopped-generic-exit-code.md +55 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/known-issue-robot-defect.md +40 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/platform-incident-correlation.md +45 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/screen-capture-handle-invalid.md +43 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/serverless-license-quota.md +43 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/serverless-time-limit-exceeded.md +34 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/playbooks/workstation-in-use-machine-slots.md +40 -0
- package/skills/uipath-troubleshoot/references/products/orchestrator/summary.md +13 -1
- package/version-manifest.json +2 -2
- package/skills/uipath-maestro-bpmn/validator/README.md +0 -224
- package/skills/uipath-maestro-bpmn/validator/model.mjs +0 -419
- package/skills/uipath-maestro-bpmn/validator/package.json +0 -17
- package/skills/uipath-maestro-bpmn/validator/rules.mjs +0 -1403
- package/skills/uipath-maestro-bpmn/validator/samples/invalid-conditional-and-variable.bpmn +0 -25
- package/skills/uipath-maestro-bpmn/validator/samples/valid-baseline.bpmn +0 -52
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.0.bpmn +0 -157
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/A.2.1.bpmn +0 -333
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.1.0.bpmn +0 -598
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/B.2.0.bpmn +0 -1709
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.2.0.bpmn +0 -564
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.3.0.bpmn +0 -671
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.4.0.bpmn +0 -1045
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.5.0.bpmn +0 -1176
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.6.0.bpmn +0 -670
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/C.7.0.bpmn +0 -466
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Can_Parse_Complex_Process_With_Task_Gateway_BoundaryEvent_etc.bpmn +0 -74
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExclusiveGatewayDefaultFlow.bpmn +0 -32
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/ExternalAgentWorkflow.bpmn +0 -62
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Golden_Scenario.initial.bpmn +0 -361
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/InclusiveJoinRouteAwayBranch.bpmn +0 -62
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_AsyncExecution_And_Create_CorrectModel.bpmn +0 -74
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_ExtractionValidation_And_Create_CorrectModel.bpmn +0 -35
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_FileUpload_And_Create_CorrectModel.bpmn +0 -33
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_IXP_Extraction_JobAttachment_And_Create_CorrectModel.bpmn +0 -35
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/Parse_SubProcess_With_Multiple_Element_Types.bpmn +0 -76
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartEventWithOutputs.bpmn +0 -36
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/StartGatewayEnd.bpmn +0 -44
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all elements.bpmn +0 -516
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/all_sequence_flow_types.bpmn +0 -173
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/demo.bpmn +0 -181
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-collapsed.bpmn +0 -126
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-001-expanded.bpmn +0 -122
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/expected-findings/subprocess-example-003-collapsed_deeply-nested.bpmn +0 -438
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.1.0.bpmn +0 -87
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/A.3.0.bpmn +0 -165
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ApiWorkflow.bpmn +0 -39
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnNestedSubProcessTests.bpmn +0 -102
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnTimerBoundaryEvents.bpmn +0 -160
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithCatchAllErrorEventSubProcess.bpmn +0 -45
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/BpmnXmlWithSpecificErrorEventSubProcess.bpmn +0 -46
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/CaseManagementWithConstantIdentifier.bpmn +0 -218
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorBoundary.bpmn +0 -78
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ErrorPropagationInEventSubprocess.bpmn +0 -340
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/EventBasedGatewayFirstCatcherWins.bpmn +0 -56
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Example-EventBasedGateway.bpmn +0 -117
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewayConditional.bpmn +0 -45
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveGatewaySharedEndEvent.bpmn +0 -45
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ExclusiveWithParallelGateway.bpmn +0 -68
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/FourScriptTasks.bpmn +0 -84
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/HitlTaskOnly.bpmn +0 -55
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/InclusiveGatewayForkJoin.bpmn +0 -69
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_BPMN_Elements_And_Create_CorrectModel.bpmn +0 -20
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_HttpRequest_ServiceTask_And_Create_Correct_Model.bpmn +0 -34
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_MessageBoundaryEvent_And_Create_CorrectModel.bpmn +0 -87
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Script_Task_V2_And_Create_Correct_Model.bpmn +0 -31
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/Parse_Sets_Containers_Properly.bpmn +0 -129
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/ScriptWritesVariableThenGatewayBranches.bpmn +0 -59
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/boundaryevent.bpmn +0 -30
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/collapsed-subprocess.bpmn +0 -83
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/connectable-types.bpmn +0 -85
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/extensions-orchestrator-start-job.bpmn +0 -80
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/multiparticipantpool.bpmn +0 -77
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/nestedsubprocess.bpmn +0 -36
- package/skills/uipath-maestro-bpmn/validator/test/fixtures/known-good/simple.bpmn +0 -59
- package/skills/uipath-maestro-bpmn/validator/test/integration.test.mjs +0 -146
- package/skills/uipath-maestro-bpmn/validator/test/model-helpers.mjs +0 -42
- package/skills/uipath-maestro-bpmn/validator/test/ported-rule-tests.mjs +0 -983
- package/skills/uipath-maestro-bpmn/validator/test/run-tests.mjs +0 -530
- package/skills/uipath-maestro-bpmn/validator/uipath-moddle.v1.json +0 -715
- package/skills/uipath-maestro-bpmn/validator/validate-bpmn.mjs +0 -164
- package/skills/uipath-review/references/agents/agents-common-rules.md +0 -32
- package/skills/uipath-rpa/assets/before-after-hooks-template.md +0 -115
- package/skills/uipath-rpa/assets/helper-utility-template.md +0 -22
- package/skills/uipath-rpa/assets/testcase-template.md +0 -92
- package/skills/uipath-rpa/references/coded/coding-guidelines.md +0 -255
- package/skills/uipath-rpa/references/coded/inspect-package-guide.md +0 -80
- package/skills/uipath-rpa/references/coded/third-party-packages-guide.md +0 -67
- package/skills/uipath-rpa/references/connector-capabilities.md +0 -79
- package/skills/uipath-rpa/references/legacy/activity-docs/Testing.md +0 -95
- package/skills/uipath-rpa/references/legacy/activity-docs/UIAutomation.md +0 -159
- package/skills/uipath-rpa/references/legacy/common-pitfalls.md +0 -318
- package/skills/uipath-rpa/references/legacy/discovery-workflow.md +0 -147
- package/skills/uipath-rpa/references/legacy/environment-setup.md +0 -78
- package/skills/uipath-rpa/references/legacy/project-structure.md +0 -206
- package/skills/uipath-rpa/references/legacy/test-data-guide.md +0 -142
- package/skills/uipath-rpa/references/legacy/validation-and-fixing.md +0 -154
- package/skills/uipath-rpa/references/project-structure-guide.md +0 -168
- package/skills/uipath-rpa/references/project-structure.md +0 -135
- package/skills/uipath-rpa/references/publishing-guide.md +0 -80
- package/skills/uipath-rpa/references/validation-guide.md +0 -170
- package/skills/uipath-rpa/references/xaml/csharp-expression-pitfalls.md +0 -43
- package/skills/uipath-rpa/references/xaml/flowchart-guide.md +0 -113
- package/skills/uipath-rpa/references/xaml/workflow-guide.md +0 -258
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
# Designing Project Structure
|
|
2
|
-
|
|
3
|
-
When creating a project, **proactively design the right file structure** based on the task complexity. Do not put everything into a single root workflow file. Use your best judgment to split the project into multiple files following good software engineering practices.
|
|
4
|
-
|
|
5
|
-
For the coded vs XAML decision, see [coded-vs-xaml-guide.md](coded-vs-xaml-guide.md). For new projects, the default is XAML — examples below lead with XAML and note where the coded equivalent differs.
|
|
6
|
-
|
|
7
|
-
## Guidelines
|
|
8
|
-
|
|
9
|
-
- **Single simple task** (e.g. "read a CSV and log it") — one workflow file (`Main.xaml` for XAML projects, `Main.cs` for coded) is fine
|
|
10
|
-
- **Multi-step process** (e.g. "read invoices, validate, post to system") — split into multiple workflow files, each handling one step. The root workflow invokes each step
|
|
11
|
-
- **Shared data structures** — extract into a Coded Source File (e.g. `Models.cs`, `InvoiceData.cs`). XAML cannot define types, so a Coded Source File is the right home even in an otherwise XAML project
|
|
12
|
-
- **Repeated logic** — in XAML projects, extract into a reusable XAML workflow. In coded or hybrid projects, extract into a helper Coded Source File (e.g. `ValidationHelpers.cs`)
|
|
13
|
-
- **Test project** — one test case per scenario. Coded test projects optionally use `partial class CodedWorkflow : IBeforeAfterRun` in `CodedWorkflowHooks.cs` for shared setup. XAML test projects use Test Activities for shared setup
|
|
14
|
-
- **Complex domain logic** — isolate business rules so they can be unit-tested and reused (Coded Source File for typed logic, or a separate workflow for activity-driven logic)
|
|
15
|
-
|
|
16
|
-
## Designing for Reuse
|
|
17
|
-
|
|
18
|
-
Structure decisions that keep components extractable later.
|
|
19
|
-
|
|
20
|
-
### Single responsibility
|
|
21
|
-
|
|
22
|
-
One workflow file = one meaningful action, named for it (`ProcessInvoice.xaml`, `LoginToApplication.xaml`). Split a workflow when it exceeds ~20-30 activities.
|
|
23
|
-
|
|
24
|
-
### Standard folder shape
|
|
25
|
-
|
|
26
|
-
For multi-step processes, organize by layer:
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
Project/
|
|
30
|
-
├── Main.xaml # High-level orchestration only
|
|
31
|
-
├── Framework/ # Init, cleanup, error handling, app open/close
|
|
32
|
-
├── BusinessLogic/ # Process-specific rules and transactions
|
|
33
|
-
├── Utilities/ # Process-agnostic helpers (formatters, screenshots)
|
|
34
|
-
└── Data/ # Config files, templates
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Separate business logic from UI components
|
|
38
|
-
|
|
39
|
-
UI workflows interact with applications and carry zero business rules; business-logic workflows decide and never touch the UI. Make read and write distinct invocable components — `GetCustomerInfo.xaml` and `ChangeCustomerInfo.xaml`, not one `HandleCustomer.xaml`. When the target application's UI changes, only the UI workflows need fixing; when a business rule changes, the UI workflows are untouched. Process-agnostic UI components are also the ones worth promoting to a shared library later.
|
|
40
|
-
|
|
41
|
-
### Composition and argument naming
|
|
42
|
-
|
|
43
|
-
Compose via `Invoke Workflow File` (coded: `workflows.StepName()`). Process workflow arguments use directional prefixes — `in_InvoiceId`, `out_Result`, `io_Browser` — so data flow is visible at every invocation site. Exception: library public workflows drop the prefixes ([library-authoring-guide.md § The Public-Workflow Contract](library-authoring-guide.md)).
|
|
44
|
-
|
|
45
|
-
### Layout and scale-out
|
|
46
|
-
|
|
47
|
-
- Sequence vs Flowchart vs State Machine per workflow: Workflow Types table in SKILL.md § XAML Workflows Quick Reference
|
|
48
|
-
- High-volume transactional work: dispatcher/performer split via queues — [reframework-guide.md § Execution Mode: Queue-Driven](reframework-guide.md)
|
|
49
|
-
|
|
50
|
-
### Promotion ladder
|
|
51
|
-
|
|
52
|
-
Promote logic only as reuse materializes:
|
|
53
|
-
|
|
54
|
-
1. **Inline** — used once in one workflow
|
|
55
|
-
2. **Separate workflow file** — reused within the project
|
|
56
|
-
3. **Shared library** — reused across projects ([library-authoring-guide.md](library-authoring-guide.md))
|
|
57
|
-
4. **UI Library** — selectors shared across projects ([uia-starter-guide.md § Object Repository as a Published UI Library](uia-starter-guide.md))
|
|
58
|
-
|
|
59
|
-
## Example — Invoice Processing Project (XAML)
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
InvoiceProcessor/
|
|
63
|
-
├── project.json
|
|
64
|
-
├── Main.xaml # Root workflow: sequences each step via Invoke Workflow File
|
|
65
|
-
├── ReadInvoices.xaml # Step 1: reads invoices from Excel
|
|
66
|
-
├── ValidateInvoices.xaml # Step 2: validates data
|
|
67
|
-
├── PostToERP.xaml # Step 3: posts to external system
|
|
68
|
-
└── InvoiceData.cs # Coded source file: typed data model used across XAML steps
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
`Main.xaml` invokes each step via `Invoke Workflow File`, passing arguments In/Out. `InvoiceData.cs` is included even in this otherwise-XAML project because XAML cannot define types — typed DTOs eliminate `DataTable` column-name guessing.
|
|
72
|
-
|
|
73
|
-
### Coded equivalent
|
|
74
|
-
|
|
75
|
-
```
|
|
76
|
-
InvoiceProcessor/
|
|
77
|
-
├── project.json
|
|
78
|
-
├── Main.cs # Root workflow: calls each step via workflows.StepName()
|
|
79
|
-
├── ReadInvoices.cs # Step 1
|
|
80
|
-
├── ValidateInvoices.cs # Step 2
|
|
81
|
-
├── PostToERP.cs # Step 3
|
|
82
|
-
├── InvoiceData.cs # Coded source file: data model
|
|
83
|
-
└── ValidationHelpers.cs # Coded source file: validation utilities
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
`Main.cs` uses strongly-typed workflow invocation:
|
|
87
|
-
|
|
88
|
-
```csharp
|
|
89
|
-
[Workflow]
|
|
90
|
-
public void Execute(string inputFolder)
|
|
91
|
-
{
|
|
92
|
-
var readResult = workflows.ReadInvoices(folderPath: inputFolder);
|
|
93
|
-
Log($"Read {readResult.count} invoices");
|
|
94
|
-
|
|
95
|
-
var validateResult = workflows.ValidateInvoices(invoices: readResult.invoiceList);
|
|
96
|
-
Log($"Valid: {validateResult.validCount}, Invalid: {validateResult.invalidCount}");
|
|
97
|
-
|
|
98
|
-
var postResult = workflows.PostToERP(validInvoices: validateResult.validInvoices);
|
|
99
|
-
Log($"Posted {postResult.successCount} invoices to ERP");
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
## Example — Test Project
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
InvoiceTests/
|
|
107
|
-
├── project.json
|
|
108
|
-
├── CodedWorkflowHooks.cs # Coded test projects only: partial class CodedWorkflow with Before/After hooks
|
|
109
|
-
├── TestLoginFlow.cs # Test case: login scenario (hooks apply automatically via partial class merge)
|
|
110
|
-
├── TestInvoiceCreation.cs # Test case: create invoice scenario
|
|
111
|
-
├── TestInvoiceValidation.cs # Test case: validation rules
|
|
112
|
-
└── TestData.cs # Source file: shared test constants/fixtures
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
XAML test projects use `.xaml` test cases instead of `.cs` and Test Activities for shared setup; the rest of the layout is the same.
|
|
116
|
-
|
|
117
|
-
## Example — Hybrid Project (XAML Root + Coded Logic)
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
OrderProcessing/
|
|
121
|
-
├── project.json
|
|
122
|
-
├── Main.xaml # XAML root workflow: sequences steps, handles retries
|
|
123
|
-
├── ScrapeOrderPortal.xaml # XAML: UI automation with visual selector builder
|
|
124
|
-
├── SendConfirmationEmail.xaml # XAML: Mail activities (straightforward)
|
|
125
|
-
├── ProcessOrder.cs # Coded workflow: 12 validation rules + LINQ transforms
|
|
126
|
-
├── OrderModels.cs # Coded source file: Order, LineItem, ValidationResult DTOs
|
|
127
|
-
├── TransformHelpers.cs # Coded source file: date parsing, currency conversion
|
|
128
|
-
└── TestProcessOrder.cs # Coded test case: unit tests for ProcessOrder logic
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Why hybrid here
|
|
132
|
-
|
|
133
|
-
- **ScrapeOrderPortal.xaml** — UI automation benefits from XAML's visual selector builder and recording tools
|
|
134
|
-
- **ProcessOrder.cs** — Order validation has 12 business rules with nested conditions; coded C# is clearer and testable
|
|
135
|
-
- **OrderModels.cs** — Typed DTOs used by both XAML (via typed arguments) and coded workflows, eliminating DataTable column-name guessing
|
|
136
|
-
- **SendConfirmationEmail.xaml** — Simple Mail activity, no logic — XAML is the simpler choice
|
|
137
|
-
- **Main.xaml** — Orchestration is linear (scrape → process → email); XAML Sequence is readable
|
|
138
|
-
|
|
139
|
-
### Data flow
|
|
140
|
-
|
|
141
|
-
1. `Main.xaml` invokes `ScrapeOrderPortal.xaml` → returns `DataTable` via Out argument
|
|
142
|
-
2. `Main.xaml` invokes `ProcessOrder.cs` via Invoke Workflow File → passes raw data, returns validated `Order` objects
|
|
143
|
-
3. `Main.xaml` invokes `SendConfirmationEmail.xaml` → passes validated order data
|
|
144
|
-
|
|
145
|
-
## Project Structure Decision Tree
|
|
146
|
-
|
|
147
|
-
**First — coded or XAML?** For new projects, default to XAML unless the user explicitly said "coded" or named a coded-specific trigger (custom data models, complex algorithms, unit tests on business logic). See [coded-vs-xaml-guide.md](coded-vs-xaml-guide.md). The root workflow is `Main.xaml` for XAML projects and `Main.cs` for coded projects — substitute accordingly below.
|
|
148
|
-
|
|
149
|
-
**Is it a single, simple task?**
|
|
150
|
-
- ✅ Yes → Single root workflow
|
|
151
|
-
|
|
152
|
-
**Is it a multi-step process?**
|
|
153
|
-
- ✅ Yes → A root workflow that invokes each step + separate workflow files for each step
|
|
154
|
-
|
|
155
|
-
**Does it involve repeated data structures?**
|
|
156
|
-
- ✅ Yes → Extract to Coded Source File (e.g. `Models.cs`, `InvoiceData.cs`). Required even in XAML projects — XAML cannot define types
|
|
157
|
-
|
|
158
|
-
**Is there shared logic across workflows?**
|
|
159
|
-
- ✅ Yes → Extract to a reusable XAML workflow (XAML projects) or a helper Coded Source File (coded or hybrid projects)
|
|
160
|
-
|
|
161
|
-
**Is it a test project?**
|
|
162
|
-
- ✅ Yes → One test case file per scenario. Coded test projects optionally use `CodedWorkflowHooks.cs` (partial class CodedWorkflow) for shared setup/teardown
|
|
163
|
-
|
|
164
|
-
**Does it have complex business rules?**
|
|
165
|
-
- ✅ Yes → Isolate in Coded Source Files for reusability and testability (extract from XAML via `Invoke Workflow File` if needed)
|
|
166
|
-
|
|
167
|
-
**Does it need both UI automation AND complex non-UI logic?**
|
|
168
|
-
- ✅ Yes → Hybrid: XAML for UI automation + orchestration, Coded for business logic + data models. See [coded-vs-xaml-guide.md](coded-vs-xaml-guide.md)
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
# UiPath Project Structure
|
|
2
|
-
|
|
3
|
-
## Directory Layout
|
|
4
|
-
|
|
5
|
-
```
|
|
6
|
-
MyProject/
|
|
7
|
-
├── project.json # Project manifest (name, dependencies, settings)
|
|
8
|
-
├── Main.xaml # Default entry point (XAML mode) ─┐ typically one
|
|
9
|
-
├── Main.cs # Default entry point (coded mode) ─┘ or the other
|
|
10
|
-
├── *.xaml # Additional XAML workflow files
|
|
11
|
-
├── *.cs # Coded workflows, test cases, and source files
|
|
12
|
-
├── *.cs.json # Auto-generated by Studio — do not create manually
|
|
13
|
-
├── .codedworkflows/ # Auto-generated coded workflow support files (ConnectionsFactory.cs, ConnectionsManager.cs, ISConnections.cs, etc.)
|
|
14
|
-
├── .entities/ # Data Fabric entity manifest — EntitiesStore.json. Committed; source of truth for which entities are bound to the project. Managed via uip rpa data-fabric-entities install.
|
|
15
|
-
├── .local/ # Local cache (package restore, compiled artifacts)
|
|
16
|
-
│ ├── install/ # Restored NuGet packages
|
|
17
|
-
│ ├── docs/ # Auto-generated activity documentation
|
|
18
|
-
│ │ └── packages/ # Per-package doc folders
|
|
19
|
-
│ ├── .codedworkflows/ # Auto-generated (ObjectRepository.cs, CodedWorkflow.cs, WorkflowRunnerService.cs)
|
|
20
|
-
│ └── .entities/ # Compiled Data Fabric entity assemblies (DataService.<Namespace>.dll) per install signature. Regenerated on demand — do not edit.
|
|
21
|
-
├── .objects/ # Object Repository metadata (UI element selectors)
|
|
22
|
-
├── .project/ # Project metadata
|
|
23
|
-
│ ├── JitCustomTypesSchema.json # JIT-compiled custom type definitions
|
|
24
|
-
│ └── PackageBindingsMetadata.json
|
|
25
|
-
├── .screenshots/ # Activity screenshots (auto-generated)
|
|
26
|
-
├── .settings/ # Project-level settings
|
|
27
|
-
├── .autopilot/ # Autopilot service specific files
|
|
28
|
-
│ └── skills/ # Project-specific Autopilot skills
|
|
29
|
-
└── .storage/ # Activity resource storage (bucket-organized)
|
|
30
|
-
├── .design/ # Design-time only resources (NOT packed into published package)
|
|
31
|
-
│ └── <bucket>/ # Named bucket to prevent conflicts
|
|
32
|
-
└── .runtime/ # Runtime resources (packed into published NuPkg)
|
|
33
|
-
└── <bucket>/ # Named bucket with resource files
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Coded-Only Elements
|
|
37
|
-
|
|
38
|
-
- `.cs` files with `[Workflow]`/`[TestCase]` attributes — executable coded automations
|
|
39
|
-
- `.cs.json` metadata files — auto-generated by Studio for each coded workflow/test case (do not create manually)
|
|
40
|
-
- `.codedworkflows/` — auto-generated support files (only when project has `.cs` files)
|
|
41
|
-
- `.local/.codedworkflows/` — auto-generated `ObjectRepository.cs`, `CodedWorkflow.cs`, etc.
|
|
42
|
-
- `.variations/` — data-driven test parameters (Tests projects only)
|
|
43
|
-
|
|
44
|
-
### XAML-Only Elements
|
|
45
|
-
|
|
46
|
-
- `.xaml` workflow files — visual workflow definitions
|
|
47
|
-
- Expression language configured in `project.json` (`VisualBasic` or `CSharp`)
|
|
48
|
-
|
|
49
|
-
## project.json Key Fields
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"name": "MyProject",
|
|
54
|
-
"description": "",
|
|
55
|
-
"main": "Main.xaml",
|
|
56
|
-
"dependencies": {
|
|
57
|
-
"UiPath.System.Activities": "[24.12.1]"
|
|
58
|
-
},
|
|
59
|
-
"schemaVersion": "4.0",
|
|
60
|
-
"studioVersion": "25.0.0.0",
|
|
61
|
-
"projectVersion": "1.0.0",
|
|
62
|
-
"runtimeOptions": {
|
|
63
|
-
"autoDispose": false,
|
|
64
|
-
"netFramework": { "targetFramework": "net6.0-windows" },
|
|
65
|
-
"isPausable": true,
|
|
66
|
-
"isAttended": false,
|
|
67
|
-
"requiresUserInteraction": false
|
|
68
|
-
},
|
|
69
|
-
"designOptions": {
|
|
70
|
-
"projectProfile": "Developement",
|
|
71
|
-
"outputType": "Process",
|
|
72
|
-
"libraryOptions": {
|
|
73
|
-
"includeOriginalXaml": false,
|
|
74
|
-
"privateWorkflows": []
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
"expressionLanguage": "VisualBasic",
|
|
78
|
-
"entryPoints": [
|
|
79
|
-
{
|
|
80
|
-
"filePath": "Main.xaml",
|
|
81
|
-
"uniqueId": "2f510550-3882-4340-9239-53a24d0717f6",
|
|
82
|
-
"input": [],
|
|
83
|
-
"output": []
|
|
84
|
-
}
|
|
85
|
-
],
|
|
86
|
-
"targetFramework": "Windows"
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### Important Fields
|
|
91
|
-
|
|
92
|
-
| Field | Description |
|
|
93
|
-
|-------|-------------|
|
|
94
|
-
| `name` | Project name (used in package output) |
|
|
95
|
-
| `main` | Entry point workflow file (relative path) |
|
|
96
|
-
| `dependencies` | NuGet package dependencies with version constraints |
|
|
97
|
-
| `expressionLanguage` | `CSharp` or `VisualBasic` — determines expression syntax in XAML. Default `VisualBasic`. Immutable after creation (decide at init — SKILL.md Rule 2a) |
|
|
98
|
-
| `designOptions.outputType` | `Process`, `Library`, or `Tests` |
|
|
99
|
-
| `targetFramework` | `Windows` (.NET 6 Windows-only), `Portable` (Cross-platform .NET 6+), or `Legacy` (Windows - Legacy, .NET Framework 4.6.1). Set explicitly at init (Rule 2a); omitting `--target-framework` yields `Windows` |
|
|
100
|
-
| `entryPoints` | Per-workflow metadata: filePath, uniqueId, input/output definitions (**Process projects only** — Tests and Library projects use empty `[]`) |
|
|
101
|
-
|
|
102
|
-
## Rules
|
|
103
|
-
|
|
104
|
-
1. **Use CLI for dependencies**: Always use `uip rpa packages install` to add/update dependencies. Do not manually edit `dependencies` in `project.json`.
|
|
105
|
-
2. **Do not edit `.local/` or `.objects/`**: These are cache directories managed by the build system.
|
|
106
|
-
3. **`main` entry point**: The default entrypoint that gets run if not specified otherwise. `entryPoints` array is only populated for **Process** projects — Tests and Library projects leave it empty (`[]`).
|
|
107
|
-
4. **`--project-dir` awareness**: All `uip rpa` commands default to the current working directory. If the CWD is not the project root, pass `--project-dir "{projectRoot}"` explicitly.
|
|
108
|
-
5. **Creating new projects**: Use `uip rpa init`. See [environment-setup.md](environment-setup.md).
|
|
109
|
-
|
|
110
|
-
## Common Activity Packages
|
|
111
|
-
|
|
112
|
-
| Package ID | Description | Key Activities |
|
|
113
|
-
|------------|-------------|----------------|
|
|
114
|
-
| `UiPath.System.Activities` | Core system activities | Assign, If, ForEach, While, Invoke Workflow, Log Message, Delay |
|
|
115
|
-
| `UiPath.UIAutomation.Activities` | UI interaction | Click, Type Into, Get Text, Open Browser, Use Application/Browser |
|
|
116
|
-
| `UiPath.Excel.Activities` | Excel automation | Read Range, Write Range, Read Cell, Write Cell, Format Range |
|
|
117
|
-
| `UiPath.Mail.Activities` | Email operations | Send Mail, Get Mail, Save Attachments, Forward Mail |
|
|
118
|
-
| `UiPath.Database.Activities` | Database operations | Execute Query, Execute Non Query, Connect, Disconnect |
|
|
119
|
-
| `UiPath.WebAPI.Activities` | HTTP/REST calls | HTTP Request, Deserialize JSON, Serialize JSON |
|
|
120
|
-
| `UiPath.PDF.Activities` | PDF processing | Read PDF Text, Read PDF with OCR, Extract Data From PDF |
|
|
121
|
-
| `UiPath.Word.Activities` | Word automation | Read Text, Replace Text, Insert Image, Export to PDF |
|
|
122
|
-
| `UiPath.Testing.Activities` | Testing and assertions | Verify Expression, Verify Are Equal, Generate Test Data |
|
|
123
|
-
| `UiPath.Presentations.Activities` | PowerPoint automation | Add Slide, Replace Text, Insert Image |
|
|
124
|
-
| `UiPath.IntegrationService.Activities` | Integration Service connector runtime | Generic connector activities for Salesforce, ServiceNow, HubSpot, etc. |
|
|
125
|
-
| `UiPath.Cryptography.Activities` | Encryption/hashing | Encrypt Text, Decrypt Text, Hash File |
|
|
126
|
-
|
|
127
|
-
## Version Constraints
|
|
128
|
-
|
|
129
|
-
Dependencies use NuGet version constraint syntax:
|
|
130
|
-
|
|
131
|
-
| Syntax | Meaning |
|
|
132
|
-
|--------|---------|
|
|
133
|
-
| `[1.0.0]` | Exact version 1.0.0 |
|
|
134
|
-
| `[1.0.0, )` | Version 1.0.0 or higher |
|
|
135
|
-
| `[1.0.0, 2.0.0)` | Between 1.0.0 (inclusive) and 2.0.0 (exclusive) |
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# Publishing a UiPath Project
|
|
2
|
-
|
|
3
|
-
How to take a built `.nupkg` from `uip rpa pack` and get it onto Orchestrator or Studio Web. Covers the standalone-project paths only — solution publish (`.uipx` solutions and `solution publish` deploy lifecycle) lives in [/uipath:uipath-solution](../../uipath-solution/SKILL.md).
|
|
4
|
-
|
|
5
|
-
## Pick a path
|
|
6
|
-
|
|
7
|
-
| Goal | Path | Reference |
|
|
8
|
-
|---|---|---|
|
|
9
|
-
| Run the project as an Orchestrator process / link as a Test Manager automation | **Pack → Orchestrator package upload** | This file § Pack → Upload |
|
|
10
|
-
| Edit / visualize in Studio Web | **Solution upload** | [uipath-solution](../../uipath-solution/SKILL.md) (solution upload) |
|
|
11
|
-
| Deploy a packed solution (`.uipx`) to Orchestrator with the deployment lifecycle | **Solution publish** | [uipath-solution](../../uipath-solution/references/pack-and-deploy.md) |
|
|
12
|
-
|
|
13
|
-
This file documents the first row only — the legacy Orchestrator package feed flow that `uip tm testcases link-automation` requires.
|
|
14
|
-
|
|
15
|
-
## Pack → Upload (Orchestrator process flow)
|
|
16
|
-
|
|
17
|
-
The end-to-end is two CLI calls.
|
|
18
|
-
|
|
19
|
-
### Step 1 — Pack the project
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
uip rpa pack "<PROJECT_DIR>" "<OUTPUT_DIR>" --output json
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
| Argument | Position | Notes |
|
|
26
|
-
|---|---|---|
|
|
27
|
-
| `<PROJECT_DIR>` | Positional 1 | Path to the project (folder containing `project.json`). |
|
|
28
|
-
| `<OUTPUT_DIR>` | Positional 2 | Directory the `.nupkg` is written to. Must exist. |
|
|
29
|
-
|
|
30
|
-
Common optional flags (run `uip rpa pack --help` for the full set):
|
|
31
|
-
- `--package-version <SEMVER>` — pin the version. Defaults to the project version.
|
|
32
|
-
- `--skip-analyze` — skip the workflow-analyzer pass. Use only for known-clean builds.
|
|
33
|
-
- `--governance-file-path <PATH>` — apply a governance policy during pack.
|
|
34
|
-
|
|
35
|
-
Output (JSON) emits `OutputPath` — the full `.nupkg` path. Capture it for Step 2.
|
|
36
|
-
|
|
37
|
-
> **`uip rpa pack` does NOT accept `--project-path` or `--project-dir`.** Both arguments are positional. The `--project-dir` flag exists on most other `uip rpa` subcommands but not here.
|
|
38
|
-
|
|
39
|
-
### Step 2 — Upload to Orchestrator
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
uip or packages upload "<NUPKG_PATH>" --output json
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
| Argument / Flag | Required | Notes |
|
|
46
|
-
|---|---|---|
|
|
47
|
-
| `<NUPKG_PATH>` | Yes (positional) | Path to the `.nupkg` produced by `pack`. |
|
|
48
|
-
| `--feed-id <UUID>` | No | Target a non-default feed. Defaults to the tenant feed. |
|
|
49
|
-
| `--folder-path <PATH>` / `--folder-key <UUID>` | No | Target a specific folder feed. |
|
|
50
|
-
|
|
51
|
-
Output JSON includes the package `Id` (the package name Orchestrator stores) and `Version`. Hold on to the `Id` — `uip tm testcases link-automation` takes it as `--package-name`; `uip or processes create` takes it as `--package-key` (with `--package-version` separately).
|
|
52
|
-
|
|
53
|
-
> **There is no `uip or packages publish` or `uip rpa publish`.** Agents that try those names get "unknown command". Pack writes a file; upload pushes that file. Two commands, two domains (`rpa`, `or`).
|
|
54
|
-
|
|
55
|
-
## Discovery cheatsheet
|
|
56
|
-
|
|
57
|
-
Folder key (UUID — required by `processes create`, `link-automation`, etc.):
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
uip or folders list --output json
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
The returned `Key` is the UUID; the `FullyQualifiedName` is the human path. Either is accepted by `--folder-path` / `--folder-key` — most other CLI calls require the UUID.
|
|
64
|
-
|
|
65
|
-
After upload, list the new package version:
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
uip or packages list --output json
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## End-to-end: link a coded test case to Test Manager
|
|
72
|
-
|
|
73
|
-
For the full Pack → Upload → Link → Execute pipeline targeted at Test Manager (folder-key discovery, picking the right `--test-name`, etc.), see [/uipath:uipath-test § publish-and-link-guide.md](../../uipath-test/references/publish-and-link-guide.md).
|
|
74
|
-
|
|
75
|
-
## Common pitfalls
|
|
76
|
-
|
|
77
|
-
- **`uip solution publish` expects a packed `.zip`, not a project directory.** Solutions: run `uip solution pack` first, then `uip solution publish "<ZIP_PATH>"`. Single projects: use `uip or packages upload` instead.
|
|
78
|
-
- **Confusing `solution upload` and `solution publish`.** `upload` pushes to Studio Web (browser editing). `publish` pushes a packed solution `.zip` to the Orchestrator solution feed for `solution deploy`. They are NOT interchangeable. See [uipath-solution](../../uipath-solution/SKILL.md) for the decision tree.
|
|
79
|
-
- **Re-uploading the same version.** Orchestrator rejects duplicate `<id>:<version>` uploads. Bump `--package-version` (or `project.json` `projectVersion`) before re-packing.
|
|
80
|
-
- **`pack` succeeds but `analyze` ran with errors.** A successful pack with errors in the analyzer log usually means warnings only. Re-run `uip rpa analyze "<PROJECT_DIR>"` (project dir is positional) if you need a clean failure / pass signal.
|
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
# Validation & Fixing Guide
|
|
2
|
-
|
|
3
|
-
Fix-one-thing discipline, the validation iteration loop, smoke test procedure, and RPA-specific fix procedures.
|
|
4
|
-
|
|
5
|
-
## On demand: List Analyzer Rules
|
|
6
|
-
|
|
7
|
-
`validate` and `build` already enforce the project's enabled Workflow Analyzer rules — violations come back with the rule ID, severity, and recommendation, so the normal authoring loop needs **no** rule pre-fetch. Do NOT run `analyzer-rules list` as an authoring prerequisite: the unscoped call enumerates every rule across every package and can take a minute or more, and most of its output never affects the code you write.
|
|
8
|
-
|
|
9
|
-
Run it **only on demand**:
|
|
10
|
-
|
|
11
|
-
1. The **user asks** about the project's best-practice / analyzer rules ("what rules does this project enforce?", "list the analyzer rules", "why is UI-REL-001 firing?").
|
|
12
|
-
2. **Repeated violations of the same rule family** across `validate`/`build` iterations — reading the full rule set (scoped, see below) lets you author against it instead of fixing violations one by one.
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
uip rpa analyzer-rules list --project-dir "<PROJECT_DIR>" --scope "<Activity|Workflow|Coded Workflow|Project>" --output json
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
Prefer a `--scope` matching what you're authoring — scoped calls return in seconds; unscoped can take a minute+. Apply `error` and `warning` rules; `info` rules are advisory. If you do consult the rules and then add or update a NuGet package, the package-shipped (`MA-*`) rules may have changed with the dependency set.
|
|
19
|
-
|
|
20
|
-
For coded (`.cs`) workflow files, the four built-in `Coded Workflow`-scope rules (ST-NMG-017, ST-DBP-010, ST-REL-001, ST-USG-017) are all Error severity and enforced by `analyze`, `build`, and `pack` — triggers and fixes: [coded/coding-guidelines.md § Coded Workflow Analyzer Rules](coded/coding-guidelines.md#coded-workflow-analyzer-rules).
|
|
21
|
-
|
|
22
|
-
Rule prefixes and full schema: [cli-reference.md § analyzer-rules list](cli-reference.md).
|
|
23
|
-
|
|
24
|
-
## Fix One Thing at a Time
|
|
25
|
-
|
|
26
|
-
When an error occurs, identify the root cause, fix **only** that one thing, and re-run.
|
|
27
|
-
|
|
28
|
-
- Never bundle a speculative improvement with the actual fix.
|
|
29
|
-
- Changing two things at once makes it impossible to verify which change resolved the issue or whether the extra change introduced a new one.
|
|
30
|
-
- One fix per iteration, re-run, verify.
|
|
31
|
-
|
|
32
|
-
## Validation Iteration Loop
|
|
33
|
-
|
|
34
|
-
Phase 1 — per-file `validate` after every edit. Phase 2 — one project-level `build` per edit session.
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
PHASE 1 — validate-clean (per-file):
|
|
38
|
-
FOR each file created or edited in this session:
|
|
39
|
-
REPEAT:
|
|
40
|
-
1. uip rpa validate --file-path "<FILE>" --project-dir "<PROJECT_DIR>" --output json
|
|
41
|
-
2. IF validate has errors -> fix one root cause, GOTO 1
|
|
42
|
-
3. EXIT inner loop when validate is clean
|
|
43
|
-
|
|
44
|
-
PHASE 2 — build-clean (per-project, once per edit session):
|
|
45
|
-
REPEAT:
|
|
46
|
-
1. uip rpa build "<PROJECT_DIR>" --log-level Warn --output json
|
|
47
|
-
2. IF build has errors -> identify offending file from build output
|
|
48
|
-
a. uip rpa validate --file-path "<OFFENDER>" --project-dir "<PROJECT_DIR>" --output json # cheap targeted re-check
|
|
49
|
-
b. fix one root cause, GOTO 1
|
|
50
|
-
3. EXIT to Smoke Test
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**Why both phases.** `validate` is static analysis: catches structural XAML, missing references, analyzer rules, schema violations. `build` is the compiler: catches **unknown member names** (e.g. `NGetText.Value` when the output member is `TextString` (or legacy `Text`)), **invalid enum values** (e.g. `Operator="StartsWith"` when the enum has no such member), **member resolution / CacheMetadata failures**, and attribute-form C# expression JIT failures. `validate` returns "no diagnostics found" for these; `build` flags them at compile time. Per-file `validate` plus one end-of-session `build` covers both error classes — trusting only `validate` ships broken workflows.
|
|
54
|
-
|
|
55
|
-
**Target the specific file:** `validate --file-path` validates only the file you changed (faster than whole-project). `build` is project-scoped (no `--file-path`); when it errors, the output names the offending file — re-run `validate --file-path` on it as part of Phase 2's fix loop.
|
|
56
|
-
|
|
57
|
-
**5-attempt cap per loop** — 5 attempts for each file's Phase 1 `validate` loop; a separate 5 attempts for the Phase 2 `build` loop. After a loop exhausts its budget, present the remaining errors to the user. They may require domain knowledge or environment-specific fixes. Each loop's counter resets when you start a new loop (e.g., new file, new user prompt, or resuming after user input).
|
|
58
|
-
|
|
59
|
-
### Rules
|
|
60
|
-
|
|
61
|
-
1. DO NOT stop until all errors are resolved (or cannot be resolved automatically).
|
|
62
|
-
2. DO NOT obsess on one error -- if it cannot be resolved, skip it, continue, and defer to the user through an informative, step-by-step message at the end.
|
|
63
|
-
3. DO NOT skip validation steps.
|
|
64
|
-
4. DO NOT assume edits worked without checking.
|
|
65
|
-
5. DO NOT bundle multiple fixes in one iteration. Fix the root cause, re-run, verify. Never add a speculative change alongside the actual fix -- changing two things at once makes it impossible to tell which one resolved the issue or whether the extra change introduced a new problem.
|
|
66
|
-
|
|
67
|
-
See [cli-reference.md](cli-reference.md) for full `validate` and `run` command documentation.
|
|
68
|
-
|
|
69
|
-
## Project Build Verification (Required Before Returning a Project)
|
|
70
|
-
|
|
71
|
-
Every project returned to the user must compile. Phase 2 of the iteration loop above is this gate — when Phase 2 exits clean, the gate is satisfied. The standalone command below also satisfies it (for example, when re-verifying after a small fix outside an iteration loop):
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
uip rpa build "<PROJECT_DIR>" --log-level Warn --output json
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
`validate` is static analysis and misses compile-time failures: unknown member names, invalid enum values, member resolution / CacheMetadata failures, and JIT failures like `JIT compilation is disabled for non-Legacy projects` — see [xaml/csharp-expression-pitfalls.md](xaml/csharp-expression-pitfalls.md). If `build` fails, apply the Phase 2 fix loop (fix one root cause, re-run, cap at 5 attempts). A successful `run` smoke test substitutes for `build` — `run` compiles internally. Prefer the `run --skip-build` form when `build` has just passed (see Smoke Test below).
|
|
78
|
-
|
|
79
|
-
### Errors `build` catches that `validate` misses
|
|
80
|
-
|
|
81
|
-
| Error class | Example | Why `validate` misses it |
|
|
82
|
-
|-------------|---------|----------------------------|
|
|
83
|
-
| Unknown member name | `<uix:NGetText Value="[x]" />` (correct: `TextString`) | `validate` does not resolve property names against activity assemblies |
|
|
84
|
-
| Invalid enum value | `Operator="StartsWith"` on `VerifyExpressionWithOperator` (enum has no such member) | Enum membership is checked at CacheMetadata / compile time, not static parse |
|
|
85
|
-
| CacheMetadata / member resolution | Required-extension misses, type-mismatch on `InArgument<T>` | Surfaces only when the runtime instantiates the activity |
|
|
86
|
-
| Attribute-form C# expressions | `Value="x + y"` in `expressionLanguage: CSharp` projects | JIT compiler needs the expression in element form — see [xaml/csharp-expression-pitfalls.md](xaml/csharp-expression-pitfalls.md) |
|
|
87
|
-
|
|
88
|
-
When you see "no diagnostics found" from `validate`, you have not validated the file. Run `build` next.
|
|
89
|
-
|
|
90
|
-
## Smoke Test
|
|
91
|
-
|
|
92
|
-
`validate` (static analysis) and `run` (runtime compilation) use different validation paths. Some errors -- such as invalid enum values on activity properties -- pass static validation but fail at runtime. Always treat the smoke test as a critical validation step, not just an optional extra.
|
|
93
|
-
|
|
94
|
-
After reaching 0 validation errors AND a clean project-level build (Phase 2), run the workflow to catch runtime errors (wrong credentials, missing files, logic bugs) that static validation cannot detect. Use `--skip-build` because the project has just been built clean — default `run` re-validates and re-builds internally, repeating ~10s of compilation:
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
# Run with default arguments (post-build, skip the redundant rebuild):
|
|
98
|
-
uip rpa run --file-path "<FILE>" --skip-build --output json
|
|
99
|
-
# Run with input arguments (repeat --input-arguments per key; = string, := raw JSON):
|
|
100
|
-
uip rpa run --file-path "<FILE>" --skip-build --input-arguments key=value --output json
|
|
101
|
-
# Run with verbose logging for debugging:
|
|
102
|
-
uip rpa run --file-path "<FILE>" --skip-build --log-level Verbose --output json
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
Use bare `run` (without `--skip-build`) whenever the build artifact may be stale: **(a)** no recent project-level `build` has been performed, OR **(b)** any file has been edited between the last successful `build` and this `run`. `--skip-build` executes the existing compiled artifact, so any post-build edit is silently ignored until a fresh `build` runs.
|
|
106
|
-
|
|
107
|
-
**When to run:**
|
|
108
|
-
1. Workflow has no compilation errors but you want to verify runtime behavior
|
|
109
|
-
2. Workflow involves file I/O, API calls, or data transformations that could fail at runtime
|
|
110
|
-
3. User specifically asks to test the workflow
|
|
111
|
-
|
|
112
|
-
**When NOT to run:**
|
|
113
|
-
1. Workflow has side effects (sends emails, modifies databases, calls external APIs) -- warn the user first
|
|
114
|
-
2. Workflow requires interactive input (UI automation, attended triggers)
|
|
115
|
-
3. Compilation errors still exist (fix those first)
|
|
116
|
-
|
|
117
|
-
**If runtime errors occur:** Analyze the output, apply the fix-one-thing rule, and loop back to fix. Stop after 2 failed runtime retry attempts and present the user with error details, a suggested fix, and options:
|
|
118
|
-
|
|
119
|
-
```
|
|
120
|
-
Workflow execution failed after 2 retry attempts.
|
|
121
|
-
|
|
122
|
-
**Error Details:** <specific error message and location>
|
|
123
|
-
**Suggested Fix:** <analysis of what went wrong>
|
|
124
|
-
**Next Steps:** Would you like me to:
|
|
125
|
-
A) <recommended fix approach>
|
|
126
|
-
B) <alternative approach>
|
|
127
|
-
C) <user-driven approach>
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## RPA-Specific Fix Procedures
|
|
133
|
-
|
|
134
|
-
### Package Error Resolution
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
Read: file_path="{projectRoot}/project.json" -> check current dependencies
|
|
138
|
-
|
|
139
|
-
Bash: uip rpa packages install --packages id=UiPath.Excel.Activities```
|
|
140
|
-
|
|
141
|
-
Omit `version` to automatically resolve the latest compatible version (preferred — gets newest docs and features). Only pin a specific version when you have a reason to (e.g., known compatibility constraint).
|
|
142
|
-
|
|
143
|
-
**If `packages install` fails:**
|
|
144
|
-
- **Package not found**: Verify the exact package ID — check spelling, use `uip rpa activities find` to discover the correct package name from an activity's assembly
|
|
145
|
-
- **Network/feed error**: The user may need to check their NuGet feed configuration in Studio settings
|
|
146
|
-
|
|
147
|
-
### Resolving Dynamic Activity Custom Types
|
|
148
|
-
|
|
149
|
-
Dynamic activities (e.g., Integration Service connectors) retrieved via `uip rpa activities get-default-xaml` (with `--activity-type-id`) may use **JIT-compiled custom types** for their input/output properties. After the activity is added to the workflow, when you need to discover the property names and CLR types of these custom entities (e.g., to populate an `Assign` activity targeting a custom type property, or to create a variable of a custom type), read the JIT custom types schema:
|
|
150
|
-
|
|
151
|
-
```
|
|
152
|
-
Read: file_path="{projectRoot}/.project/JitCustomTypesSchema.json"
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Focus Activity for Debugging
|
|
156
|
-
|
|
157
|
-
When `validate` returns an error referencing a specific activity (by IdRef or DisplayName), use `focus-activity` to highlight it in the Studio Desktop designer. This helps the user see the problematic activity in context and verify fixes visually.
|
|
158
|
-
|
|
159
|
-
> **Studio Desktop required.** `focus-activity` does not run against headless Studio — it manipulates the Studio Desktop designer UI. Before invoking it, ensure Studio Desktop is up via `uip rpa studio start --project-dir "<PROJECT_DIR>"` (see [environment-setup.md § Edge case: requiring Studio Desktop](environment-setup.md#edge-case-requiring-studio-desktop)). Skip this step entirely on headless-only setups — `validate` already includes the IdRef and file:line in its output, which is enough to locate the activity.
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
# Focus a specific activity by its IdRef (from the error output):
|
|
163
|
-
uip rpa focus-activity --activity-id "Assign_1"
|
|
164
|
-
# Focus all activities sequentially (useful for walkthrough):
|
|
165
|
-
uip rpa focus-activity```
|
|
166
|
-
|
|
167
|
-
This is especially useful when:
|
|
168
|
-
- An error references an activity and you want the user to confirm the context
|
|
169
|
-
- You've made a fix and want to show the user which activity was modified
|
|
170
|
-
- The error is ambiguous and you need to verify which activity instance is affected
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# C# Expression Pitfalls
|
|
2
|
-
|
|
3
|
-
**Scope:** XAML workflow files in projects whose `project.json` has `expressionLanguage: CSharp`. These rules govern how XAML expressions are authored — they do **not** apply to VB XAML projects, and they do **not** apply to coded workflows (`.cs` files with `[Workflow]` / `[TestCase]`). Coded workflows are plain C# — none of the `CSharpValue` / `CSharpReference` / attribute-form rules below are relevant there.
|
|
4
|
-
|
|
5
|
-
Failure modes in scope: all pass static `validate` validation — they only surface at `CacheMetadata` time under `uip rpa build` or `uip rpa run`.
|
|
6
|
-
|
|
7
|
-
For the canonical binding form per property, see [csharp-activity-binding-guide.md](csharp-activity-binding-guide.md).
|
|
8
|
-
|
|
9
|
-
## Attribute-form expressions fail at runtime
|
|
10
|
-
|
|
11
|
-
Any non-literal attribute value on an `InArgument<T>` / `OutArgument<T>` property (e.g. `Message="logMessage"`, `TextString="statusText"`) is deserialized as `VisualBasicValue<T>` by the XAML attribute parser — regardless of the project's `expressionLanguage`. On non-Legacy projects the VB JIT is disabled, so these fail at runtime:
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
System.InvalidOperationException: JIT compilation is disabled for non-Legacy projects.
|
|
15
|
-
ExpressionToCompile { Code = "logMessage" ... } should have been compiled by the Studio Compiler.
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
**Fix:** use `<CSharpValue>` (read) or `<CSharpReference>` (write) child-element form for anything non-literal.
|
|
19
|
-
|
|
20
|
-
**Attribute form is safe for:** literal strings on `InArgument<String>`, enums, numbers, booleans, `TimeSpan` literals, `{x:Null}` — values with a direct type converter that bypasses the expression parser.
|
|
21
|
-
|
|
22
|
-
## `OutArgument<T>` attribute form fails at parse time
|
|
23
|
-
|
|
24
|
-
`<uix:NGetText TextString="statusText"/>` raises `Failed to create a 'TextString' from the text 'statusText'` — `TextString` is `OutArgument<String>`, not a plain property, so the XAML parser has no converter for it. Always use the `<OutArgument>` + `<CSharpReference>` child form for output bindings.
|
|
25
|
-
|
|
26
|
-
## `ThrowIfNotInTree` at runtime — two causes
|
|
27
|
-
|
|
28
|
-
Same runtime stack, two distinct root causes:
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
System.InvalidOperationException: The argument of type 'System.String' cannot be used.
|
|
32
|
-
Make sure that it is declared on an activity.
|
|
33
|
-
at System.Activities.Argument.ThrowIfNotInTree()
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
**Cause 1 — variable declared outside the `ActivityAction` scope.** `OutArgument<T>` + `<CSharpReference>` bound to a variable declared on a `Sequence` **outside** the `ActivityAction` body passes validation but throws at runtime.
|
|
37
|
-
|
|
38
|
-
- **Typical case:** a UI activity inside `<uix:NApplicationCard.Body><ActivityAction><Sequence>` writes an output to a variable declared on the *outer* `Sequence` rather than the inner one.
|
|
39
|
-
- **Fix:** declare the variable on the `Sequence.Variables` immediately inside the `ActivityAction`, not on a parent `Sequence` outside it.
|
|
40
|
-
|
|
41
|
-
**Cause 2 — UIA activity authored without its `Version` attribute.** A UIA activity missing the `Version` its `activities get-default-xaml` starter emits (e.g. `NGetText` without `Version="V5"`) throws `ThrowIfNotInTree` at runtime on its argument bindings even when variable scoping is correct. This passes BOTH `validate` AND `build` clean — it surfaces only at run.
|
|
42
|
-
|
|
43
|
-
- **Diagnosis rule:** when scoping is verified correct, diff the authored activity against its `uip rpa activities get-default-xaml` starter and restore any missing attributes — the starter's `Version` in particular. Never strip an attribute the starter emits.
|