In this video, we’ll learn how to use the Advanced Mode of the Lightning Conductor to aggregate content from SharePoint lists and libraries, and Microsoft Graph content.
The Advanced Configuration is used when you need to be more specific about which lists or sites to include as the data source when aggregating from SharePoint list or library content, or if the type of list/library is custom or uses a custom content type that you wish to specific. The Advanced configuration can be used for accessing lists and libraries using the SharePoint Object Model or Search. The Advanced Configuration can also be used for other data sources such as Microsoft Graph Entities, or Microsoft 365 Group scopes.
There are for tabs within the Advanced Configuration which include:
- Web Part
- Data Source
Throughout this section, we will describe each option under each of these tabs.
You can open the Advanced Mode when configuring the Lightning Conductor for the first time, or when adding/changing a view.
Configuring a new Lightning Conductor Instance with the Advanced Mode
- Click the Configure Button in the newly added Lightning Conductor Web Part instance
- Click Advanced Mode
Configuring a new View using Advanced Mode
- In the Lightning Conductor property pane, click the + under Configure Views.
- Name the new view
- Click the Cog icon next to your new view
- Click Advanced Mode
The Web Part tab in the advanced configuration dialog provides four options including:
- Configure Data Source Provider
- Configure Display Provider
- Configure Data Refreshing Interval
- Configure Statistical Information
We will describe each option below:
Configure Data Source Provider
The Data Source provider options include:
- Search Rollup Engine Provider
- Object Model Rollup Provider
- Graph Rollup Engine Provider
- Microsoft 365 Group Rollup Engine Provider
The below table summarizes the Data Source Providers:
|Data Source Provider||SharePoint Lists & Libraries||Cached||Graph Entities|
|Search Rollup Engine||Yes||Yes||No|
|Object Model Rollup Engine||Yes||No (Realtime)||No|
|Graph Rollup Engine Provider||Through Custom Graph Query||No||Yes|
|Microsoft 365 Group Rollup Engine||Through Custom Graph Query||No||Yes|
Each of these options are described below:
Search Rollup Engine Provider
The Search Rollup Engine Provider uses a search query to return the results from SharePoint lists & libraries. Search has the advantage of performance over the object model since it uses cached content from the Search Index. See the Configuring Data Source Section on how to use the Search Rollup Engine Provider. The Search rollup provider can return security trimmed content from multiple scopes up to Tenant scope.
Object Model Rollup Engine Provider
The Object Model Rollup Provider is easier to configure than the Search Rollup Provider, and offers realtime queries of SharePoint list or library content. Performance is slower than the Search rollup provider since the content is queried in realtime. The Object Model rollup provider can return security trimmed content from multiple scopes up to Tenant scope.
Graph Rollup Engine Provider
The Graph Rollup Engine Provider is primarily used to aggregate content from Apps such as Planner, OneDrive, To Do, and Outlook. You can however use the Graph Rollup Provider to query any content that is accessible through a Microsoft Graph query within your Microsoft 365 Tenant. This extends also to SharePoint lists and libraries.
Microsoft 365 Group Rollup Engine Provider
The Microsoft 365 Group Rollup Engine Provider is primarily used to aggregate content from Apps such as Planner, OneDrive, To Do, and Outlook. You configure the source based upon the Microsoft 365 Group scope making it easier and more logical to choose the scope of your query than the Graph Rollup Engine Provider.
Configure Display Provider
The ‘Configure Display Provider’ contains four options on how to display your content which includes:
- Grid View Display Provider
- JSON Display Provider
- XSL Style Display Provider
- Adaptive Cards Display Provider
Each of these options are described below:
Grid View Display Provider
The Grid View Display Provider offers a SharePoint List view look and feel to your aggregated content. Using the Grid View, you will be able to configure the columns that you wish to display, the formatting of those columns, summary functions, sorting, filtering, and grouping. The Grid View does not require any code to configure and offer a flexible configuration to your content.
Example Grid View
JSON Display Provider
Example JSON view
XSL Style Display Provider
The XSL Display Provider is still present in the Lightning Conductor for backwards compatibility. JSON would be preferred if you are generating custom views. The Lightning Conductor includes some built in XSLT displays such as Calendar, Posts, and Announcements.
Example XSLT View
Adaptive Cards Display Provider
The Lightning Conductor offers an Adaptive Card view for displaying content. The Adaptive Cards are small cards that can be configured with no code through AdaptiveCards.IO. The Lightning Conductor offer a Task, and an Event Adaptive Card view that you can use as is, or customize.
Example Adaptive Card View
Configure Data Refreshing Interval
The ‘Configure Data Refreshing Interval’ allows content to be automatically refreshed without a page refresh. This is ideal for a Kiosk type view where the content should refresh periodically. Leaving the interval field empty or at 0 will cause the content tp not refresh.
Configure Statistical Information
The ‘Configure Statistical Information’ is an option that will display the amount of time taken to render the view. The information is categorised by Data Retrieving time, and Data Rendering and is displayed in milliseconds. This option should typically be used in testing or troubleshooting scenarios.
The Data Source tab will differ based on the ‘Configure Data Source Provider’ option selected in the Web Part tab. Below, we will describe how to configure each option:
Search Engine Rollup Provider
The Search Engine Rollup Provider enables you to configure a search query that will bring back the content that you desire from SharePoint lists and libraries. The options are described below:
The Result Source can be considered as the type of search that you will perform, and can be aligned with how you would search from within Microsoft 365. Result Sources include ‘Conversations’, ‘Documents’, Items Matching a Content Type’, ‘Items Matching a Tag’, ‘Items related to current user’, and more. Most SharePoint list or library content can be retrieved using the ‘Items Matching a Content Type’ Result Source. The Content Type that you require can be selected using the Query Template Variables specific to the Result Source. E.g. The ‘Items Matching a Content Type’ result source includes the ContentTypeID variable that you can use to select ‘Documents’.
The Query Text can be used to customize the query further than the selected Result Source. The property offers a drop down for common Query Text examples so that you don’t need to know the correct syntax. For example, choosing ‘Return only lists and libraries’ will create the following QueryText: (contentclass:STS_List OR contentclass:STS_List_DocumentLibrary). The QueryText is usually predefined for each result source.
The amount of time measured in seconds before the Lightning Conductor will time out.
Use Query Rules
Query Rules can be specified to narrow the search results. The hyperlink will take you to the ‘Manage Query Rules’ page where you can define the query rules for the result source. An example would be to use ‘Promoted Results Contains’ to specify a value to show promoted search items.
A limit of the number of items to return in the search. Leaving this field blank will be unlimited.
Disable Query Stemming
A Query Stem would be similar words (stemming from the search word). E.g. Searching for the value ‘Fished’ may return ‘Fisher’. This is an option that you can disable in the Lightning Conductor.
Enable Multi Geo
In SharePoint, if you are using a Multi-Geo tenant, each tenant will have it’s own search index. Enabling Multi-Geo will therefore use other Geo’s to perform the search rather than the local Geo.
Retrieve All Items
Retrieves all items from the query text.
Display audience targeted results from audience targeting content when the current user is a member of the audience.
Query Template Variables
Query Template Variables will differ based upon the Result Source. However, often will include ‘Scope’, and ‘Content Type ID’.
Tip: To see examples of the Search configuration. Use the ‘Quick Configuration’ mode within the Lightning Conductor choosing a search scope. Then visit the Advanced Mode for the configured view to learn from the configuration.
Object Model Rollup Provider
The Object Model Rollup Provider is easier to configure than search, and offers realtime results from SharePoint lists and libraries. However, the performance is often better when using Search.
When clicking the Data Source Tab, and Object Model Rollup Provider is selected as the Data Source on the Web Part tab, the Data Source tab will resemble the example below:
Each of the options are described below:
The Rollup Source contains a Treeview whereby you can select the scope of your content aggregation. The granularity of the Treeview can be set using the Rollup Source drop down above the treeview. E.g. If you are configuring the Lightning Conductor to include Document Libraries from specific sites (even if that site contains multiple document libraries), you would use the Rollup Source as ‘Show items from multiple sites’. The Treeview will therefore not go deeper than site level. If you need to select specific document libraries, you can select the ‘Show Items from multiple lists’.
The Treeview is in alphabetical order with the exception of the current site collection which is displayed at the top of the treeview.
Note: The treeview is built using search. If a Site is not shown, it is likely that it is new and not yet included in the search index.
You can use the Filter option next to the Result Source dropdown list to search for a specific site or site collection.
To select a Site Collection/Site/List to be included in the scope of the query, simply select the row as shown below:
The checkbox next to each entity in the treeview is there so that you can select child sites (sub sites). This helps avoid the need to reconfigure the Lightning Conductor as new sites are created. The screenshot below will aggregate from ‘Lightning Tools Software’ and Purchasing. It will include future sub sites of Purchasing. It won’t include results from ‘Expense Reporting’.
Within the List/Item Types section, the following properties are available:
- Include Hidden Lists
- List Type
- Content Type Group
- Content Type
- Include Child Content Types
Include Hidden Lists
By default, hidden SharePoint lists will not display within the treeview. Setting Include Hidden Lists will display the hidden lists in the treeview. The icon for the hidden list will be displayed with a dimmed icon depicting the fact that it would usually be hidden.
The type of list (List Definition) that you wish to aggregate from. E.g. Tasks, Documents, Announcements. There is no need to set this option if you have selected specific lists or libraries to aggregate from using treeview since the type of list will already be determined.
Content Type Group/ Content Type
As well as choosing the source of your query, and the type of list or library to aggregate from, you can also specify a Content Type Group and Content Type. This allows you to be more specific. E.g. If you are after ‘Proposals’ from a Document Library and a Proposals content type exists. You could specify your List Type as ‘Documents’, Content Type Group as ‘Company Name Content Types’ and ‘Proposals’ as the content type. If you wish to include all items regardless of content type, don’t se the content type group or content type.
It is also possible to include ‘Child Content Types’ of the selected content type. E.g. You may have ‘Product Proposals’ and ‘Service Proposals’. In this case, select ‘Proposals’ as the content type and include Child Content Types.
For most configurations, the ‘Columns Source’ property can be ignored. However, it is used to determine the column set to be used in the columns tab. Suppose you are aggregating from three document libraries named Documents A, Documents B, and Documents C. Documents C contains a custom column called Colour. If you simply selected the libraries, only the columns common to Documents A, Documents B, and Documents C would be available to choose from on the Columns tab. So, in this case, you can select the Documents C library as the columns source.
Further settings exist on the Object Model Data Source tab:
- Item Limit – Maximum number of items to retrieve
- Item Limit Per List – Maximum number of items to retrieve from each list/library in the query
- Batch Size – Maximum number of items to retrieve in each batch request
- Retrieve Missing Parent Folders – If a parent folder was not included in scope but required to show child folders and items, the missing folder will be included.
- Retrieve Missing Parent Tasks – If a parent task was not included in scope but required to show related tasks, the missing task will be included.
- Allow Filters – Can be set to determine the types of filters allowed. Dynamic Filters are set by the end user within the Grid View
- Ignore Missing Column Filters – Ignore any filters that are set on columns not displayed.
- Ignore Access Denied Errors – If an item is included that the current user does not have access to, do not display an error.
- Enable Audience Targeting – Show items targeted to the current users audience memberships.
Graph Rollup Engine Provider
The Graph Rollup Engine Provider allows you to aggregate content through the Microsoft Graph to access content such as Microsoft Planner Plans or OneDrive items. The Graph options are described below:
- Entity Type
- Query Timeout
- Item Limit
- Item Limit Per Query
The Entity Type is the Microsoft Graph Entity that will be queried. The Entity Types include User, Group, Contact, Drive, Drive Item, Calendar, Event, Message, Planner Plan, Planner Task, Site, Content Type, and more.
The number of seconds before the query should timeout.
Maximum number of items to return.
Item Limit Per Query
Maximum number of items to return per query.
This property enables you to query the entity. The Lightning Conductor includes predefined queries, but you can also create your own custom query. The below example will return the current users Planner Plans.
A Custom Query can also be provided. The Microsoft Graph Explorer will help you to determine the correct syntax: https://developer.microsoft.com/en-us/graph/graph-explorer
Microsoft 365 Groups Rollup Engine
The Microsoft 365 Groups Rollup Engine Provider is similar to that of Microsoft Graph Rollup Engine. However, it offers a treeview of Microsoft 365 Groups to help you determine which groups you would like to retrieve content from. Each Microsoft 365 Group will contain Teams, OneDrive, Planner, Messages, and Lists & Libraries within a SharePoint site. This content can be queried using this option. Once you have chosen your scope, you can determine the entity type as you did in the Microsoft Graph Rollup Engine Provider section.
The Columns Tab, regardless of Data Source allows you to select which columns to display within your view. You can select the columns by clicking the select option to the left of the column name. The order from left to right can be specified by dragging and dropping the column into the desired position.
In addition to selecting the columns, you can define the following:
- Specify Sort by clicking the Sorting icon to the right of the field name
- Filter each column by clicking the Filter icon
- Set other properties including Export format using the elipses to the right of each column.
Example calculations are included as shown in the above image such as ‘Parent Site Link’ and ‘Parent List Link’.
If you are using the Search Rollup Engine Provider, note that the column names will be Managed Property Names that are mapped to the underlying column names. If you have created custom Managed Properties, you can specify those to be included by clicking ‘Add Managed Property’ as shown below:
The Display tab enables you to configure how you will display the content to your users. On the web part tab, you will have already specified your display provider of either:
- Grid View
- Adaptive Cards
Each display tab will appear differently depending on your selection. Each display type is described below:
Using the Display Tab with the Grid View Display Provider, you can set the following properties:
- Display Format – Choose the data formatting for the column
- Alias – Set an alias for the column header
- Width – Set the fixed width of the column in pixels
- Group By – Choose to Group By this column
- Display – Choose to display this column
- Formatting – Set formatting and conditional formatting on this column
- Summary – Add a summary function to this column
- Sortable – Allow sorting
- Filterable – Allow Filters
- Grid View Settings – Settings defining the Header, Pagination, and other refinements
- Grouping & Linking – Setting columns containing the link to open the item, and behaviour of the link.
Using the JSON views tab, you can select an existing JSON View template from the drop down. Options include:
Using the XSLT views tab, you can select an existing XSLT View template from the drop down. Options include:
- Lightning Tools Announcements
- Lightning Tools Calendar
- Lightning Tools Posts
- Lightning Tools Sample #1
- Lightning Tools Sample #2
Adaptive Cards are a new way to display content aggregated by the Lightning Conductor. To get started with the Adaptive Cards:
- Configure the content to aggregate using the Lightning Conductor
- Copy the Sample Input Data from the Lightning Conductor
- Open https://adaptivecards.io/designer/
- Select all of the sample data in the Adaptive Card Designer and press delete
- Paste the Sample Data from the Lightning Conductor.
- Design your adaptive card using Adaptive Card Designer. Documentation can be found here: https://adaptivecards.io/
- Copy the contents of the ‘Card Payload Editor’ to your clipboard
- Paste the contents into the Adaptive Card field in the Lightning Conductor.
- Refine the optional properties.