Matrix Version: 6.75.0
Not sure if this is entirely possible, but we’re coming up short on ways to make this work. So far, we’ve got like 95% of the way there, but can’t seem to get over the line. This is long, a little in-depth, and a very long shot, apologies ![]()
We have a JSON data source that’s pulling in data from Funnelback, and we can see the data source record sets underneath with all the data. Additionally, we have a folder full of Data Records (all we need from these is the name of the record).
In the metadata of a page, we have an asset picker which is locked to the folder where our data records and source is located (it’s not locked to any data type). In this picker, we want to be able to mix and match records and record sets, and that part seems to be working nicely. The idea is that Records become a heading / separator and the Sets become an accordion heading/content.
This is being added to a custom paint layout we have set up. In the past, we’ve used the following code structure for printing things out with asset listings without issue, but I guess when shadow assets some into play it’s a little different?
print('%' + 'globals_asset_contents_raw:123456^with_get:root=%asset_metadata_assetListing%' + '%');
123456 is our asset listing, and we’ve set up the asset listing to use an array of asset IDs and the dynamic root node, which should pull from our metadata field.
“There are no results” is all we get.
The listing itself is only set to list Data Source Record Set and Data Record assets, there are no status restrictions and root node is the same folder that our metadata field is locked down to. We’ve tried specifying display formats for both assets types, so we know there’s definitely a styling difference.
If I go to the asset listing page directly, though, and manually pass ?root in the URL (?root=317867,317102:3), I do get an output, but it’s only for the Data Record, nothing for the record set.
The last thing we were playing around with, was using JS and for looping through the metadata field manually. We did get some traction here, in that we found away to access the data of the shadow assets and display the content, but our problem then becomes separating the Records and Sets.
We couldn’t figure out how to work through the order of operations to do something like checking the asset type, and displaying different styling. I’ll drop some code below that we were testing out. There are some different variations of this, including saving the globals into a js variable and trying to run a check from there, but yeah I think parsing order is tripping us up here.
SSJS code we were testing out
for(let i=0; i < modules1.length; i++) {
print( '%' + `begin_globals_asset_assetid:${modules1[i]}^as_asset:asset_type^eq:Data Record` + `%
<p>` + '%' + `globals_asset_assetid:${modules1[i]}^as_asset:asset_name` + '%' + `</p>
` + '%' + `else_globals_asset_assetid${modules1[i]}^as_asset:asset_type^eq:Data Source Record Set` + '%' + `
<h2>
Record name
</h2>
<div>
Content
</div>
` + '%' + `end_globals` + `%`);
}
Some other things I looked into briefly
- Nesting the asset listing using a nested content container and passing vars that way, but I’m not sure on how to correctly set that up or if it would work.
- Using a Search page that returns the assets in the metadata field. I’ve configured search pages before, but nothing this specific, and feel like this is probably the longest shot to get working.
Appreciate any and all ideas. Happy to drop any additional code or details if it will help!

