Skip to content

SED-4885 Creating plan samples for RPA - #32

Open
jeromecomte wants to merge 9 commits into
masterfrom
SED-4885-create-samples-for-rpa-plans
Open

SED-4885 Creating plan samples for RPA#32
jeromecomte wants to merge 9 commits into
masterfrom
SED-4885-create-samples-for-rpa-plans

Conversation

@jeromecomte

Copy link
Copy Markdown
Contributor

No description provided.

@david-stephan david-stephan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall good, but took me quite some time to go through it, added several comments. Note, I skipped all keywords and stopped checking the YAML at some points.

Comment thread plans/legacy-exports/README.md Outdated
| `Demo_Google-search.json` | A sequence calling an Echo keyword and asserting on its output |
| `Demo_Data-driven.json` | A data-driven plan iterating over a data source |

Plans built in the Step plan editor are stored serialized as JSON, and these two files are

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure how the plan are stored in DB are relevant, I would just say that this is the format used for import/export and not meant for authoring

@jeromecomte jeromecomte Aug 24, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Totally agree. Will be changed

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Comment thread plans/reference/basic-plan-syntax.yml Outdated
@@ -0,0 +1,67 @@
# A standalone YAML plan: the same tree you would write inside an automation

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The wording is not very clear for me. Not perfect either, but another propostion:

==============================================================================

STANDALONE PLAN

This file represents a single, self-contained Step plan.

Usage:

• Upload directly: Import into the Step UI via "Add plan" > "Create from YAML".

• Convert/add to a package: Move the contents under a plans: list entry inside

an automation package manifest.

This file is a syntax illustration, not a runnable plan - the keywords it

calls do not exist. For plans you can execute, see ../rpa/

==============================================================================

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with your suggestion. Will be changed

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Comment thread plans/reference/dynamic-values.yml Outdated
keyword: "Submit Record"
inputs:
- literalInput: "abc" # static
- numericInput: 777 # static number

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still a string not sure the comment is correct/clear:

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be discussed

Comment thread plans/rpa/README.md Outdated

## What these samples teach

The controls are the vocabulary; these are the ideas that decide whether a plan is any good.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would write "The controls provide the vocabulary; the following principles determine whether a plan is well-designed:"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Comment thread plans/rpa/README.md
is the reason to use a plan at all instead of one large script.

6. **Values come from outside the plan.** The same bot serves a person on demand
(execution parameters) and a nightly `schedules` entry, with credentials held in

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure it's clear what we means with (execution parameters) a concrete example would help; also not sure that the distinction between on-demand run and scehduled ones belongs to *Values come from outside the plan.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Comment on lines +137 to +138
It governs whether one failing cleanup step stops the **remaining** cleanup steps — the same
"keep going" semantics as on a sequence, applied to the cleanup list. Without it, a failing

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"same "keep going" semantics as on a sequence", I have the feeling we did not mention continueOnError for sequence before, so that's a bit confusing

session.

Put a `sequence` inside the session and use **its** `before` / `after` instead. Those steps
run within the session's token, and `after` still runs when the body fails — so cleanup is

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"token" is probably not required, it just runs outside of the session. I guess all this is (and some other sections of this PR) comes from claude trying something, figuring it out it's not working as expecting and documenting it as such. While this is good as other user will fall in the same traps, I feel the wording around this a bit unnatural.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is exactly the case and I had to perform several iterations to remove such "logs". To be fixed

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

| Mechanism | Returns outputs? | Use it when |
|-----------|------------------|-------------|
| **Composite keyword** | Yes, via `return` | The thing you are reusing is a *step* inside someone else's plan. **Reach for this first** |
| `callPlan` | No — it produces its own report branch | The thing you are reusing is a whole bot in its own right, with its own schedule |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't get " own right, with its own schedule"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Don't get it neither ;) To be fixed

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


## `forEach threads` vs `testSet threads`

- `threads` on a **loop** parallelises **rows** of one bot.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

would say "row processing" or something

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


## A plan that is called is still a plan

`Shared - Archive processed records` exists to be called by plan B, but nothing marks it as

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this might also be confusing for readers. Are seems to be more an artefact of "this is a sample, it should not fail". In real life, if I define such a shared plan, nothing say it has to run standalone too and ahve default values.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree. We should clearly mark this as an requirement for this sample or mark this plan as expected to fail

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants