I'm not executing another macro. I'm executing the same macro (hence This Macro). I mean, it's another instance, so it's like another macro, but I'm actually triggering the exact same macro. The name you see "Set Next Engine Window Position" is just because I haven't renamed the macro and that action is the first one, so it automatically named it "Set Next Engine Window Position"
Example:
Let's say that I have a macro with a prompt for input. After that I will have an action that checks if that input is valid. So it is valid, all good, it keeps running the macro. If not valid, I want to run the same macro, but this time I want to add a message in the Promp section of the Prompt action that says "XYZ is not valid. Try a different one".
With a global variable, that would be easy: I could have an empty global variable by default. When it runs the macro, since the variable is empty, when I use %Variable%MyGlobalVar% it will not show anything.
Then, once it runs the prompt, if the input is valid, it does nothing to the variable, if it's false, changes the state of the variable to include the message "XYZ is not valid. Try a different one", so when I run the macro again using the Execute Macro (This Macro), it will now show the message. Then, once the macro fully runs based on valid input, I can set the global macro to empty again.
My goal here is more about understanding the limitations of KM when it comes to using a Local variable if I run the exact same macro. I understand that local variables are exclusive to the macro instance running at that time, that's why I was wondering if the "With Parameter" could somehow work differently, more like a global variable, but without actually setting the global variable. Which probably can't.
Now that I'm thinking about it, maybe I could emulate this using the "Until" action. When it runs the first time, it sets a local variable to the message, then depending on the input being valid or not, it goes back to the beginning of the loop or continues with the macro. Gotta try it.