Why can't I access the output argument of an action in the Expression Editor?

Why can't I access the output argument of an action in the Expression Editor?

  
In the Expression Editor you're able to select objects from what is called the "Scope Tree". As the name states, only objects that are within the scope will be presented and, consequently, available for usage.

You can tell if an action output argument is within the scope when the ACTION BELONGS TO EVERY POSSIBLE PATH between the start node and the "place" in the flow where you're trying to use it.

Thus, when using the Expression Editor, if an output argument is not there it is certainly because it's out of scope. That may happen in situations such as:

- The action hasn't been executed yet: Unlike queries, output arguments are not variables, they'll only be instantiated after the action execution;
- Conditional branches of "If" or "Switch" widgets: If an action is executed within one of those branches, its output arguments will certainly not be available in other branches or in a place ahead in the flow where branches join;
- Actions are already placed but you've failed to connect them before trying to use the Expression Editor.
Hello,

If I have a screen preparation which make a call to an action, its outputs are not available in the repective web flow. These outputs should belong to the "scope tree".... : (

Thanks
Hi

I'm afraid I could not understand the use case.

Take the case: you have Action1 with Out1output param and you drag the action to a screen preparation (execute action). You'll have:

START

EXECUTE_ACTION Action1
END

BEFORE END, the output parameter will be in scope, so you'll be able to have:
START
EXECUTE_ACTION Action1
ASSIGN Action1.Out1 = Action1.Out1 + 1
END

Regards,
António
«Hi

I'm afraid I could not understand the use case.

Take the case: you have Action1 with Out1output param and you drag the action to a screen preparation (execute action). You'll have:

START

EXECUTE_ACTION Action1
END

BEFORE END, the output parameter will be in scope, so you'll be able to have:
START
EXECUTE_ACTION Action1
ASSIGN Action1.Out1 = Action1.Out1 + 1
END»

Hello,

Consider your described situation.
Now suppose you are editing the web page of that preparation.
The outputs of Action1 *are not available* for any show/edit record widget...
Shouldn't they be available?
I'm sorry, but I didn't get it yet.
In this example, you may access
Action1.Out1
in the screen. Do you want to upload an oml that generates an error on verify, in order to clarify the scenario?
Regards,
António
Hello,

Now I found the cause:
The actions which I want to use the outputs, are in a "switch" context....
Therefore, they don't appear available at the screens.
There is no solution for this, unless I use an assign :(
Thanks for your help!