How to design a Process to be shared on Web and Mobile app?

Hi, I am creating a "Core Service" as a Service App Application, to provide reusable service (server entities, server actions, etc) so that it can be used both on Web and Mobile Applications.

I was planning to create core modules to handle entities, business logic, and processes.

My issue is that using this Service App type, I cannot add "Human Activity" on Process. I want to create a process that needs to be created once and can be used both on Mobile and Web apps. For example on the Web user initiate a Process and using the mobile App to approve the Human Activity.


What is the best practice to design the Architecture? Is it the right choice to choose Service App for this matter?


Thanks

Hi, friend.

If you want to create something like microservices, the best way is to create a service module to encapsulate those logics or API's there and then consume from it.

Exposing service action will create low dependency between your applications, which means that you don't need to publish all of them to make the data updated. Expose those logic from _CS modules will create a high dependency in your systems.

Lenon Manhães wrote:

Hi, friend.

If you want to create something like microservices, the best way is to create a service module to encapsulate those logics or API's there and then consume from it.

Exposing service action will create low dependency between your applications, which means that you don't need to publish all of them to make the data updated. Expose those logic from _CS modules will create a high dependency in your systems.

Hi, thank you for the answer

Yes, I created service modules to encapsulate the logic/business process. I also read from that it is a good practice to use "Service" type as Core Service ( source : https://www.outsystems.com/forums/discussion/40498/shall-i-use-a-service-app-for-my-data-core-module/

This is my application (Service), I created a module named "Orders_CS" (Service)

I created an Entity named "Orders" and have a need for a simple Human Activity Approval. Let say if a new Order is created, it needs an Approval from a supervisor. If a user initiates an Order (via Web/Mobile), the supervisor does the Approval process (via Web/Mobile). The issue here is that there is no "Human Activity" on Service type, so what is the best practice to "centralize" the Process on one module? Do I have to create the "Process" workflow on either the Mobile App or the Web app? Because using this approach, It will not be centralized on one module.


Thanks


Solution

HI Henry,

Yes you are right. if you create your process in service module you won't get any humer activity. And according to to OutSystems 4 Layer Canvas you should create your processes either in End User Modules or Orchastration based on the requirement of that activity. So you should create it accordingly instead of creating in Core layer modules.

Here is the link where you can check OutSystems 4LC in detail.

https://success.outsystems.com/Support/Enterprise_Customers/Maintenance_and_Operations/Designing_the_architecture_of_your_OutSystems_applications/01_The_4_Layer_Canvas

Solution

Hi Henry,

Adding to what Nikhil already correctly stated, be aware that you can only add human activities in Traditional Web, and for Reactive Web, only with the latest 11.7.2 version of Service Studio. Mobile applications do not include support BPT.

Regards,

Daniel

Hi all, thanks for your responses, really appreciate it.