Ideas
10911ideas
Created on 22 Aug 2024
2024-02-20 19-14-17
Niranjan Kumar
Action & Server textboxes are there to filter the logs but Endpoint is not there. It is very much needed when you are trying to filter logs of specific endpoint on the same server. Changing the Action results in showing logs of only one action which doesn't fulfil the purpose.
105
Views
0
Comments
New
Service Center
Created on 01 Jun 2023
2024-10-15 10-08-31
Tiago Ribeiro
Currently, the Outsystems Popup widget does not follow accessibility requirements, notably:- Trapping the Tab focus inside the modal content (the focus continues on the page in the background)- On close, returning the focus to the element that triggered the opening of the popup.The Popup widget is not part of OutsystemsUI, which makes it even harder to work around this problem.Can this be improved?Thanks,Tiago
165
Views
2
Comments
New
Frontend (App Interfaces)
Created on 08 Jan 2016
2014-07-01 01-00-59
Miguel Oliveira
The property "Cache in Minutes" can only be set with an integer value, it would be nice if in the future this property could be set by a variable, like for example with a site.property.
1111
Views
5
Comments
On our RadarOn our Radar
Backend
Created on 04 Mar 2018
2020-03-04 14-50-24
Armando Gomes
So that's pretty much what's on the title. If I create an attribute named Is_Active or IsActive (which will, by default, be a boolean value), set that as the "Is Active Attribute" property of the entity.Maybe the same for the Order By  - if we create an attribute named Order.For Label, it doesn't seem very straightforward so I'll keep that out :)
1357
Views
5
Comments
On our RadarOn our Radar
Backend
Created on 19 Jan 2017
2018-11-23 09-43-46
Carlos Henriques
P10 introduced new operations over lists: ListAll, ListAny, ListFilter, ListIndexOf and ListSort.But, it's still missing a very usefull operation: ListDistinctWe are still using SortRecordList  extension just because of this functionality. It would be nice if it could be added to the system module.
6816
Views
10
Comments
Implemented
Builtin & User functions
Development Environment 11.0.109.0
Created on 26 Oct 2020
2020-06-27 18-35-53
Rohan Hanumante
Hi, As we know the Architecture Dashboard console is only accessible for the Enterprise environment. As the personal environment users unable to access that. So, Can we have one that can be accessible to all personal environment users in order to understanding the working of Architecture Dashboard. Thanks,
439
Views
6
Comments
New
Architecture & Governance 
Created on 09 Nov 2025
2026-03-27 18-29-15
nana jmecher
Hey everyone 👋 I want to share a new idea I’ve been testing lately — we’ll avoid using Static Entities completely, and instead create Server Functions that return the needed lists. This way, we can keep the same behavior as Static Entities but save several Application Objects (AOs) at the same time. In the example below, I’ll show a simple end-to-end demo where this approach helps me save 3 AOs at once 🚀 Here’s the main concept: No Static Entities Replace them with Server Functions that return lists Keep it reusable, simple, and AO-efficient 👇 Check out the demo below! 🧩 The old approach — using Static Entities Let’s start with a simple example. I have an entity called Activity with the following attributes: Name (Text) Description (Text) StatusId (Identifier) PriorityId (Identifier) ClusterId (Identifier) In a traditional setup, these three “Id” attributes are Foreign Keys to Static Entities: Status – contains values like Open, In Progress, Closed Priority – contains Low, Medium, High Cluster – contains Automation, AI, Data Management, etc. 🚀 The new approach — replacing Static Entities with Server Functions Now, let’s move to the new approach. In this version, I’ve removed all Static Entities — Status, Priority, and Cluster — completely. The ActivityNew entity structure stays the same in terms of logic, but the data types for the linked attributes are changed from Identifier to Text: ⚙️ Step 1 – Creating a base structure for our “static” data Before building the Server Function, let’s first create a structure that will represent our “static entity” values. This structure will be reused by all our functions (Status, Priority, Cluster, etc.). Here’s how to do it: Go to the Data tab → Structures. Create a new structure and name it strStaticEntity. Set Public = Yes (or No, depending on whether you want to reuse it across modules). Add two attributes to this structure: Id (Text) — represents the ID or code value. Label (Text) — represents the display name. (Of course, you can add more attributes if needed — for simplicity, I’ll keep just these two.) This structure will act as the base for all the lists that we’ll expose through our Server Functions. 🧠 Step 2 – Creating the Server Function Now that we have our base structure (strStaticEntity), let’s move on and create the Server Function that will return our “static” data. Go to the Logic tab. In the Server Actions section, create a new folder named StaticEntities — this will help us keep all our functions organized in one place. Inside this folder, create your first Server Function and make sure the Function Property is set to yes 💡 Naming convention: I like to use a small prefix to keep things consistent. For example, I’ll name this function seStatus, where: se stands for Static Entity (so it’s easy to recognize what type of function it is), Status represents the type of data it will return. So the full name seStatus clearly indicates that this function behaves like a Static Entity for Status. Later, I can follow the same pattern for other functions: sePriority – returns the priority list seCluster – returns the cluster list 🧠 Step 3 – Defining inputs and outputs for seStatus Now that we have the function created, we need to define its input and output so it can be used in multiple ways. Input: Name: Identifier Data type: Text Mandatory: No (set to No, because this input is not required all the time) This input will allow us to retrieve a specific label or value when needed. Later, I’ll show exactly how and where to use it in the app. Output: Name: ListOfStatus (or any descriptive name you prefer) Data type: List of strStaticEntity This output will return the full list of statuses, which we can use to populate dropdowns or for other logic that normally relied on the Static Entity. 🧠 Step 4 – Building the function logic in the flow Now it’s time to define the logic inside our seStatus function. Drag a ListAppendAll action into the flow. For the Source property of ListAppendAll, use the output list we previously created (e.g., List). This will allow us to append multiple items to the list at once. Next, we will add individual items representing each status (like Open, In Progress, Closed) to the list using ListAppend actions. Each item will be a strStaticEntity record, with its Id and Label set. By clicking on the plus Sign 🧠 Step 5 – Adding conditional logic and filtering The next step is to drag an If widget into the flow. Why are we doing this? We want to check if the function has been called with the Identifier input: If Identifier = "" (empty), the function will do nothing and simply return the full list. If Identifier ≠ "" (not empty), the function will return only the matching label for the given Identifier. Here’s how to implement this: Drag an If widget into the flow and check: Identifier = "" On the False branch (Identifier is provided): Drag a ListFilter server action into the flow. If you don’t have it yet, bring it in from Manage Dependencies → System. Set the List property of ListFilter to our function’s output list (e.g., ListOfStatus). Set the Condition to: Identifier = Id This will filter the list to only include the item that matches the given Identifier. After the ListFilter, add an Assign widget to update the output: Set ListOfStatus (our function output) = ListFilter.FilteredList 💡 Now the function works for both cases: If no Identifier is provided, it returns the full list. If an Identifier is provided, it returns only the matching item, instead of all labels. 🧠 Step 6 – Using seStatus (and other functions) in the app Let’s say we want to display a list of activities with their Status, Priority, and Cluster. Create a Block where we will handle the data. Inside the block, create a Data Action. Note: I already created some records in ActivityNew. Others can create their own records as needed. After creating the Data Action, drag an Aggregate into the flow: Select ActivityNew as the source. Set the output of the Data Action: Data type: Text Record List Add attributes to the output for the values we want to expose: Name, Status, Priority, Cluster All of them set as Text. Next, drag an Assign widget: Set the output of the Data Action = Aggregate results. Now you will be prompted to map each record attribute: Name → ActivityNew.Name Status →seCluster(ActivityNew.ClustersId).Current.Label <---see how we used our function Priority → sePriority(ActivityNew.PriorityId).Current.Label Cluster → seCluster(ActivityNew.ClusterId).Current.Label 💡 This way, the block will return a list of activities with all the necessary values in text format, fully replacing the need for Static Entities. Now just drag a Table to the block and assign the Output List Use the block to a screan and PUBLISH AND let s see the result 🧠 Step 7 – Observing the results and bonus usage After running the app, you can see the results in the interface: Where Priority is missing, it means that either the Identifier was not set or it was left empty. I did this intentionally to show that the function works correctly and handles missing values gracefully. 💡 Bonus: LET me teach you how to filter by multiple choises The function can also return a full list if no specific Identifier is passed. This is useful when you want to populate dropdowns or lookup values without filtering for a single item. Additionally, you can filter directly in an aggregate using multiple values in the filter, which allows you to dynamically retrieve only the relevant subset of records while still using our server functions. This demonstrates the flexibility of the approach: Single-item lookup using an Identifier. Full list retrieval when no Identifier is provided. Optional filtering at the aggregate level for more complex scenarios. 🧠 Step 8 – Creating a reusable Data Action for Filters / Dropdowns In the block, we will create another Data Action, called Filter/Dropdowns: The purpose of this Data Action is dual: To populate dropdowns. To provide a filtered list when needed. For the output, set the name as you like (e.g., List) and set the data type to List of strStaticEntity. Flow setup: Drag an Assign widget into the flow. Assign the output (List) to the result of our server function. Example: List = seStatus() Notice we don’t pass any Identifier here, so the function will return the full list. 💡 This pattern works the same for other static-like data: sePriority() → returns all priorities seCluster() → returns all clusters This allows you to re-use the same Data Action for multiple dropdowns or filtering scenarios without creating multiple static entities. Ok now For the Bonus Let me show you how to filter in aggregate for multiple filter Get The String_Jon in action from manage dependencies Create a variable called StatusFilter or whatever you want(we gonna store here our multiple ids for filtering) Go to our aggregate in the data action add this filter I am using DropdownSearch but you can use also DropdownTags, but make sure that the allow multiple choise is set tot true Bring String_Join action to the DropdownSearchOnchanged Action and set the list input to be selectedoption list from the exxpresion editor and add "," as separator Assign Variable StatusFilters to be = to the output of the stringJoin action, then refresh the data action that get our activities and THAT IS ALL, let` s test it!!! As you can see it s working for single choise But Also For Multiple Thank you All and feel free to reply with your thoughts or improvements!
298
Views
2
Comments
Out of scope
Ideas
Created on 03 Jul 2018
2022-02-18 15-32-27
João Almeida
There are some requests regards Time related actions should support timezones, but I think the changes should be more radical, the DateTime date type itself should be updated in two ways:Support Offset or Timezone informationSupport Milliseconds for more accuracy
1267
Views
5
Comments
New
Backend
Created on 16 Mar 2020
UserImage.jpg
Filipe Manteigas
Make a app that count the number of Wash Hands.People need to create sereral Challanges while they wash there hands.After complete the challange they share the video on social media and challange other people.With this game we can make people fight the virus and have fun.Hope it helpsFM
370
Views
3
Comments
New
COVID-19
Created on 18 Mar
2018-07-06 11-13-55
Nathan Hobbs
Please can you add the ability to apply field descriptions to ODC External Logic components. If there is already a way to do it, it's not in any of the very scant documentation.
62
Views
1
Comments
New
Components
1201 to 1210 of 10911 records
Top Idea Creators
High Five to the top 5 idea creators in the last 30 days
2025-12-08 23-06-08
2 ideas
Top Brainstormers
High Five to the top 5 brainstormers in the last 30 days
2021-09-06 15-09-53
6 comments
2
2024-07-05 14-16-55
2 comments
3
2025-12-08 23-06-08
2 comments
4
2024-01-04 15-15-51
1 comments
Code of Conduct 
The guidelines we live by that make
this Community amazing!
Code of Conduct
Stay Up-To-Date
Keep on top of what's happening in the Developer Community.
Forum, Forge, Training, Documentation, and more!