8
Views
4
Comments
[Data Grid Extension] How to Populate Agenda Based on List Entries from Two Distinct API Data Sources?
data-grid-extension
Reactive icon
Forge asset by Jeetaek Kim

Hi everyone,

I have a List and an Agenda in my application, both of which are linked to similar but slightly different data sources fetched via separate API calls. My goal is to populate the Agenda dynamically based on the data stored in the List, while also allowing the Agenda to support manual interactions like adding, removing, or saving rows through buttons.

Here’s what I’ve implemented so far:

  1. The List is populated manually. I add rows, enter a name into a column, and based on the name, the rest of the row data is populated from the relevant API response. The finalized data is then stored in an entity in my app.

  2. Now, for the Agenda, I want it to:

    • Automatically pull and display rows based on the names already stored in the List’s entity.
    • Use the second API source (different from the List's API) to populate the Agenda’s row details. The two data sources share a common key (name) that allows mapping.
  3. At the same time, the Agenda table should also support manual entry, allowing users to add, remove, or save rows.

What I’ve Tried: I’ve attempted to replicate this behavior in a sample OML. Unfortunately, I didn’t have access to distinct APIs for the sample, so I used the same API twice to demonstrate the workflow (as a placeholder). The behavior I’m aiming for is: When someone enters, for example, "R2-D2" in the List, saves it, and R2-D2 is stored in the entity, I want the Agenda to automatically pull and display related data for R2-D2 from the second API source. I’m struggling to figure out how to implement this dynamic filtering and populate the Agenda only with the data that matches the entries stored in the List's entity.

If anyone could help me understand how to implement this properly or take a look at my sample OML setup, I would greatly appreciate it. I believe the key lies in filtering the second API’s response based on the stored entity data, but I’m unsure of the best way to accomplish this.


Thanks in advance for your help!


HubSample.oml
2026-01-28 16-57-48
Mihai Melencu
Champion

Hi,

Does your actual API for fetching agendas support built-in filtering? If it does, can you share what values is expecting?

UserImage.jpg
T S

Yeah it supports built- in filtering. You mean, what values the Request Param in the API actio is expecting?
That would be : {"json-input":{    "dprj_project_code": ["P30200","P02001"]}} 

UserImage.jpg
Vaibhav Pandey

To make this work, you need to bridge the gap between your Entity and the second API.

1. Data Retrieval (The "Fetch" Logic)

Instead of binding the Agenda directly to an API, create a Data Action (e.g., FetchAgendaData).

  • Step A: Fetch all records from your List Entity.

  • Step B: Loop through those records and call your Second API for each "Name" (or pass all names in one bulk API call if the API supports it).

  • Step C: Map the API results into a Local List (of a Structure type that matches your Agenda's needs).

2. Managing the Agenda UI

By using a Local List, you satisfy your requirement for manual interaction:

  • To Add a Row: Use the ListAppend client action to add a blank record to your Local List.

  • To Remove a Row: Use ListRemove.

  • To Refresh: Simply re-run the FetchAgendaData action whenever a new item is saved in the "List" section.

UserImage.jpg
T S

Hi - I'm having problems right now with the filtering of the qpi call, or as you said call the api for each name - do you have an example how I can implement this in Outsystems?

Community GuidelinesBe kind and respectful, give credit to the original source of content, and search for duplicates before posting.