Hello everyone,
I would like your opinion on finding the best way to solve the following scenario:
I have a screen where an external system makes a request to a specific page of my reactive web application, passing several input parameters.
These parameters are data related to objects in my application and need to be received, interpreted and rendered on the screen so that the user can continue the process.
What is the best way to solve this in your opinion?
Thank you.
Hi @Luiz Henrique Stanqueviski
You can try to pass those objects by serializing them as JSON text and handling that JSON text on your screen by deserializing.
Do you have any examples of this use of JSON?
Hello @Luiz Henrique Stanqueviski
I want to clarify: Will the external system send the parameter values as plain values in the URL
(e.g.:- ?id=123&name=John), Or will they be sent as a full object (like a JSON string or encoded object)?
If it's plain data so you can use OnInitialize or OnParametersChanged to validate the inputs and fetch the data based on the input parameter
But according to Service Studio itself, in OnInitialize we should not:– use server calls;– perform local storage operations.How can we performatively internalize the data and render the complete information on the screen? Would it be through aggregates?And another thing, do I need to create a record of the input of these parameters in my application? Should this be done with a DataAction?
Hi @Luiz Henrique Stanqueviski,
If the parameters are numerous or complex, consider using a Structure to organize them more effectively.Alternatively, if the external system supports it, you can simplify the request by sending a single JSON-encoded string, which you can then parse within your application to extract the necessary data.
Hope this helps
Thanks
The problem in this example is how we will internalize this structure and then continue with the process within the application, thinking about the screen lifecycle, how could we internalize the data to be able to perform the appropriate searches and renderings on the screen?
For your scenario, where an external system needs to pass multiple parameters to your OutSystems reactive web application.
I recommend the Signed Payload Approach because:
Example URL format: https://yourapp.outsystemscloud.com/OrderEntry?encodedData=eyJvcmRlcklkIjoiMTIzNCJ9&sig=abc123def456
The URL part is clear, but what would the flow be like once I receive the parameters on the screen, and what is the best way to work with them from there?
Recommended Approach: Use URL Parameters
Notes:
Validation: Always validate and sanitize the parameters. They come from an external system.
Security: Make sure sensitive data is not exposed in query strings if not needed.
Fallbacks: Handle scenarios where parameters are missing or invalid (e.g., show a message or redirect).
I see that this explanation likely came from ChatGPT or a similar AI — it’s a solid starting point.
That said, what I’m actually looking for is a practical best practice on how to use screen parameters not only for rendering UI, but also to save data in the database when needed. For example, if a screen receives a parameter like an Id, I want to know the recommended way to:
Load the related record (e.g., via aggregate or data action).
Bind data to the UI for editing or visualization.
Submit changes and persist them back to the database—while maintaining clean separation of concerns and good performance.