Showing results for 
Search instead for 
Did you mean: 
Advocate II
Advocate II

Creating and merging DataSet/EntityRecord

Hi community,


just wanted to ask if there's a possibility to either create a DataSet or merge, respectively push, new records?


Use case:

I want to display the dataset and additional records from a webapi response. To do this I would have to merge the templates into the custom entity dataset but don't really know how as I cannot create a DataSet from scratch nor push new items.


I'm using react and input components to render lookups, datetime fields etc. and they're using the dataset properties. Is there a possibility to add new items to an existing DataSet? Or how would you approach this problem?


let items: ComponentFramework.PropertyHelper.DataSetApi.EntityRecord[] = => this.props.checklist.records[rec]);

Because of EntityRecord[] functions I'm unable to push new EntityRecords too.


Thanks in advance!

Super User
Super User

Hi @tvd_nzi , 


The dataset is read-only. To make update/merge to your dataset-data you need to implement the webAPI requests by yourself. That's possible for now only in model-driven PCFs. You can refresh the dataset afterwards using dataset.refresh(). This will trigger an updateView again, where the dataset is containing the new data.


It depends what kind of additional records to the dataset you need, but sometimes is good to consider that you can have two or more datasets in the PCF (all datasets are read-only).


Hope this helps!


Kind regards,


Kind regards,
Please click "Accept as Solution" if my post answered your question so that others may find it more quickly. If you found this post helpful consider giving it a "Thumbs Up."
Super User
Super User

There are a couple effective answers to this.


  1. A Virtual Entity. Virtual Entities allow you to create a table that doesn't ever store data. It is simply used to allow you to attach custom plugin code to the various table events (Retrieve, RetrieveMultiple, eg.) so that you can simulate a table where it doesn't really exist. Usually, this is used for integration purposes (I want to see all "orders" but orders are actually stored in a different database; we use a virtual entity to make it look like they are stored in Dataverse). But it can also be used for cases where you need to simulate the fusion of two tables (kind of like you're making your own ActivityPointer).
  2. Within your PCF, yes, you can absolutely merge those records, although you're right that the EntityRecord[] is a bit of a nuisance. To merge these sets, think about how your presentation layer is going to operate, then work backward from that. I would recommend using a Fluent UI Details List because it immediately replicates most of the functionality of a Dataverse grid and it matches the look and feel of the UI overall. If you go that way, then the DetailsList takes into props a simple Array<any> as the rows. That means that in your index, you will simply loop over all your EntityRecords from both sets and push each one to a new [] that will be your combined rows. The DetailsList then can readily consume that array without needing to worry about the complexities of how EntityRecord[] is structured.
Advocate II
Advocate II


Thanks for your feedback. I'm sorry I wasn't really specific about the use case.


In short the pcf needs to display these record sets as an aggregate

- dataset of checklists (bound custom entity)

- RetrieveMultipleResponse of template checklists (retrieved template checklist)


As soon the template checklists were retrieved I need to merge these two record sets into one.



Thanks too.

The dataset grid is actually a DetailsList. I'll go with your second suggestion and tweak it to avoid having to rewrite the crm input react components. These components use the dataset, column etc. interfaces.



I'll be happy to share my solution and welcome any further ideas.



Advocate II
Advocate II

I ended up writing a wrapper class for the WebApi.EntityRecord interface and a module that creates a List of EntityLocalRecords (wrapper class) which contains the dataset records and the web api results.

Helpful resources

Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Community Call Conversations

Introducing the Community Calls Conversations

A great place where you can stay up to date with community calls and interact with the speakers.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Top Solution Authors
Users online (5,435)