RDL sandboxing

In Microsoft Dataverse, reports run in the sandbox mode. This is done by enabling Report Definition Language (RDL) Sandboxing in SQL Server Reporting Services. The RDL Sandboxing lets you detect and restrict the usage of specific types of resources. As a result, certain features in Power Apps model-driven apps may not be available.

The current RDL Sandboxing configuration settings in Dataverse are described in the following sections in this article.

Limits of the array result length and string result length

The maximum number of items allowed in an array return value for an RDL expression is 2048000. The maximum number of items allowed in a string return value for an RDL expression is 2048000. This enables you to include images and logos with sizes up to 1500 KB, which will be stored in a database with Base64 encoding.

The MaxResourceSize is set to 2000. This lets you include external images in a report up to 1500 KB in size. More information: TechNet: Add an External Image (Report Builder and SSRS)

Allowed types and denied members

The RDL Sandboxing feature enables you to create a list of approved types and a list of denied members. The list of approved types is called an allowlist. The list of denied members that are not permitted in the RDL expressions is called a blocklist.

The following table contains a list of allowed types and denied members available in sandbox mode in Dataverse.

Allowed Types Denied Members
System.Array CreateInstance
Finalize
GetType
MemberwiseClone
Resize
System.DateTime FromBinary
GetDateTimeFormats
GreaterThan
GreaterThanOrEqual
System.Object GetType
MemberwiseClone
ReferenceEquals
System.DbNull Finalize
MemberwiseClone
GetObjectData
GetTypeCode
System.Math BigMul
DivRem
IEEERemainder
E
PI
Pow
System.String
System.TimeSpan Hours
TicksPerDay
TicksPerHour
TicksPerMillisecond
TicksPerMinute
TicksPerSecond
Zero
TryParse
TryParseExact
System.Convert ChangeType
IConvertible.ToBoolean
IConvertible.ToByte
IConvertible.ToChar
IConvertible.ToDateTime
IConvertible.ToDecimal
IConvertible.ToDouble
IConvertible.ToInt16
IConvertible.ToInt32
IConvertible.ToInt64
IConvertible.ToSByte
IConvertible.ToSingle
IConvertible.ToType
IConvertible.ToUInt16
IConvertible.ToUInt32
IConvertible.ToUInt64
System.StringComparer Create
Finalize
System.TimeZone Finalize
GetType
MemberwiseClone
System.TimeZoneInfo FromSerializedString
ToSerializedString
System.Uri Unescape
Parse
Escape
Finalize
System.UriBuilder Finalize
System.Globalization.CultureInfo ClearCachedData
System.Text.RegularExpressions.Match Empty
NextMatch
Result
Synchronized
System.Text.RegularExpressions.Regex CacheSize
CompileToAssembly
GetGroupNames
GetGroupNumbers
GetHashCode
Unescape
UseOptionC
UseOptionR
capnames
caps
capsize
capslist
roptions
pattern
factory
IsMatch
Matches
Iserializable.GetObjectData
InitializeReferences
RightToLeft
Options
Microsoft.VisualBasic.Constants vbAbort
vbAbortRetryIgnore
vbApplicationModal
vbArchive
vbBinaryCompare
vbCancel
vbCritical
vbDefaultButton1
vbDefaultButton2
vbDefaultButton3
vbExclamation
vbFormFeed
vbGet
vbHidden
vbHide
vbHiragana
vbIgnore
vbInformation
vbKatakana
vbLet
vbLinguisticCasing
vbMaximizedFocus
vbMinimizedFocus
vbMinimizedNoFocus
vbMsgBoxHelp
vbMsgBoxRight
vbMsgBoxRtlReading
vbMsgBoxSetForeground
vbNo
vbNormal
vbNormalFocus
vbNormalNoFocus
vbObjectError
vbOK
vbOKCancel
vbOKOnly
vbQuestion
vbReadOnly
vbRetry
vbRetryCancel
vbSet
vbSystem
vbSystemModal
VbTypeName
vbVolume
Zero
Microsoft.VisualBasic.ControlChars Finalize
GetType
MemberwiseClone
Microsoft.VisualBasic.Conversion Err
ErrorToString
Fix
Microsoft.VisualBasic.DateInterval Finalize
GetType
MemberwiseClone
Microsoft.VisualBasic.Financial Finalize
GetType
MemberwiseClone
IRR
NPV
MIRR
Microsoft.VisualBasic.Interaction AppActivate
Beep
CallByName
Command
CreateObject
Environ
Finalize
GetAllSettings
GetObject
GetSetting
GetType
InputBox
MemberwiseClone
MsgBox
SaveSetting
Shell
Choose
Switch
Microsoft.VisualBasic.Information Erl
Err
IsError
IsDBNull
Lbound
Ubound
SystemTypeName
Microsoft.VisualBasic.Strings Finalize
GetType
MemberwiseClone
Lset
Rset
Microsoft.Crm.Reporting.RdlHelper

Common denied members

The following table contains a list of denied members common in allowed types:

Denied member
DateString
Duration
Equality
Equals
Erl
Filter
GetChar
GroupNameFromNumber
GroupNumberFromName
Int
MaxValue
MinValue
Negate
Timer
TimeString
ToBinary
Finalize
GetType
MemberwiseClone