Hey all!
I've been studying for the exam, and now I have a question. I have read documentation, used actions, and then seen a post on a forum...
1. Supposedly, according to the documentation (link :https://success.outsystems.com/documentation/11/developing_an_application/implement_application_logic/actions_in_reactive_web_and_mobile_apps/) we have :
"
When developing Apps you create logic that runs on the server and logic that runs on the client device, like a smartphone or a tablet.
You can create the following Actions:
But then, when referring to client actions, we still have the scope of the screenand thed client action.
2. According to this answer given on the post I found :
" A Screen Action is an Action that's local to a Screen. It can only be called by Screen Elements (in Web) like Buttons or Links, or by a Notify of a Web Block. In Mobile, Screen Actions can also call each other. Screen Actions have local scope to the Screen (outside the Screen they are not visible), and have access to all Screen Input Parameters, Screen Local Variables and Widgets. Screen Actions are run either on the server (Web) or on the device (Mobile). Use Screen Actions for simple logic that's Screen-specific.
Server Actions are Actions that are always executed on the server, both in Web and Mobile. Since Web Apps run on the server in their entirety, this is the only available type of Action for a Web App. When a Mobile App calls a Server Action, it needs to be online (since it must reach the server to execute the Action). Use Server Actions in Web Apps whenever you need to abstract some business logic or core logic or domain specific logic. Use Server Actions in Mobile Apps only if you cannot avoid it (e.g. when syncing data), as it will incur a performance penalty (for calling the server and waiting for it to respond back).
Client Actions are the Mobile equivalent to Server Actions. The run on the device, not on a server. Client Actions are therefore only available for Mobile Apps. Their use, like Server Actions, is to abstract logic.
Since OutSystems 11, there is a fourth type of Actions called Service Actions. These are very much like Server Actions, but share some properties with REST Methods (perhaps yet another type of Action), in that calling them only creates a "weak" Reference to the Module it's in (instead of the normal "strong" Reference). But if you've just started OutSystems, I'd forget about them for now."
So question:
If I am asked which actions exist, should I say client and server only because those are the main (including scope of screen and client and service)? Should I include service in my answer? Because data action is a question of fetching data on the server... Is it considered server but an action that can be created?
I know there are some tricky questions, and I want to be sure I have the correct answer for the certification.
Thank you!
Hi @Mafalda Oliveira ,
you won't be asked any open-ended questions like that, it will be multiple choice, typically giving you 4 statements, and asking you which one is incorrect or which one is correct.
The questions will be tricky, in the sense that you have to carefully read each option before choosing one, but there will only be one correct answer.
So in terms of the subject here, it would be maybe something like
Considering actions in a reactive application, and considering you don't use any javascript custom javascript, which one of the following statements is true :
Dorine
ps. hoping i didn't accidentally have more than 1 true statement in there ;-)
Hi,
This text in your previous reply relates to Traditional Web Apps and not to Reactive Web Apps:
"Since Web Apps run on the server in their entirety, this is the only available type of Action for a Web App."
A Reactive Web app does have logic that runs in the client (browser, or device) by means of client actions and screen actions (which are also client actions but with scope of screen).
Given that you have a question but not list possible answers to select from, I can only state generally, one more time:
Actions that are run on the server:
Actions that run on the client (web browser, or on mobile device):
So on a question "which actions are executed client side?", possible answers are
a) server actions
b) data actions
c) client actions
d) screen actions
The answer should be c) as a screen action is a client action, but not all client actions are screen actions.
If however in the possible answers would be this:
d) client and screen actions
I would choose d) as it explicitly states both.
Hope this helps.
Regards,
Daniel
Some of the documentation you refer to references Traditional Web apps, not Reactive Web apps. Reactive Web Apps have similar client side technology as Mobile apps (ReactJS).
Hello!
First of all, thank you for your time and answers.
Link : "Applies to Mobile Apps and Reactive Web Apps only."
I don't think I used any traditional app links...
Quote : https://www.outsystems.com/forums/discussion/49836/difference-between-screen-action-server-action-and-client-action/
It wasn't referential to traditional apps, was it?
Also: " In OutSystems, a Service Action is a REST based remote call to another process, but its usage is very similar to public Server Actions. Exposing a Service Action generates a weak dependency from the consumer to the producer module, in a loosely-coupled way."
Maybe I wasn't clear about my question, and if so, I apologize.
I know I can create those actions, as well as the existence and usage of the ones referenced in your post in reactive apps.
My question is... If I am asked which actions exist, should I refer to client and server actions because the screen action is a matter of client in a different scope (so the answer is general concerning client VS server)? Should it be screen, client, and server?
Another thing: What about the service action referenced?
I am not sure I understand the answer in terms of my certification reative exam question (since some are general, some are referring to scope, but they are still both client action side), because the answer explains what I quoted and already knew and tried to explain. It does not really answer the question I had. I know there are traditional and reative ones and which ones I can create. That screen and client exist in the client action.
I can try to reformulate if necessary. Maybe I couldn't explain myself.
To answer this : how many actions exist in service studio in reative apps? What's the correct answer to this.
Thank you again for taking the time
Hey @Dorine Boudry and @Daniel Kuhlmann, how are you doing?
I apologise if I didn't explain myself more clearly at first.
I appreciate you taking the time to help me! I am grateful for your assistance and responses :)