Enesys RS Data Extension Manual

Enesys RS Data Extension Manual
2.0
Reporting Services Data Processing Extension for SharePoint
ENESYS
Enesys RS Data Extension Manual
Enesys RS Data Extension Manual
Reporting Services Data Processing Extension for SharePoint
1
ABOUT ENESYS RS DATA EXTENSION ...................................................................................................................... 4
LICENSE AGREEMENT .............................................................................................................................................. 4
INSTALLATION AND UPGRADE .................................................................................................................................... 6
SYSTEM REQUIREMENT .......................................................................................................................................... 6
INSTALLATION .......................................................................................................................................................... 6
OVERVIEW ............................................................................................................................................................ 6
REPORT SERVER INSTALLATION ...................................................................................................................... 7
BUSINESS INTELLIGENCE DEVELOPMENT STUDIO INSTALLATION ...........................................................10
SAMPLE CONFIGURATION FILES ......................................................................................................................11
INSTALLING SCHEMA FILES ..............................................................................................................................12
UPGRADING FROM VERSION 1.X ..........................................................................................................................12
OVERVIEW ..........................................................................................................................................................12
UPGRADING ........................................................................................................................................................13
QUICK START ...............................................................................................................................................................15
CREATING A NEW REPORT PROJECT ....................................................................................................................15
ADDING A NEW REPORT ........................................................................................................................................16
CREATING A DATASET ...........................................................................................................................................16
CREATING A QUERY ................................................................................................................................................18
LAYOUT ....................................................................................................................................................................19
CONCLUSION ...........................................................................................................................................................19
USING ENESYS RS DATA EXTENSION ......................................................................................................................21
RETRIEVING DATA FROM A SHAREPOINT LIST ..................................................................................................21
SPECIFYING SHAREPOINT LIST .......................................................................................................................22
SPECIFYING LIST COLUMNS ..............................................................................................................................22
FILTERING LIST DATA .......................................................................................................................................22
USING COLUMN DISPLAY NAMES OR INTERNAL NAMES ..............................................................................23
USING REPORT PARAMETERS ..........................................................................................................................24
PENDING ITEMS .................................................................................................................................................26
EXPANDING RECURRING EVENTS ....................................................................................................................26
STRIPPING HTML TAGS ....................................................................................................................................29
USING RUNNING VALUES .................................................................................................................................31
RETRIEVING ITEMS AND FOLDERS IN A SPECIFIC FOLDER ..........................................................................33
RETRIEVING THE FIRST N ITEMS OF A LIST ...................................................................................................34
CUSTOM SEPARATOR MULTIPLE VALUES COLUMNS ....................................................................................35
EXPANDING MULTIPLE VALUES ......................................................................................................................36
APPLYING OPERATIONS TO LISTS ........................................................................................................................37
JOINING RESULT SETS .......................................................................................................................................38
MERGING RESULT SETS ....................................................................................................................................39
GETTING DISTINCT VALUES .............................................................................................................................40
GETTING A SUBSET OF A RESULT SET .............................................................................................................41
MERGING MULTIPLE LISTS ....................................................................................................................................42
MERGING LISTS USING A REFERENCE LIST ....................................................................................................42
ROLLING UP LISTS IN A SITE COLLECTION .....................................................................................................44
RETRIEVE LISTS INFORMATION, GROUPS AND PERMISSIONS ..........................................................................46
Enesys RS Data Extension Manual
Sommaire
2
Enesys RS Data Extension Manual
LIST COLLECTION ..............................................................................................................................................46
LIST PERMISSIONS .............................................................................................................................................47
WEB PERMISSIONS ............................................................................................................................................47
SHAREPOINT GROUPS.......................................................................................................................................47
SPECIFYING A SET OF SITES .............................................................................................................................48
RETRIEVING ENESYS RS DATA EXTENSION VERSION INFORMATION ...........................................................48
SAMPLE REPORTS ...................................................................................................................................................49
FILES DETAILS....................................................................................................................................................49
SAMPLE REPORTS ..............................................................................................................................................49
DATA SOURCE CREDENTIALS ................................................................................................................................51
REPORT DESIGNER ...........................................................................................................................................52
REPORT SERVER................................................................................................................................................53
WHICH CREDENTIALS SHOULD YOU USE? .....................................................................................................55
USING INTELLISENSE FOR WRITING QUERIES....................................................................................................55
REFERENCE ..................................................................................................................................................................59
LIST ELEMENT .........................................................................................................................................................59
FIELDS ELEMENT ...............................................................................................................................................61
QUERY ELEMENT ...............................................................................................................................................61
CUSTOMFIELDS ELEMENT ................................................................................................................................61
MULTILIST ELEMENT .............................................................................................................................................62
MERGING LISTS APPROACH .............................................................................................................................62
ROLLING UP LISTS APPROACH .........................................................................................................................63
MERGING LIST COLUMNS .................................................................................................................................63
SQLOP ELEMENT.....................................................................................................................................................64
OP= "JOIN" .........................................................................................................................................................64
OP= "OUTERJOIN" .............................................................................................................................................64
OP= "UNION" .....................................................................................................................................................64
OP= "DISTINCT" ................................................................................................................................................65
OP=”SELECT” .....................................................................................................................................................65
LISTCOLLECTION ELEMENT ..................................................................................................................................65
LISTPERMISSIONS ELEMENT.................................................................................................................................66
WEBPERMISSIONS ELEMENT ................................................................................................................................67
WEBGROUPS ELEMENT..........................................................................................................................................68
VERSION ELEMENT .................................................................................................................................................69
RESULTSET ELEMENT ............................................................................................................................................69
SUPPORT.......................................................................................................................................................................70
3
About Enesys RS Data Extension
Enesys RS Data Extension is a Microsoft SQL Reporting Services Data processing extension that
makes it possible to retrieve data from SharePoint lists for the purpose of building reports using
Reporting Services.
Once installed, Enesys RS Data extension will provide a new type of data source that can be
used as part of Reporting Services.
Enesys RS Data Extension provides a specific Query syntax based on Xml that makes it possible
to retrieve SharePoint data and apply operations on the data before it is passed to Reporting
Services report engine.
License agreement
By installing Enesys RS Data Extension (herein the “Software”) developed by Enesys, you are
accepting the following License Agreement. IMPORTANT: this license is a legal agreement
between you (either an individual or a single entity) and ENESYS. By installing and using the
software you are agreeing to be bound by the terms of this license agreement. Read it carefully
before installing and using the software. If you do not agree to the terms of this license
agreement, then do not install the software.
I.
License grants
With respect to the SOFTWARE, the terms of this Agreement supersede and replace any
conflicting or contradictory terms contained in any preexisting agreement between Enesys and
you.
Enesys grants you a non-exclusive, non-transferable license to install and use the software only
as authorized below.
A. Trial License
You are granted a license for evaluation purposes only. You are authorized to install and use the
SOFTWARE for the sole purpose of testing its functionalities.
The SOFTWARE may be installed on an unlimited number of Business Intelligence Development
Studio installations for the purpose of building and testing reports that will be deployed on a
Report Server with a valid license.
Reports using Enesys RS Data Extension features and deployed on a Report Server with a valid
license can be run by an unlimited number of users employed by you.
C. Enterprise License
This license grants you the right to install the SOFTWARE on an unlimited number of servers
owned by you or any subsidiaries if you are representing a legal entity.
Enesys RS Data Extension Manual
B. Server License
This license grants you the right to install the SOFTWARE on one (and only one) server instance
where Microsoft SQL Reporting Services is installed. In a web farm scenario with multiple report
server computers connecting to a report server database, you need a valid license for each
computer running the Report Server.
4
The SOFTWARE may be installed on an unlimited number of Business Intelligence Development
Studio installations for the purpose of building and testing reports that will be deployed on a
Report Server with a valid license.
Reports using Enesys RS Data Extension features and deployed on a Report Server with a valid
license can be run by an unlimited number of users employed by you.
II.
Software Maintenance and support
The license entitles the purchaser to support and updates of the SOFTWARE for a period of one
year following the purchase of the SOFTWARE. Updates and related supplements of the
SOFTWARE provided as part of the updates are governed by this license unless otherwise stated.
III.
License limitations
You may not disassemble, decompile, reverse engineer, or attempt in any manner to reconstruct
or discover any source code of the SOFTWARE.
You may not rent or provide hosting services using the SOFTWARE.
IV.
Publicity
You grant Enesys the right to identify you as a user of the SOFTWARE as part of a "customer list"
displayed on our web site. At any point, you can submit a written request via email to
contact@enesys.fr to have Enesys remove your name.
V.
Limited warranty
Enesys RS Data Extension Manual
Enesys warrants that the SOFTWARE will perform substantially in accordance with the
accompanying documentation for a period of thirty days from the date of receipt. Neither Enesys
nor its suppliers shall be liable to you or any third party for any indirect, special, incidental,
punitive, cover or consequential damages (including, but not limited to, damages for the inability
to use equipment or access data, loss of business, loss of profits, business interruption or the
like), arising out of the use of, or inability to use, the software and based on any theory of
liability including breach of contract, breach of warranty, product liability or otherwise. Enesys's
total liability to you for actual damages for any cause whatsoever will be limited to the amount
paid by you for the SOFTWARE that caused such damage.
5
Installation and upgrade
System Requirement
Software
Description
Microsoft SQL Server
2005 Reporting
Services
Enesys RS Data Extension (ERSDE) must be installed on an installed
Reporting Services server in order to run reports built using ERSDE
Data source.
Please note that ERSDE is not compatible with SQL 2005 Express as
custom extension do not work in that specific configuration.
Enesys RS Data Extension 2 is compatible with both 32bits and 64bits
version of SQL Server 2005.
MOSS 2007 or WSS
V3
The purpose of ERSDE is to retrieve data from SharePoint for building
and running reports using Reporting Services.
Business Intelligence
Development Studio
Reports are built using Microsoft Business Intelligence Development
Studio which is a subset of Visual Studio 2005. It can be installed over
an existing Visual Studio 2005 installation and will complement it
with additional project types including Reporting Services projects.
Enesys RS Data Extension must be installed along Business
Intelligence Development Studio for building and testing reports
using ERSDE features.
Installation
Overview
Enesys RS Data Extension is provided as a zip file which contains the following files and folders:
Software
Description
Enesys RS Data Extension
Manual.pdf
User manual.
ErsdeSchema folder
Folder containing Enesys RS Data Extension Schema files
that can be used for building query using intellisense.
ConfigFiles folder
Folder containing sample configuration files highlighting
configuration that must be made to your own
configuration file.
ReportSamples folder
Folder containing sample reports demonstrating various
use of Enesys RS Data Extension for retrieving data from
SharePoint.
The folder also contains a backed up SharePoint site that
Enesys RS Data Extension Manual
Enesys.ReportingServices.Ersde.dll Reporting Services Data Processing extension.
6
Software
Description
contains the necessary lists for running the sample reports
provided.
Though Enesys RS Data Extension must be installed manually, the installation is simple and
straightforward.
You will have to install and configure Enesys RS Data Extension both on your Reporting Services
server and on any Business Intelligence Development studio installation from which you would
like to build and tests reports using ERSDE features.
Once properly installed and configured, Enesys RS Data Extension will be available as a data
sources type with the name “Enesys SharePoint Data Extension” as shown in the following
screenshot:
Report Server installation
Enesys RS Data Extension Manual
Here is a summary of the necessary steps to install and configure Enesys RS Data Extension on a
Reporting Services report server.
7
1
• Copy Enesys RS Data Extension dll
on your report server.
2
• Modify rsreportserver.config file to
let Reporting Services know about
the extension.
3
• Modify rssrvpolicy.config file to
give the necessary permissions to
the extension.
Copy Enesys RS Data Extension on the report server
Copy Enesys.ReportingServices.Ersde.dll in the bin folder of your Reporting Services server
installation.
It will usually be located in the following directory:
[Program files folder]\Microsoft SQL Server\[ Instance folder] \Reporting
Services\ReportServer\bin.
Note:
Replace [Program files folder] by your own program files folder.
Reporting Services may be installed with any instance of SQL Server. The [instance folder]
has the following form: MSSQL.X, X being the instance number (e.g.: MSSQL.2, MSSQL.3,…).
Modify rsreportserver.config
Rsreportserver.config file needs to be modified for registering Enesys RS Data Extension as a
data processing extension that may be used for running reports.
[Program files folder]\Microsoft SQL Server\[ Instance folder] \Reporting
Services\ReportServer.
1. Open the configuration file.
2. Locate the <Data> element.
3. Add the following child node:
<Extension Name="ERSDE"
Type="Enesys.ReportingServices.Ersde.ErsdeConnection,
Enesys.ReportingServices.Ersde">
<Configuration>
<LicenseKey></LicenseKey>
</Configuration>
Enesys RS Data Extension Manual
Rsreportserver.config is located in the following folder:
8
</Extension>
4. Save the configuration file.
Note :
You will need to put your own License key information unless you are installing the
evaluation version.
We recommend that you copy the extension node from the sample rsreportserver.config
file provided in the package.
Modify rssrvpolicy.config
You need to modify rssrvpolicy.config for granting the necessary permissions to the extension.
The rssrvpolicy.config file is located in the exact same folder as rsreportserver.config file.
1. Open the configuration file.
2. Locate the CodeGroup element which Url attribute is set to $CodeGen$/* like in the
following:
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="$CodeGen$/*"
/>
</CodeGroup>
3. Add the following CodeGroup element just below the one you have located.
Enesys RS Data Extension Manual
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft SQL Server\MSSQL.2\Reporting
Services\ReportServer\bin\Enesys.ReportingServices.Ersde.dll"
/>
</CodeGroup>
9
4. Save the configuration file.
Note :
We recommend that you copy the CodeGroup node from the sample rssrvpolicy.config file
provided in the package.
Whatever the approach you use, you will need to modify the Url attribute and enter the path
to your Report server bin installation; the full path to the folder where you copied
Enesys.ReportingServices.Ersde.dll.
Business Intelligence Development studio installation
Like for an installation on the report server, you will need to copy the extension in the
appropriate folder and modify two configuration files. All the files are located in the same folder.
Here is a summary of the necessary steps:
1
• Copy Enesys RS Data Extension dll
in BI development studio
PrivateAssemblies folder.
2
• Modify RSReportDesigner.config file
to let BI development studio know
about the extension.
3
• Modify RSPreviewPolicy.config file
to give the necessary permissions to
the extension.
Copy Enesys RS Data Extension
Copy Enesys.ReportingServices.Ersde.dll in the PrivateAssemblies folder of your BI installation
which is usually located using the following path:
[Program files folder]\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies.
Note:
Replace [Program files folder] by your own program files folder.
Modify RSReportDesigner.config
1. Open the configuration file.
2. Locate the <Data> element.
3. Add the following child node:
<Extension Name="ERSDE"
Type="Enesys.ReportingServices.Ersde.ErsdeConnection,
Enesys.ReportingServices.Ersde">
<Configuration>
<LicenseKey></LicenseKey>
</Configuration>
</Extension>
4. Locate the designer element.
5. Add the following child node:
Enesys RS Data Extension Manual
The RSReportDesigner.config file is located in the PrivateAssemblies folder.
10
<Extension Name="ERSDE"
Type="Microsoft.ReportingServices.QueryDesigners.GenericQueryDesigner,
Microsoft.ReportingServices.QueryDesigners"/>
6. Save the configuration file
Note :
You will need to put your own License key information unless you are installing the
evaluation version. The same key is used for report server and BI development studio
installation.
We recommend that you copy the extension nodes from the sample
RSReportDesigner.config file provided in the package.
Modify RSPreviewPolicy.config
The RSPreviewPolicy.config file is located in the PrivateAssemblies folder.
1. Open the configuration file.
2. Add the following CodeGroup node before the last CodeGroup element of the file:
<CodeGroup
class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust">
<IMembershipCondition
class="UrlMembershipCondition"
version="1"
Url="C:\Program Files\Microsoft Visual Studio
8\Common7\IDE\PrivateAssemblies\Enesys.ReportingServices.Ersde.dll"
/>
</CodeGroup>
3. Save the configuration file.
Enesys RS Data Extension Manual
Note :
We recommend that you copy the CodeGroup node from the sample
RSPreviewPolicy.config file provided in the package.
Whatever the approach you use, you will need to modify the Url attribute and enter the path
to your BI development studio PrivateAssemblies folder if it is different from what is shown
in this documentation.
11
Sample configuration files
Enesys RS Data Extension package includes a folder named ConfigFiles which contains sample
configuration files for both Reporting Services server and Business Intelligence Development
Studio.
Those files are not intended to replace your own configuration files. Their purpose is to highlight
the necessary configuration modifications and to let your copy those modification within your
own configuration files.
To make it easier, the elements that must be added into your own configuration files have been
surrounded by XML comments as in the following example:
We recommend that you copy the various elements from those sample configuration files rather
than from the documentation.
Installing schema files
If you would like to benefit from IntelliSense when writing an Enesys RS Data Extension query,
you can install the schema files provided with the package in the following folder:
%Program Files%\Microsoft Visual Studio 8\Xml\Schemas
For more information on using intellisense see “Using Intellisense for writing queries” page “55”.
Upgrading from version 1.x
Overview
Enesys RS Data Extension version 2.x is not compatible anymore with SharePoint 2003 and
Windows SharePoint Services 2. Support for SQL Server 2000 has also been discontinued in this
version and the extension will only install on SQL Server Reporting Services 2005.
Enesys RS Data Extension Manual
The extension has been renamed for making it possible to install it side by side with a previous
version. The name that will display when selecting the type of data source has also been
changed to “Enesys SharePoint Data Extension” compared to “Enesys SharePoint Lists” for
the previous versions as shown in the following screenshot:
12
Even though you would not have to retrieve data from both SharePoint 2003 and SharePoint
2007, you can still install the new version side by side with the previous version if you would
like to make some tests first.
Upgrading
Just follow the installation instructions provided in this documentation.
Once you have installed the new version, you will need to do one of the following in order to run
reports using Enesys RS Data Extension 2.x.
Gradual approach
Enesys RS Data Extension Manual
Create a new shared data source of type “Enesys SharePoint Data Extension”.
13
On a report by report basis, change the data source of the report’s dataset so that it points to the
data source using the new version of Enesys RS Data Extension as shown in the following
screenshot:
Notes:
A report may have several datasets defined (especially if you are setting report parameter
available values using a dataset). Though it is possible on a technical standpoint to have several
datasets using different data sources, it is not recommended to use two different version of
Enesys RS Data Extension in a same report.
Straight approach
If you would like to use the new version of Enesys RS Data Extension with all of your reports
instead of on a report by report basis, you will only need to change the type of your shared data
source from “Enesys SharePoint Lists” to “Enesys SharePoint Data Extension”.
Complementary notes:
If you have data sources definitions embedded within your reports, you will not have any other
alternative than modifying your reports in order to use Enesys RS Data Extension 2.x.
Enesys RS Data Extension Manual
Once you have made your modification to either data sources or datasets, do not forget to re
deploy your shared data sources and/or reports to your server. Alternatively, you may make the
modification directly on the report server using the web management interface.
14
Quick start
This chapter shows how to quickly create a report using data from a SharePoint list. If
you have already built reports with Business Intelligence Development Studio, you can
skip this section and go to “Using Enesys RS Data Extension” section.
Creating a new report project
Enesys RS Data Extension Manual
Open Business Intelligence Development Studio or Visual Studio 2005 and create a new Report
Server Project.
15
Adding a new report
Right-click on Reports in the solution explorer and add a new item:
A new empty report named Report1.rdl will be created.
Creating a dataset
Develop the Dataset scroll-down list and select New Dataset.
Enesys RS Data Extension Manual
From the list of templates displayed, select “Report” and click on the Add button:
16
As no shared data source is defined, you will be proposed to create a data source:
Enesys RS Data Extension Manual
Enter the following information:
17
Field
Description
Name
Name that you would like to give to your data source; for example,
the name of the SharePoint server from which you will retrieve
data.
Type
Select "Enesys SharePoint Data Extension" from the scroll-down
list.
Connection string
Enter “server=SharePoint Url”. Replace SharePoint Url with the
URL of your SharePoint server (e.g. http://intranet).
Select the Credentials tab and use the desired authentication method. Windows Authentication
should be fine for the purpose of testing a simple report provided that you have the necessary
rights to read SharePoint lists.
Click OK to create the dataset. Now you must create the query that will make it possible to
retrieve data from SharePoint lists.
Creating a query
Write a very simple query that will return data from one of your SharePoint list as in the
following:
Replace “Products” and “/sites/demo/” with the names of a list and a SharePoint site located on
your server.
button to execute the query. You should get all the items from your
Enesys RS Data Extension Manual
Click on the run
SharePoint list:
18
Once the query has been tested, the logical approach is, of course, to design a layout for the data.
Layout
Note that if you have just created the dataset, you may have to click the “refresh fields”
button to display the list of fields that can be used in the formatting.
Select the Layout view.
Drag the Table component from the toolbox available at the left side of the report designer
Enesys RS Data Extension Manual
Drag the desired fields from the SharePoint list into the table you have just added to the layout:
19
Change the style of the various cells to make the report more visually appealing and select
Preview to see the result.
Conclusion
For the most part, the information presented in this quick start guide is not specific to Enesys
RS Data Extension. The approach is similar regardless of the type of data source used.
What you should retain is:
The data source must be of the type Enesys SharePoint Data Extension.
Enesys RS Data Extension Manual
The connection string for the data source must be in the form of "server=<Url>" where
<Url> corresponds to the URL of the SharePoint server which data is being used.
The dataset used to retrieve SharePoint data is built using a specific query string in XML
format. The main purpose of this documentation is to explain the details of the specific
query syntax.
20
Using Enesys RS Data Extension
Retrieving data from a SharePoint list
You can retrieve data from any SharePoint list using Enesys RS Data Extension specific query
syntax which is based on XML.
In its simplest form, a query string is written as follows:
The list element makes it possible to obtain data from a SharePoint list.
The attributes and the child elements make it possible to specify the desired list, as well as any
selection criteria.
The previous query retrieves all the items from the SharePoint list “Products” located on the site
“/sites/demo”.
Enesys RS Data Extension Manual
Granted that you have created a data source of type “Enesys SharePoint Data Extension”, this is
all there needs to be to run the query within the report designer and retrieve the list items:
21
All columns are returned because the fields element has been left empty.
All items are returned because no criterion was specified in the query element.
Specifying SharePoint list
A SharePoint list title can easily be modified by a user. To avoid this situation you may specify
the SharePoint list to retrieve items from, by specifying its ID (also called name) using the listID
attribute rather that specifying its title using title attribute.
The SharePoint list ID will not change over time. It still can be deleted.
Note that if you are using both attributes, listID will take the precedence over title. Even if you
rely on list id to specify a SharePoint list, we encourage you to set title attribute as a meaningful
reminder of list content.
Specifying list columns
If you don't need all the columns of the SharePoint list, you can specify the columns you would
like to retrieve using the fields element:
Filtering list data
Enesys RS Data Extension Manual
A filter can be applied to a list using Collaboration Application Markup Language query format. It
doesn't take a long time to understand the basic principles. The CAML Query must be placed
within the <query> element. The following query example will retrieve items where the
Category column equals to "Condiments":
22
You can also apply a filter at the report level using reporting services features. However, in that
case, the whole list data is retrieved before the filter is applied. CAML filter is applied at
SharePoint server side and it will improve the performance considerably if you just need a
subset of the list. You can also use a mix of those filtering options when necessary.
Using column display names or internal names
SharePoint list columns have an internal name and a display name. When a column is initially
created, the display name and the internal name of the column are the same (except if the name
contains space or accent marks). When you modify the name of a column, it will only modify the
display name. The internal name is never modified and you may end up with columns whose
internal names no longer have any connections to the display names.
Enesys RS Data Extension Manual
Though using internal names has the advantage of not breaking your report when a column
name is changed, you can choose to use display names when specifying columns to retrieve
fields element) and filtering the list query element) by setting the useDisplayName attribute to
true.
23
Using report parameters
Reporting Services lets you define parameters at the report level so that the user may be
proposed several options for running the report.
Parameters may be used within the query element. A parameter is composed of a name
surrounded by the characters @ and ! (e.g. @product!).
When you use a parameter in the query string and it is not defined at the report level, it will be
automatically created when you select the Layout tab.
Also note that the query execution in the data window will ask you to enter a value for the
parameter.
Enesys RS Data Extension Manual
The following example shows how to return the data from the SharePoint "Products" list whose
category is equal to the value of the "cat" parameter. The parameter's value will be entered
when the report is executed and inserted into the query string.
24
Enesys RS Data Extension Manual
As previously indicated, entering the parameter in the query string will automatically create the
corresponding report parameter, as shown in the following image:
25
Rather than letting the category be entered in full text, you can create a new dataset that will be
used to define the available values, from which the report user shall make a selection.
If you have a distinct SharePoint list containing the list of categories, you can simply create a
dataset returning the list data.
To create a dataset from the list of "products" while eliminating repeats (a category may be
associated with several products and thus appear several times in the list), you must apply a
“distinct” operation to the list as it will be explained later.
Note that you can use any other data source (e.g. SQL) for the available values.
Pending items
For lists for which content approval is required, only approved items are retrieved by default as
shown by the _ModerationStatus column equals to 0:
Expanding recurring events
The expandRecurrent attribute let's you expand recurring events for an event list.
You will appreciate this feature as even SharePoint object model does not include this
possibility. Besides building reports displaying recurring events, a possible scenario is to export
Enesys RS Data Extension Manual
You can use the moderationType attribute to retrieve pending items for a specific list:
26
recurring events as an xml file using Reporting Services subscription features in order to feed
another data source or a business process.
The expandRecurrent attribute goes along with expandFirstDate and expandLastDate optional
attributes that lets you define the range of dates for which recurring events will be expanded.
Parameters may be used to set expandFirstDate and expandLastDate values.
It is important to note that the CAML Query will not filter the expanded events. Recurring events
are expanded after they have been retrieved from the SharePoint list.
Enesys RS Data Extension Manual
Let’s see an example to clarify this point:
27
One may think that the previous query would retrieve all events (including recurring events)
starting from “StartDate” parameter. This is not exactly the case. Recurring events starting
before “StartDate” parameter won’t be retrieved at all though after being expanded some events
may indeed start after “startDate” parameter. Only recurring events starting from “StartDate”
will be expanded.
To make the query as easy to write would have made it necessary to write our own caml
interpreter in order to filter the expanded events with the relevant part of the caml query.
Nevertheless, there is a solution to obtain events between two dates including the recurring
events by writing the following query:
28
Enesys RS Data Extension Manual
The query has been separated in three parts for clarity. You can copy it from the sample report
“Recurring Events Real World” provided as part of the packgage.
The first list query element will retrieve recurring items only (fRecurrence) and expand them
using the date range defined by “firstDate” and “lastDate” parameters.
The second list query element will retrieve non recurring events where EventDate is between
“firstDate” and “lastDate” parameters.
At last, sqlOp op=”union” operation will merge both result sets into one dataset suitable for
Reporting Services.
Stripping Html Tags
Enesys RS Data Extension Manual
It is a well known limitation that Reporting Services is not able to handle html tags within a
specific field. Thus, html data within a field will be displayed as plain text as shown in the
following image:
29
The stripHtml attribute is optional and defaults to false if it’s not defined.
Though not really appealing, stripping html makes text at least readable:
Enesys RS Data Extension Manual
Though, you may use your own approach to remove html tags by using Reporting Services
embedded code features, we have added the ability to strip html tags for a specific SharePoint
list using the stripHtml attribute:
30
Using Running Values
Though Reporting Services makes it possible to calculate running values on the fly, it will not let
you use aggregate functions on running values (max, min, etc).
To overcome this limitation and being able to meet specific scenarios, Enesys RS Data Extension
lets you specify columns for handling running values. In that case, the running value being seen
as a column on Reporting Services side, it is possible to apply aggregation function on it.
Enesys RS Data Extension Manual
Columns containing running values are added using a <customFields> child element of the <list>
element as shown in the following example:
31
Each <field> child element of <customFields> element represents a specific column holding a
running value. The attributes let’s you specify the name of the new column that will be holding
the running value, the data type of the column, the type of running value, the grouping column
and the column holding the value.
To make it simple, the previous query will retrieve the Product and Quantity columns from the
“Order Details” SharePoint list, ordered by “Product”. Enesys RS Data Extension will add a
custom column named “RunningTotal” (name) of type Integer (dataType) and will calculate a
running sum (op) based on the “Quantity” column (param). Each time the “Product” column
value changes (groupColumnName), the running sum is reset to 0.
The following image is what you will obtain when running the previous query within the Data
view.
Note that the Running Sum is reset when the product value changes from “Aniseed Syrup” to
“Boston Crab Meat”.
Enesys RS Data Extension Manual
It is important to note also that Enesys RS Data Extension will not automatically order the data
on the groupColumnName column (“Product” in that case). It’s up to you to order accordingly
the SharePoint list using an <OrderBy> element within the CAML query. The groupColumnName
attribute will only direct ERSDE to reset the running value when the groupColumnName’s
column value changes.
32
Retrieving items and folders in a specific folder
The default behaviour when retrieving items using a list element is to returned all items within
all folders and subfolders.
Enesys RS Data Extension Manual
The optional folder attribute lets you retrieve items and folders in a specific SharePoint list
folder as shown in the following query:
33
When specifying a folder attribute, you will retrieve items located in the specified folder as well
as subfolder as shown in the following screenshot:
To retrieve root items and folders, set the folder attribute to a “/” (slash) value.
Instead of specifying the folder using a literal value, you may use a report parameter (e.g.:
folder=”@someReportParameter!”).
Retrieving the first n items of a list
The rowLimit attribute let’s you specify the number of items to retrieve.
Enesys RS Data Extension Manual
The following query will retrieve only the first five less expensive products:
34
Custom separator multiple values columns
The following type of SharePoint columns may have multiple values:
Enesys RS Data Extension Manual
Choice,
Lookup,
Person or Group
By default, multiple values will be separated by a comma. You may specify your own separator
by setting the multiValuesSeparator attribute value like shown in the following query:
35
Running this query, you will get each student skill and spoken language separated by two
slashes as shown in the following screen shot captured from the report designer:
Expanding multiple Values
Retrieving multiple values separated by some separator will not help if you would like to group
items based on the possible values of such a column.
To address this scenario, it is possible to duplicate items for each value stored in the desired
multiple values column. The desired multiple values column is specified using the
expandMultiValuesColumn attribute as shown in the following query:
Enesys RS Data Extension Manual
By running this query, the “Skills” column which is of type choice and holds multiple values will
only get one value for each student. On the other hand, students are duplicated accordingly to
reflect each skill they have as shown in the following screenshot:
36
Without using expandMultiValuesColumn attribute, you would retrieve items in the following
form:
Rather than specifying the column to expand as a literal, you may use a report parameter (e.g.:
expandMultiValuesColumn="@ChoosenColumn!").
Important notice:
Be aware that items, being duplicated, some operations and calculations may not be appropriate
when building reports using this approach.
Applying operations to lists
You are not limited to build reports based on one SharePoint list. Enesys RS Data Extension
lets you apply specific operations between two SharePoint lists.
In fact, you can define as many list elements as necessary and apply as many operations as you
like in order to obtain the desired Dataset from which you will build your report.
Enesys RS Data Extension Manual
Each list element defined within a query returns a set of data items from a SharePoint list for
which we will use the generic term "result set". The tableName attribute is used to give a unique
name to the result set. The unique name of the result set will serve as the basis for specifying
result sets involved in operations.
37
You can apply an operation between two "result sets" by using an sqlOp op="operation"
element. The data items resulting from an operation is considered a "result set" as well which
name is given using the dstTableName element. Thus you can apply operations on data items
resulting from other operations.
Joining result sets
The join operation works like the SQL inner join statement. It lets you join matching items
between two result sets specified by parentTableName and childTableName based on their
joining columns specified respectively by parentFieldName and childFieldName elements. The
dstTableName element lets you give a unique name to the data items resulting from the join
operation. It is possible to use this data for further operations using this unique name.
The outerjoin operation works like the SQL left outer join statement. It lets you join all the items
from the result set specified by parentTableName with matching items from the result set
specified by childTableName based on their joining columns specified respectively by
Enesys RS Data Extension Manual
The following image displays a join operation between the Products and Product categories
SharePoint lists (bearing that a <list> element has been defined for each of them). Products that
do not have a matching category won't belong to the result set.
38
parentFieldName and childFieldName elements. There's no difference between the join and
outerjoin syntax except for the op attribute.
You are not limited to one joining column. parentFieldName and childFieldName may contain
several joining columns separated by a semi colon.
Joining lists is useful (though not limited to that usage) when dealing with SharePoint lists linked
with a lookup fields. For example you might want to display products grouped by category and
display the category description as well.
Merging result sets
Enesys RS Data Extension Manual
You can merge two result set by using a union operation. It lets you combine the items of two
result sets specified by parentTableName and childTableName elements. Both result sets must
have matching fields and data types. However, two SharePoint lists can be merge even if they are
not exactly identical as long as you only use shared fields in your list query element that are used
as part of the union operation.
39
If you need to distinguish the result set's origin of each item (this would be the case if you want
to build a report that group items bases on their origin), you can set the labelColumn child
element to true and set the parentLabelValue and childLabelValue with some specific value for
each result set. In that case a specific column named rstLabel will be created in the final result
set. The rstLabel column will be filled with parentLabelValue and childLabelValue element
values for respectively the parentTableName and childTableName items.
Getting distinct values
The distinct operation lets you select unique items from the result set specified by tableName
based on the column name specified by the fieldName element. The fieldName element might
contain several column names separated by a semi colon. The optional sortOrder element may
be used for specifying the order used to sort distinct values:
Enesys RS Data Extension Manual
The distinct operation is especially useful for creating a report dataset used to set the available
values of a parameter. Say you have a SharePoint Products list with a Category column and you
would like to let the user of your report select at run time the category of products that will be
displayed in the report. You can easily achieve this by creating a specific report dataset as shown
in the following image:
40
Getting a subset of a result set
The select operation lets you select a subset of the result set specified by sourceTableName
based on the filtering expression specified by selectExpression.
The filtering expression is equivalent to the Datatable select method. Refer to the framework
documentation for more details about expressions.
Enesys RS Data Extension Manual
Though it is possible to filter SharePoint lists using CAML query, selecting a subset of a result set
may be interesting in some complex queries involving several operations.
41
Report parameters may be used with the select expression as shown in the following example:
Merging multiple lists
Enesys RS Data Extension provides the multiList query element for merging a variable number
of lists using one operation.
Two approaches are available:
The first one is based on a SharePoint list that enumerates all the lists you want to merge.
The second approach lets you merge all lists sharing a common title within a site collection.
You specify the desired approach by setting the type attribute to “MergingList” or “RollUpList”.
Merging lists using a reference list
Use the multiList element with the type attribute set to “MergingList” for merging a set of
SharePoint lists that are enumerated in a specific SharePoint list. The term "merging list" will
be used to refer to this list.
You specify the merging list that is to be used by setting its title and relativeSiteUrl attributes.
Enesys RS Data Extension Manual
The merging list is a SharePoint list with four mandatory columns. Each item of this list will
provide information about a SharePoint list that is to be merged.
42
Enesys RS Data Extension Manual
The SharePoint lists that need to be merged are not necessarily completely identical as you can
specify the columns that will be merged using the fields element. Moreover, you can specify a
filter that will be applied to each list before being merged:
43
A specific column named "rstLabel" is added to the result set obtained from the multiList query
element. This column will be filled with the value of the merging list's column Information
depending on the list from which the item is retrieved:
Rolling up lists in a site collection
The following query will merge all SharePoint lists named “Contacts 01” within the entire
“/sites/demo/” site collection:
Enesys RS Data Extension Manual
Use the multiList element with the type attribute set to “RollUpList” for merging lists having the
same “title” within an entire site collection.
44
You are not obliged to merge lists starting from the root of the site collection. It is possible to
specify a child site as the starting point of the merging process (e.g.:
relativeSiteUrl=”/sites/demo/demosubsite01/”).
Enesys RS Data Extension Manual
When running such a query, a column named “rstLabel” will be added to the result set. This
column will contain the relative site Url of the list from which the items have been retrieved as
shown in the following screenshot where the previous query is run from the report designer:
45
Rather than specifying the starting site in the query, you may use a report parameter
(e.g.: relativeSiteUrl=”@StartingSiteUrl!”).
Retrieve lists information, groups and permissions
Enesys RS Data Extension provides specific query elements for retrieving sites and lists
information such as list collection, list permissions, web permissions, etc.
The listCollection query element lets you retrieve information about all the lists in a site or a set
of sites.
Enesys RS Data Extension Manual
List collection
46
Optionally, you can retrieve the permissions as well for each list by setting the
includePermissions attribute to true.
List permissions
The listPermissions query element lets you retrieve permissions from a specific list.
Parameters may be used for the listID and relativeSiteUrl attributes values.
Web permissions
The webPermissions query element lets you retrieve the permissions given at the site level for a
specific site or a set of sites.
Optionally, you can retrieve the users (or AD Groups) belonging to each group by setting the
expandGroups attribute to true.
SharePoint groups
Enesys RS Data Extension Manual
The webGroups query element lets you retrieve SharePoint groups from a site or a set of sites.
47
Optionally, you can retrieve the users (or AD Groups) within each group by setting the
expandGroups attribute to true.
Specifying a set of sites
Except listPermissions, all those commands are sharing a common approach for specifying sites
for which they apply.
You can specify the sites to handle in one of three ways:
By writing directly the relative site Url of the site (e.g.: /sites/demo/) within the query:
By using a report parameter so that the user might select the site when running the report:
By specifying a SharePoint list that contains the list of sites to handle:
You can easily get version and license information by using the version query element as shown
in the following screenshot:
Enesys RS Data Extension Manual
Retrieving Enesys RS Data Extension version information
48
Sample reports
The “ReportSamples” folder provided as part of the installation package includes report
samples as well as a backed up SharePoint site containing sample lists used to run the
sample reports.
Files details
File/folder
Description
sites-demo.bak
Backed up SharePoint site collection containing sample sites and lists
used to run the sample reports. The site can be restored using the
following STSADM command:
STSADM.EXE –o restore –url http://localhost/sites/demo -filename
\ReportSamples\sites-demo.bak
If possible, keep demo as the restored site name so that you will not
have to modify the “relativeSiteUrl” attribute for each sample report
query.
Please note that if you are running a non English SharePoint Server,
you will need to install the English Language template pack before
installing the demo site.
Enesys RS Data Extension Manual
ReportSamples2005
49
This folder contains the sample reports in the form of a report designer
solution for SQL Server 2005.
Sample reports
The following reports are provided as part of the solution:
Report
Description
Dependant parameters
This report shows how define a parameter that depends on the
value of another one.
IssuesGraphicalStats
Report file for the sample "Building a report showing graphical
stats from a SharePoint Issues List". Complete Instructions for
building this report is available on our web site.
IssuesGraphicalStats By
Component
Report file for the sample "Using report parameters with
SharePoint lists". Complete Instructions for building this report is
available on our web site.
SalesByCategory
Report file for the sample "Joining SharePoint lists". Complete
Instructions for building this report is available on our web site.
YearlySalesByCategory
Report file for the sample "Joining SharePoint lists". Complete
Instructions for building this report is available on our web site.
IT – List Collection from
sites in a reference list
Display the List collection and their permission for a set of sites
enumerated by the SharePoint list "Site collection" located on
/sites/demo/.
IT - List permissions
Display permissions for a specific list. This report is not intended
(though it's possible) to be run directly but rather from other
reports.
IT - Lists and
permissions for a specific
site
Display lists and lists' permissions for a specific site selected when
running the reports.
IT – SharePoint Groups
and Users for a site
Display SharePoint groups as well as users belonging to each group
for a selected site collection.
IT – Web permissions for
a specific site and
subsites
Display permissions (at the site level) for a specific site selected
when the report is run. SharePoint Groups are expanded for getting
user belonging to each group.
IT – Web permissions
Display web permissions for a specific site. This report is not really
intended to be run directly but rather from other reports.
Recurring Events Real
World
This report shows how to retrieve events between 2 dates – both
recurring and non recurring.
Stripping Html
Sample report showing the effect of stripping html using stripHtml
attribute.
Running Values Sample
Sample report demonstrating how to add a custom column holding
a running sum.
Select Operation with
Parameter
This report demonstrates how to select a subset of a result set
using a report parameter.
Version Information
This report let’s you retrieve version information and License key
of Enesys RS Data Extension.
Enesys RS Data Extension Manual
When running the report, the site is selected amongst sites
specified in the SharePoint list "Site collection" located on the site
"/sites/demo/"
50
Enesys RS Data Extension Manual
The following reports provided as part of the report designer solution don’t have any
report layout. They are intended to provide specific query syntax examples:
51
Report
Description
Query - Distinct values
Query to retrieve distinct values from a SharePoint list.
Query - Expanding Multi
values Column using
parameter
Query demonstrating how to expand a multiple values column by
passing the name of the column as a report parameter.
Query - Expanding Multi
values
Query demonstrating how to expand a multiple values column.
Query - Lists and folders
Query demonstrating how to use the folder attributes for retrieving
root folders from as specific list.
Query - Merging Lists
Query demonstrating the use of the "union" operator to merge two
lists.
Query - Merging Multiple
Contact Lists
Query demonstrating the use of the multiList query element for
merging multiple lists. The lists that must be merged are
enumerated in a specific SharePoint list.
Query - Multi values
specific separator
Query showing how to use a specific separator for cleaning
multiple values columns.
Query - Pending Items
Query for retrieving pending items from a list.
Query - Relative Site Url
as a parameter
Query showing how to retrieve data from a SharePoint list which
site Url is specified using a report parameter.
Query - Rolling up
Contact Lists specifying
starting site using a
parameter
This query demonstrates how to roll up lists within an entire site
collection. The starting site from which lists will be rolled up is
specified using a report parameter.
Query - Rolling up
Contact Lists
This query demonstrates how to roll up lists within an entire site
collection.
Query - Row Limit
Sample query showing the use of the rowLimit attribute.
Query - Simple Report
Query for retrieving products that belongs to a specific category.
The category is specified at run time by the user running the
report.
Query - Selecting a
subset
Sample query demonstrating the use of “select” operation to get a
subset of a result set.
Query – Specific folder
Query for retrieving items and sub-folders in a specific folder.
Data source credentials
In order to retrieve SharePoint lists data, credentials information must be passed to
SharePoint Web Services.
This chapter will explain the various credential options provided by Reporting Services
and their effect on Enesys RS Data Extension.
For clarity, we will differentiate Report Designer and Report Server side.
Report Designer
When designing a report, you will use one or more datasets connected to a data source.
Though it is possible to embed data source information within a report, we recommend
using shared data sources for making future modifications easier.
For connecting to the data source, you must provide credentials information using the
credential tab as shown in the following image:
Use Windows Authentication (Integrated Security)
Use a specific name and password
When using this option, Enesys RS Data Extension will create network credentials for the
account specified and will pass those credentials to SharePoint Web Services. The
account specified must have the necessary rights for accessing the SharePoint lists used
in the report.
Prompt for credentials
This option will only work in preview mode and will let you specify a run time the account
that should be used to connect to SharePoint.
Enesys RS Data Extension Manual
When you use Windows Integrated Security, the credentials of the user currently
designing the report will be passed to SharePoint Web Services. You will need the
necessary rights on the SharePoint lists that will be retrieved using this data source.
52
We do not recommend this option when designing a report as this will not work when you
run the query in the data view.
No credentials
No credentials is not an option for Enesys RS Data Extension.
Report Server
When deploying a report to the server, several cases must be considered.
If you have embedded the data source information within the report, you will end up with
the same data source configuration on the server. At this stage, you may decide to use a
shared data source or change the report-specific data source connection string or
credentials.
If your report is using a shared data source in the report designer, the shared data
source will be deployed on the server along the report unless a shared data source with
the same name already exists in the server deployment path (unless you have configured
your project to overwrite data sources). This is something important to note as you may
end up with a completely different data source configuration once a report is deployed on
the server. At this stage, you may configure the report to use a different data source or
even create a report-specific data source configuration though we would not recommend
this approach unless you have specific reasons to make it so.
Credentials supplied by the user running the report
Enesys RS Data Extension Manual
When using this option, the user running the report will be prompted to enter a user
name and password. The credentials of the user account entered will be passed to
SharePoint Web Services.
53
It is not necessary to check “Use as Windows credentials when connecting to the data
source” as Enesys RS Data Extension will use network credentials anyway. This option
will only makes a difference with data sources that may use different authentication
schemes like SQL-Server.
Credentials stored securely in the report server
When using this option, the credentials of the user account entered and stored in the
server will be passed to SharePoint Web Services.
It is not necessary to check “Use as Windows credentials when connecting to the data
source” as Enesys RS Data Extension will use network credentials anyway. This option
will only makes a difference with data sources that may use different authentication
schemes like SQL-Server. Note however that checking this option will work properly
though it will make a difference on how credentials are passed to Enesys RS Data
Extension by the report server.
The “Impersonate the authenticated user after a connection has been made to the data
source” is meaningless for Enesys RS Data Extension and will not be used whether you
checked it or not.
Windows integrated security
Be aware that if Reporting Services is not on the same machine as SharePoint, you may
need to deploy Kerberos delegation in order to pass credentials from the Report Server to
SharePoint.
Credentials are not required
When using this option, the credentials of the unattended execution account will be used
if it is configured.
Enesys RS Data Extension Manual
When you use Windows Integrated Security, the credentials of the user running the
report will be passed to SharePoint Web Services.
54
This not a recommended option when using Enesys RS Data Execution.
Which credentials should you use?
Obviously, there is no definitive answer and it may depend on how you are organized.
However, from our experience on customer site, our preference goes to “credentials
stored in the report server” for the following reasons:
Stored credentials are a requirement for reports that run on a schedule
(subscriptions).
We will configure access security at the report or report server folder level so that
users are not polluted by reports they won’t be able to run.
It is sometimes desirable to allow users run a report on a SharePoint list for which
they don’t have permissions. SharePoint doesn’t offer the possibility to give read
permissions on a subset of list’s columns. Suppose you have a SharePoint contact
list that you would like being available by everybody except for the home phone
number that should only be available to managers. Unless you are ready to
maintain two SharePoint lists, you may have one list for which only managers
have permissions. For other users, you could build a report that would not display
the home phone number column and deploy this report using stored credentials
and give all users access rights to run the report.
Of course, you may use a mix of the credentials options available in order to achieve the
same goals.
Using Intellisense for writing queries
Enesys RS Data Extension Manual
The generic query designer used to write dataset queries within the report designer Data view
does not support any form of syntax coloring or helper tools for building queries. It’s in fact a
rather basic text editor.
55
To make things somewhat easier for writing Enesys RS Data Extension queries, you can add an
xml file to your report project and use this xml file for writing queries using the xml aware
editor of Visual Studio.
You can make things even more comfortable by referencing ERSDE schema and benefit from
intellisense features.
Though not an absolute necessity, we recommend installing ERSDE schema files along other BI
development studio (VS2005) schema files. See “Installing schema files” page “12” for more
information.
Once you have added an xml file to your project, specify the schema used to validate your xml
document in the properties section:
Click on the button next to the Schemas property.
Enesys RS Data Extension Manual
In the opening dialog (see screenshot below), select Ersde.xsd schema and click ok.
56
Now in your xml file, write a root element. Ersde Schema namespace will be automatically added
as shown in the following screenshot:
Enesys RS Data Extension Manual
You will automatically be provided with intellisense support while going on writing the query.
57
When you are done with writing the query, you can just copy it to the generic query designer
where it can be run and tested.
Note that queries written for versions of Enesys RS Data Extension prior to 2.0 were not
supporting any schema. If you are copying such a query from a report into the xml file for editing
purpose, you will need to add ERSDE namespace to the root element of the query for getting the
benefit of intellisense and xml validation.
58
Enesys RS Data Extension Manual
Reference
list element
Element/Attribute
Description
title
Title of the SharePoint list from which you want to retrieve data.
listID
GUID of the SharePoint list from which you want to retrieve data.
Though not specifically self describing, the list GUID has the
advantage of not changing over time even if the list title is
modified.
Note that if you specify both title and listID attributes, the later will
take precedence.
relativeSiteUrl
URL of the SharePoint site containing the list. This URL is relative
to the SharePoint site as it is defined in the data source. This
approach was chosen to make it possible to easily move from a
SharePoint test server to a SharePoint production server by simply
modifying the data source.
The relativeSiteUrl attribute may be specified using a report
parameter (e.g.: relativeSiteUrl=”@url!”).
tableName
This attribute makes it possible to assign a name to the set of data
retrieved from your SharePoint list.
Though not extremely useful (but still mandatory) when you
retrieve data from a single list, this name will be the basis for
applying sql-like operations between SharePoint lists.
moderationType
This optional attribute makes it possible to retrieve pending items
for lists for which content approval is required.
By setting the value of the attribute to “Moderator”, you will
retrieve pending and rejected items as well as approved items.
Enesys RS Data Extension Manual
useDisplayName
59
Optional Boolean. This attribute lets you indicate that you want to
use the display names of the columns rather than their internal
names as part of the CAML format query and the fields element.
SharePoint lists columns have both an internal name and a display
name. When a column is initially created, the display name and the
internal name are identical (except if there are spaces or accent
marks). However, the internal name is never modified—even if you
change the name of the column. Thus you may end up with a
column whose internal name no longer has any connection to the
name displayed.
CAML queries use the columns' internal names. To avoid having to
Element/Attribute
Description
search for the internal name associated with the columns using a
complementary tool (CAML Builder or other), you can use the
column display names by setting the attribute to "true". Before
performing the SharePoint Web Service query, the display names
will be automatically replaced by the internal names.
If you prefer using the internal names of the columns you can set
the attribute to "false" or even not define the attribute.
expandRecurrent
Optional Boolean. If set to “true”, recurring events will be expanded
based on their recurrence definition. This attribute will not have
any effect when used with lists other than event’s ones.
The default value is “false”.
expandFirstDate
expandLastDate
Optional. Range of dates for which the recurring events will be
expanded. The attributes have no effect if expandRecurrent is false
or not defined.
The date format must respect the following format :
AAAA-MM-JJTHH:MM:SS.
A report parameter may be used instead of a literal. The report
parameter used must be either of type Datetime (ERSDE will
automatically convert it to the appropriate format) or a string
respecting the date format as shown above.
stripHtml
Optional Boolean. When set to “true”, specifies html tag should be
stripped from SharePoint columns containing html.
The default value is “false”.
multiValuesSeparator
Optional. Specify a string that will be used as a separator for
multiple values columns: Choice, lookup and Person or Group.
The default separator is a comma.
expandMultiValuesColumn Optional. Specify the name of a multiple values column.
This approach lets you use Reporting Services grouping features to
get items into several groups.
Instead of specifying the name of the column as a literal, you may
use a report parameter.
See “Expanding multiple Values” page 36 for more information
about using this feature.
folder
Optional. Specify a specific folder from which to return items.
The default behavior of the list element is to return all items of the
Enesys RS Data Extension Manual
Each list item will be duplicated for each value stored in the
column ending with a column holding a single value.
60
Element/Attribute
Description
list without any consideration for folders.
When specifying a folder, you will retrieve items from that folder
only. Note that you will also retrieve subfolders of this specific
folder. You can discern between items and folders using the
FSObjType column which will be set to “1” for folders and “0” for
items.
You can retrieve root items and folders by setting folder value to
“/” (slash).
A report parameter may be used to specify the folder attribute.
rowLimit
Optional. Specify the number of items returned by the list query
element.
Using rowLimit attribute may be useful when you want to build a
report showing most important items (e.g.: top sales, … ). Of
course, You will have to order the list accordingly using the
appropriate CAML query.
fields element
The fields element lets you specify the columns defined in the context of this element.
Each column name must be separated by a comma. Depending on the value of the attribute
useDisplayName, the column's display name or internal name must be used.
If you do not enter any columns, all of the list's columns will be returned.
query element
SharePoint CAML query. Please see the SharePoint documentation for information about CAML
query syntax.
Some additional functionalities have been added to better integrate its use with Reporting
Services:
If you have set useDisplayName attribute to true, you will need to use column display names
instead of internal names as it is normally the case with CAML queries.
Enesys RS Data Extension Manual
Parameters provided by Reporting Services may be used within the query element. Each
parameter takes the following form: @name_parameter! (a name surrounded by @ and !).
61
customFields element
The customFields element is a container for field elements used for specifying columns holding a
running value (future versions of ERSDE may add other types of columns).
The following table describes the attributes of the field element.
Element/Attribute
Description
Name
Name of the custom column to be added to the result set.
Element/Attribute
Description
dataType
Data type of the column that will be holding the running value
(System.Int32, System.Decimal, ).
Op
Function used for calculating the running values. The following values
may be used:
Sum
Min
Max
groupColumnName
Optional. Specify the name of the column for which the running value
will be reset each time its value changes.
Param
Name of the column containing the value.
multiList element
The multiList element lets you merge multiple SharePoint lists using one operation.
Two different approaches are available for merging lists:
The first one is based on a SharePoint list that enumerates all the lists you want to merge.
The second approach lets you merge all lists sharing a common title within a site collection.
You specify the desired approach by setting the type attribute to “MergingList” or “RollUpList”.
Basically, the multiList element has the same attributes and child elements as the list
element. However, some attributes have a different meaning when used in multiList
element context. Also, the multiList element has a type attribute not available with the
list element.
We will only describe attributes that have a different meaning than when used with the
list element. Refer to the “list element” page “59” for further information on the other
attributes available.
Merging lists approach
Note that a SharePoint list template is provided for the merging list (Merging List.stp) in the
ReportSamples directory. You can upload this template in the desired template library and
create a new list from this template.
The following table describes the meaning of the attributes when using this approach.
Attribute
Description
Title
Title of the SharePoint list that contains the definition of the lists that
are to be merged (merging list).
Enesys RS Data Extension Manual
When setting the type attribute to MergingList, the multiList element will let you specify a
SharePoint list that will enumerate all the lists you would like to merge.
62
Attribute
Description
relativeSiteUrl
Url of the SharePoint site containing the merging list.
A report parameter may be used for specifying the Url.
tableName
Name assigned to the data resulting from operation.
Rolling up lists approach
When setting the type attribute to RollUpList, the multiList element will let you merge all lists
sharing a common title within a site collection.
The following table describes the meaning of the attributes when using this approach.
Attribute
Description
Title
Title of the SharePoint list that is to be merged. Any list having this
title within the entire site collection will be merged as a result of the
operation.
relativeSiteUrl
Url of the starting SharePoint site from which lists should be merged.
Lists from the site specified by relativeSiteUrl attribute and its child
sites (recursively) having a title like specified by the title attribute,
will be merged together as the result of the operation.
A report parameter may be used for specifying the value of the
attribute.
tableName
Name assigned to the data resulting from the multiList operation.
Using this name, you may apply further operation to this data.
Merging list columns
The definition of the lists to be merged must be populated in a SharePoint list. It is this list that is
designated by the title attribute in the multiList element having a type attribute set to
MergingList element.
Each record in the list will represent the definition of a SharePoint list to be merged.
Enesys RS Data Extension Manual
The list must contain the following columns:
63
Column - type
Description
title - text
Title of the SharePoint list that is to be merged during the multiList
operation
relativeSiteUrl - text
Relative URL of the SharePoint site containing the list (e.g.
/sites/demo/).
information - text
To make it possible to distinguish the origins of the combined data,
the content of this column is added to each record in each of the lists
as part of the "rstLabel" column that is systematically added to the
Column - type
Description
result set.
union - Yes/No
Only the lists for which this field is "Yes" will be merged. Using such a
column makes it possible to avoid deleting and re-creating the
definition of lists each time you want to temporarily restrict the
operation to a sub-set of the lists.
Note that a SharePoint list template is provided for the merging list (Merging List.stp) in the
ReportSamples directory. You can upload this template in the desired template library and
create a new list from this template rather than from scratch.
sqlOp element
The sqlOp element lets you apply Sql-like operations between two result sets. A result set is any
data returned by an Enesys RS Data Extension query element (list, multiList, sqlOp,…).
Op= "join"
This operation performs a join between two lists. The parameters are:
Element
Description
dstTableName
Name of the destination table for the join operation. The result of the
operation can be used as part of another operation by invoking this
name.
parentTableName
Parent list used to execute the join operation. It is also possible to use
the result of another operation.
childTableName
Child table. It is also possible to use the result of another operation.
parentFieldName
Columns used to perform the join in the parent table. Each column must
be separated by a comma.
childFieldName
Columns used to perform the join in the child table. Each column must
be separated by a comma.
Op= "outerjoin"
Op= "union"
This operation performs a union between two lists. These are the parameters:
Element/Attribute
Description
dstTableName
Name of the destination table for the union operation. The result of
the operation can be used as part of another operation by invoking
this name.
parentTableName
Parent list. It is also possible to use the result of another operation.
Enesys RS Data Extension Manual
This operation performs an outer join between two lists. The parameters are identical to those
in the "join" operation.
64
Element/Attribute
Description
childTableName
Child list. It is also possible to use the result of another operation.
labelColumn
Indicates if you want to use a specific column that would make it
possible to distinguish the records for each table.
If labelColumn has a "true" value, a column bearing the name
"rstLabel" will be automatically created in the result of the "union"
operation. This column will be filled with the value of the
parentLabelValue element for the parent table records and with the
value of the childLabelValue element for the child table records.
If labelColumn has a "false" value, no column will be created and the
parentLabelValue and childLabelValue elements will not be used.
parentLabelValue
Value used to distinguish the parent table records.
childLabelValue
Value used to distinguish the child table records.
Op= "distinct"
This operation makes it possible to obtain the distinct elements of a list based on specific
columns. The parameters are:
Element/Attribute
Description
dstTableName
Name of the destination table for the distinct operation. The result of
the operation can be used as part of another operation by using this
name.
tableName
List for which you want distinct values. It is also possible to use the
result of another operation.
fieldName
Columns making it possible to determine distinct values. Each column
must be separated by a comma.
Enesys RS Data Extension Manual
Op=”select”
65
Element
Description
dstTableName
Name of the destination table (or result set) that will
contain a subset of the result set represented by
sourceTableName.
sourceTableName
Source table (or result set).
selectExpression
Filter expression.
listCollection element
The listCollection query element lets you retrieve information about all the lists in a site, a site
collection or a set of sites you specify using a reference list.
Attribute
Description
relativeSiteUrl
Specify the relative Url of the site from which you
would like to retrieve the list collection.
refList
Optional. The refList attribute is used to specify a
SharePoint list that contains an enumeration of all the
sites from which you would like to retrieve list
collection.
When using the refList attribute, the relativeSiteUrl
attribute will not specify anymore the site from which
to retrieve the list collection but rather the site where
is located the SharePoint list specified by the refList
attribute.
Note that a SharePoint list template is provided for
the reference list (Reference List.stp) in the
ReportSamples directory. You can upload this
template in the desired template library and create a
new list from this template.
allWebs
Optional Boolean. Setting allWebs to true will return
the list collection from all the sites of the site
collection to which the site specified by
relativeSiteUrl attribute belongs to.
Default value is false.
includePermissions
Optional Boolean. When set to true, permissions for
each list will be returned as well.
Default value is false.
expandGroups
Optional Boolean. When set to true, it will expand
SharePoint groups so that individual user or Active
Directory group are returned.
Please note that this attribute has no effect if
includePermissions attribute is not set to true.
tableName
Name assigned the set of data retrieved from the
listCollection query element.
This name will be used as the basis for applying sqllike operations between result sets.
listPermissions element
The listPermissions query element lets you retrieve permissions for a specific SharePoint list.
Enesys RS Data Extension Manual
Default value is false.
66
Attribute
Description
tableName
Name assigned the set of data retrieved from the
listCollection query element.
This name will be used as the basis for applying sqllike operations between result sets.
relativeSiteUrl
Specify the relative Url of the site where is located the
SharePoint list.
listID
ID of the SharePoint list.
expandGroups
Optional Boolean. When set to true, it will expand
SharePoint groups so that individual user or Active
Directory group are returned.
Default value is false.
webPermissions element
The webPermissions query element lets you retrieve the permissions given at the site level for a
specific site, all sites within a site collection or a set of sites you specify using a reference list.
Attribute
Description
relativeSiteUrl
Specify the relative Url of the site from which you
would like to retrieve assigned permissions.
refList
Optional. The refList attribute is used to specify a
SharePoint list that contains an enumeration of all the
sites from which you would like to retrieve
permissions.
Enesys RS Data Extension Manual
When using the refList attribute, the relativeSiteUrl
attribute will not specify anymore the site from which
to retrieve the permissions but rather the site where
is located the SharePoint list specified by the refList
attribute.
67
Note that a SharePoint list template is provided for
the reference list (Reference List.stp) in the
ReportSamples directory. You can upload this
template in the desired template library and create a
new list from this template.
allWebs
Optional Boolean. Setting allWebs to true will return
permissions from all the sites of the site collection to
which the site specified by relativeSiteUrl attribute
belongs to.
Default value is false.
expandGroups
Optional Boolean. When set to true, it will expand
Attribute
Description
SharePoint groups so that individual user or Active
Directory group are returned.
Default value is false.
tableName
Name assigned the set of data retrieved from the
webPermissions query element.
This name will be used as the basis for applying sqllike operations between result sets.
webGroups element
The webGroups query element lets you retrieve SharePoint groups from a site or a set of sites.
Attribute
Description
relativeSiteUrl
Specify the relative Url of the site from which you
would like to retrieve SharePoint groups.
Though you may specify a sub site within a site
collection, be aware that SharePoint groups are
defined at the site collection level. Thus you will get
the same result by specifying any site belonging to
the same site collection.
refList
Optional. The refList attribute is used to specify a
SharePoint list that contains an enumeration of all the
sites from which you would like to retrieve
SharePoint groups.
When using the refList attribute, the relativeSiteUrl
attribute will not specify anymore the site from which
to retrieve SharePoint groups but rather the site
where is located the SharePoint list specified by the
refList attribute.
Note that a SharePoint list template is provided for
the reference list (Reference List.stp) in the
ReportSamples directory. You can upload this
template in the desired template library and create a
new list from this template.
expandGroups
Optional Boolean. When set to true, it will expand
SharePoint groups so that individual user or Active
Directory group are returned.
Enesys RS Data Extension Manual
You refList should only not contain sites from the
same site collection as SharePoint groups are defined
at the site collection level.
68
Attribute
Description
Default value is false.
tableName
Name assigned the set of data retrieved from the
webGroups query element.
This name will be used as the basis for applying sqllike operations between result sets.
version element
The version element sole purpose is to return information about your version of Enesys RS
Data Extension.
The version element takes precedence over any other query elements defined.
The version element has no attributes.
By running such a query (report) from within the report designer, you will only get version
information for the extension installed along your Business Intelligence Development studio. To
get information regarding the extension installed on your server, you will have to deploy the
report on your server and run it from there using the web interface (or any other method you
would like).
resultSet element
The resultSet element lets you specify which result set should be returned to Reporting Services.
Enesys RS Data Extension Manual
Your query may be composed of various intermediate result sets. Obviously you would likely
want to return the result of your last operation to Reporting Services. However, for testing
purposes, it may be useful to return data from an intermediate result set.
69
Most query elements have a tableName attribute for naming to the resulting data. An exception
to this is the sqlOp element that uses the dstTableName child element for naming the resulting
data.
Support
You may obtain support by either using the forum on our web site
(http://www.enesyssoftware.com) or by sending an email to support@enesys.fr.
Please provide as much information as possible to describe your problem when asking for
support:
Enesys RS Data Extension Manual
Server configuration,
Error,
Query used,
…
70
Download PDF