ProfitBase InFront Analytics Configuration
Transcript of ProfitBase InFront Analytics Configuration
ProfitBase InFront Analytics Configuration
September 30, 2009 Version: 1.4
ProfitBase AS Stokkamyrveien 13
N-4313 Sandnes Norway
E-Mail [email protected]
Telephone +47 51964400 Fax + 47 51964401
Configuration
ProfitBase InFront Analytics v 1.4
ProfitBase AS, 2009 Page 2 of 39
Table of Contents Introduction ............................................................................................................................................. 4
Copyright ............................................................................................................................................. 4
InFront Security ....................................................................................................................................... 5
Protocols .............................................................................................................................................. 5
Security modes .................................................................................................................................... 6
Configuration tool ................................................................................................................................... 7
Encryption ........................................................................................................................................... 9
Configuration of the service .................................................................................................................. 11
General .............................................................................................................................................. 11
Services .............................................................................................................................................. 11
FrameworkDB .................................................................................................................................... 12
OlapDB ............................................................................................................................................... 12
Globalization ...................................................................................................................................... 13
PDF..................................................................................................................................................... 14
WebSites ............................................................................................................................................ 14
License ............................................................................................................................................... 15
Common ............................................................................................................................................ 15
ActiveDirectory .................................................................................................................................. 15
Configuration of the web site ................................................................................................................ 16
General .............................................................................................................................................. 16
Services .............................................................................................................................................. 16
WebSite ............................................................................................................................................. 17
Globalization ...................................................................................................................................... 19
Sticky notes........................................................................................................................................ 20
Configuration of the report designer .................................................................................................... 21
General .............................................................................................................................................. 21
Services .............................................................................................................................................. 21
PrintDefaults ...................................................................................................................................... 22
StartupInformation............................................................................................................................ 23
DatePicker configuration ....................................................................................................................... 24
Goals / requirements......................................................................................................................... 24
Extended date formats ...................................................................................................................... 24
Quarters ......................................................................................................................................... 26
ProfitBase AS, 2009 Page 3 of 39
Customize Expression Templates ...................................................................................................... 26
Change format On-The-Fly ................................................................................................................ 28
Set initial start date ........................................................................................................................... 28
Override default datepart names (translation) ................................................................................. 28
Initial Date Rules ................................................................................................................................ 30
TodayIsNewPerioiod...................................................................................................................... 30
Switching between date formats ...................................................................................................... 31
Configure the total date range .......................................................................................................... 33
Displaying days in month correctly ................................................................................................... 33
DatePicker Configuration Quick Reference ........................................................................................... 34
General properties ............................................................................................................................ 34
Expression Templates ........................................................................................................................ 35
Language resources ........................................................................................................................... 36
Output properties.............................................................................................................................. 36
Events ................................................................................................................................................ 37
Advanced WCF security settings ........................................................................................................... 38
Authentication ................................................................................................................................... 38
Protection Levels ............................................................................................................................... 39
ProfitBase AS, 2009 Page 4 of 39
Introduction This document is an overview of the configuration and security settings in the ProfitBase InFront
Analytics (InFront) solution.
Different security settings will be discussed and some recommendations will be presented.
For an overview of the InFront suite and report topics, check out online documentation from
ProfitBase at:
http://pbhubs.profitbase.no/InFrontNow
The general WCF content of this document is based on the “Improving Web Services Security -
Scenarios and Implementation Guidance for WCF” by J.D. Meier, Carlos Farre, Jason Taylor, Prashant
Bansode, Steve Gregersen, Madhu Sundararajan, Rob Boucher © 2008 Microsoft Corporation
The InFront platform is using the Visifire open source data visualization components - powered by
Microsoft® Silverlight™ & WPF. InFront distributes the Visifire components in compliance with the
Visifire commercial license. For more information about the product, visit the Visifire website at
www.visifire.com
Copyright The Windows operation system is a trademark of Microsoft Corporation in USA and other countries.
Microsoft Active Directory is a trademark of Microsoft Corporation in the United States and other
countries.
ProfitBase AS, 2009 Page 5 of 39
InFront Security The security of InFront is based on Windows Communications Foundation (WCF) security. General
security setting for WCF will apply to InFront. Not all WCF security settings are available through the
configuration tool. See the “Advanced WCF security settings” chapter for more information about
advanced security features.
The fundamental security of WCF features:
Transfer security. Responsible for providing message confidentiality, data integrity, and
authentication of communicating parties.
Authorization. Responsible for providing a framework for making authorization decisions.
Transfer security is the means by which WCF secures messages over the network. WCF gives you two
options to implement transfer security: transport security and message security. Transport security
secures the entire communication channel (e.g., by using SSL), while message security secures each
message individually. WCF supports a variety of authentication options including username,
Windows, and certificate authentication.
It is important to remember that the service and the clients must have the same security setup to be
able to communicate. If the service is set up to use Windows security mode, and the client is set up
to use None, the communication will fail. Both parties have to be set up to use Windows security
mode to work properly in this situation.
Protocols InFront supports the use of several protocols for communication between the web site and the
service, and the report designer and the service:
NetTcp
specifies a secure, reliable, optimized binding suitable for cross-machine communication. By
default, it generates a runtime communication stack with transport security and Windows
authentication as default security settings. It uses the Transmission Control Protocol (TCP) for
message delivery, and binary message encoding. Default protocol in InFront.
BasicHttp
Configures and exposes endpoints that is able to communicate with ASP.NET Web Services
(ASMX)–based Web services and clients and other services that conform to the WS-I Basic
Profile 1.1 specification. By default, it has security disabled.
NamedPipe
Defines a binding that is secure, reliable, and optimized for cross-process communication on
the same machine. By default, it generates a run-time communication stack with WS-
ProfitBase AS, 2009 Page 6 of 39
ReliableMessaging for reliability, transport security for transfer security, named pipes for
message delivery, and binary message encoding. It is not secured by default.
To edit this setting, use the Services – ServiceBinding property (to be discussed later).
Security modes After selecting a protocol to use, you need to decide which type of transfer security to use. Transfer
security is also known as security mode. You can provide security on the transport level or the
message level. Each option has its own advantages and disadvantages.
The following security modes are supported in InFront:
None
No security is provided; all information is passed in clear text. Use this setting with caution.
Transport
Mutual authentication and message protection are provided at the transport level. Secures
the entire communication channel (e.g., by using SSL) and therefore only supports point-to-
point communication over a single transport. Most scenarios are best supported by using
transport security. Default security mode in InFront.
Message
Mutual authentication and message protection are provided at the message level. Security
protects each message individually and therefore supports multipoint communication,
multiple transports, or even partial message encryption if necessary.
Both
Mutual authentication and message protection are provided at both the transport and
message levels. This is far more than is necessary for most scenarios.
To edit this setting, use the Services – ServiceBindingSecurity property (to be discussed later).
The setup that comes from a clean installation of InFront is only supporting the following security
combinations:
None Message Transport
BasicHttp Requires HTTPS
Net Tcp
Named Pipe N/A
The default setup is NetTcp communication with Transport security.InFront Security defaults
ProfitBase AS, 2009 Page 7 of 39
By default the InFront is set up to use:
Web site
Protocol: NetTcp
Security mode: Transport
Protection level: EncryptAndSign
Authentication: Windows
Report designer
Protocol: NetTcp
Security mode: Transport
Protection level: EncryptAndSign
Authentication: Windows
Configuration tool All InFront components are installed with a configuration tool to edit the PBLocal.config file of each
component. You will find this configuration tool under the All Programs – ProfitBase – {component}.
It is possible to edit the PBLocal.config files in InFront in a normal text editor, but it is recommended
that you use the configuration tool.
The configuration tool opens up with the PBLocal.config file with the same file location as the
configuration tool itself. So if you create a copy of the configuration tool on a file location with a
PBLocal.config file, the configuration tool will work on that file as well.
Depending on the PBLocal.config file the configuration tool is working on, it will look something like
this:
ProfitBase AS, 2009 Page 8 of 39
You can browse the content of the file, and select an item if you want to change it. To change a
value, press the Edit button after selecting the item to change. A new dialog looking like this opens
up:
After you have changed the value, press the OK button to confirm the change.
ProfitBase AS, 2009 Page 9 of 39
To save you changes press the Save button that will appear in the bottom of the dialog.
Encryption The InFront configuration tool offers the possibility to encrypt items in the config file. Which items to
encrypt is up to the user to decide, depending on the need for security on the installation.
It is recommended that you at least encrypt any passwords defined in the config file.
If you want to encrypt an item, select the item and press the Edit button. A new dialog opens up:
You can now change the value and when the value has been changed, press the “Make secret”
button.
ProfitBase AS, 2009 Page 10 of 39
When you encrypt an item, this item will not show its original value if you select the item again. The
InFront solution will of course use the encrypted value, but the configuration tool cannot decrypt the
value after it has been encrypted. If you want to change an encrypted value, you need to press the
Clear button and enter a new value:
When the clear button is pressed, a warning is presented to you:
ProfitBase AS, 2009 Page 11 of 39
Configuration of the service The service offers the following settings:
General This section does not contain any members in this version.
Services BaseEndPoint
Defines the base part of every service endpoint. For example, 'localhost', or
'www.mydomain.services'. Default value: localhost
BaseEndPointPort
The port used by the HTTP (and WS HTTP) endpoints. Default is port 80.
EndPointsPostfix Provides a postfix for the endpoints. Used to enable more than one service on the same machine. Leave empty if only one service on the machine. If you enter “_1st” as the postfix, InFront will start services named:
o http://localhost/ProfitBase.InFront.Analytics.Services.CubeMetaServices_1st
EndPoints
By setting the endpoints you can control wether the endpoints should be enabled or not.
Default is True. If set to False this protocol will not be used when opening the endpoints.
This section has replaced the BasicHttpBindingSecurity, NetTcpBindingSecurity and
NamedPipeBindingSecurity sections in earlier versions.
o BasicHttp
Enabled
Indicates wether this endpoint protocol should be enabled or not. Default is
True. If set to False this protocol will not be opened.
ProfitBase AS, 2009 Page 12 of 39
BindingSecurity
Set up the security for the BasicHttp protocol. Valid values are None.
o NetTcp
Enabled
Indicates wether this endpoint protocol should be enabled or not. Default is
True. If set to False this protocol will not be opened.
BindingSecurity
Set up the security for the BasicHttp protocol. Valid values are None,
Message and Transport.
o NamedPipe
Enabled Indicates wether this endpoint protocol should be enabled or not. Default is True. If set to False this protocol will not be opened.
BindingSecurity Set up the security for the BasicHttp protocol. Valid values are None and Transport.
FrameworkDB The FrameworkDB settings control the connection to the InFront Framework database. The
Framework database stores report definitions and system data for the InFront Solution. The settings
for this section comply with normal connection string settings for Microsoft SQL Server.
Data Source
Name of the datasource/server instance for the InStore Analytics framework database
Initial Catalog.
Name of the InFront framework database. The default value for this setting during setup is
pb_isa_framework, but the name of the database is not locked and can be changed.
Persist Security Info
Specifies whether the data source can persist sensitive authentication information such as a
password. Default value: TRUE
Integrated Security
Indicates whether the data source uses integrated security to connect. Default value: SSPI
OlapDB The OlapDB settings control the connection to the OLAP database that is the data source for the
reports in the solution. The settings for this section comply with normal connection string settings for
Microsoft SQL Server Analysis Services.
Data Source
Name of the datasource/server instance for the OLAP database.
ProfitBase AS, 2009 Page 13 of 39
Initial Catalog
Name of the OLAP database you want to run your reports against.
Persist Security Info
Specifies whether the data source can persist sensitive authentication information such as a
password. Default value: TRUE
Integrated Security
Indicates whether the data source uses integrated security to connect. Default value: SSPI
Connect Timeout
sets the connection timeout.
Provider
this setting controls the provider version of the OLAP database connection. Default value:
MSOLAP.3.
Valid values are:
o MSOLAP.2 for SQLServer 2000 o MSOLAP.3 for SQLServer 2005 o MSOLAP.4 for SQLServer 2008
Globalization The Globalization settings control the supported languages of the solution. Languages are controlled
on the service and on the website.
To add more supported languages, add a new language code in a comma separated list. The language
code you add must also exist as a row in the Languages table of the InFront Framework database. If
the row does not exist, a database error will occur when the report designer is attempting to use the
new language code.
Remember to always keep the SupportedLanguages and SupportedLanguagesCaption settings in
sync.
If you remove a language, the texts of that language will not be removed from the database. If you
add the same language code later, the texts for that language will show up.
SupportedLanguages
Comma-separated list of supported languages. The first language is default. Default value:
EN,NO
SupportedLanguagesCaption.
Comma-separated list of supported languages captions / texts. These texts will be used as
ProfitBase AS, 2009 Page 14 of 39
captions in the report designer. The first language is default. Default value:
English,Norwegian.
PDF The PDF settings control the behavior of some print options. Several other print options are available
in the PBLocal.config file of the report designer.
PrintLogoBaseURL
Complete URL for the default logo to use in PDF reports. In this version of InFront all reports
will share one and only one print logo. The value needs to be a valid URL.
WebSites When designing and working with the reports in the Report Designer, one will normally want to
review the final result in a web browser. The IIS (Internet Information Service) uses caching, to speed
up the processing of data. When a report has been read to the cache in IIS, it stays there until the
cache is flushed. When a report designer changes a report in the Report Designer, and publishes the
changes, these changes will not be visible in the browser if the report already exists in the IIS cache.
Therefore we need to flush the cache to make the changes visible. To do so, a simple F5 refresh is not
adequate. We need to actually perform a flush of the IIS cache.
The easiest way to handle the cache problem while working with reports, is to open the InFront web
site in Designer Preview Mode (DPM), by using the address
http://YourHostMachine/InFront?DPM=true. By adding the ?DPM=true command a F5 refresh will
actually flush the cache.
You can also open the http://YourHostMachine/InFront/Refresh.aspx and press the Refresh image on
the website. By doing so the cache is flushed.
To help the report designers with these operations, there is a menu in the Report Designer on Tools -
WebSites. This menu will be empty unless one or more websites are registered on the service. The
websites should be registered with the name of the server, and the website
“YourHostMachine/InFront”. The designers can open their websites via this menu, and the websites
will open by default in DPM mode, making a simple F5 adequate to flush the cache.
You can add as many websites as you want. Your default PBLocal.config file contains five web sites
elements ready to be set via the Configurator. If you need to register more than five websites, you
have to manually add entries by opening the PBLocal.config file in a file editor, and add more web
sites entries there.
ProfitBase AS, 2009 Page 15 of 39
License The license section hold license information for the serivce. You should never change any of these
settings in order to avoid problems with your service license. Changing any of these properties may
cause problems when the license is validated.
LicenseID: The ID of the current license.
ActivationKey: The unique activation key returned from the activation for the service license.
LHP: The LHP (License Holder Profile) the name of the license owner.
LastRun: A timestamp for the last execution of the license reporting. InFront sends license
information to a Profitbase webservice once every 24 hours.
Common The Common section holds miscellaneous properties used by the InFront Designer and the InFront
website.
GridColumnHeaderBaseWidth
Sets the base width of the column headings of the grid in the web site. The base width is
used to calculate the width of the column heading based on the width property of each
column. The HeaderWidths Extra Small, Small, Medium, Large and Extra Large use the
GridColumnHeaderBaseWidth to calculate their sizes.
Default value: 100
GridRowHeaderBaseWidth
Sets the base width of the row headings (first columns on the left) of the grid in the web site.
The base width is uses to calculate the width of the row heading based on the width property
of each axis. The HeaderWidths Extra Small, Small, Medium, Large and Extra Large use the
GridColumnHeaderBaseWidth to calculate their sizes.
Default value: 200
The HeaderWidths replaces the dynamical widths used in the previous versions of the website.
ActiveDirectory LDAPString
InFront uses Active Directory (AD) to restrict access to the reports. Therefore the InFront
service needs to communicate with AD to get the AD groups available on the domain. By
default InFront accesses the AD structure at its top level.
In some environments the access to the AD needs to be set up with an LDAP string to be able
to get access to the correct part of the AD structure. This is typically in complex AD
structures as often seen in hosting environments.
ProfitBase AS, 2009 Page 16 of 39
To be able to communicate with AD in such environments, you can now provide an LDAP
string InFront will use when connecting to AD. You can set this string in the service config file
in the ActiveDirectory section and the LDAPString setting. The default for this setting is an
empty string.
An example of an LDAP string used by InFront:
LDAP://domain.yourcompany.com/OU=Customers,OU=199STE,OU=ASP,DC=EURO,
DC=ThisRoot,DC=Com
Configuration of the web site The configuration of the web site offers the following settings:
General This section contains general settings for the web site.
UseEffectiveUserName
This setting controls whether to use the EffectiveUser parameter in the ConnectionString. If
used the client credentials of the current user is used to identify the user on the service
layer. It is being passed on to the WCF Service, which then uses it to make a connection to
the database. This feature requires Kerberos, and Windows Server 2003. If requirements not
met, the connection will fail! Default value: False.
Services These settings control the communication with the InFront service. This service may run on the same
or different machine as the web site.
BaseEndPoint
Defines the base part of every service endpoint. For example, 'localhost', or
'www.mydomain.services'.
BaseEndPointPort
holds the port of the service address. Optional. Default value: 80.
EndPointsPostfix Provides a postfix for the endpoints. Used to enable more than one service on the same service machine. Leave empty if only one service on the machine you are connecting to.
ServiceBinding
Set up the communication protocol to the service. Valid values are BasicHttp, NetTcp,
NamedPipe and BasicHttp. Default value: NetTcp.
ProfitBase AS, 2009 Page 17 of 39
ServiceBindingSecurity
Set up the service communication security. Valid values are None, Message and Transport.
Default value: Transport
WebSite The WebSite settings control default values controlling the behavior of the web site.
Logo
This is the top left logo in the web site.
o ImageURL
URL (relative from the 'Images' folder) to the logo image file used in the web pages.
You need to provide a logo image file on every new web site installation (not on
upgrades). Default value: None.
o LinkURL
This property lets you add a link on the logo image. This link is activated when the
user clicks the logo.
o NavigationType
The navigation type controls the behavior of the link when the user clicks the logo.
Describes how the link should be opened. Available choices are 'Replace',
'ModalWindow', 'NewBrowser'
DefaultMemberFilterID
The ReportID of the filter to be used as a base for the DefaultMemberPicker. If left empty,
the DefaultMemberPicker will not be shown. In earlier versions the DefaultMemberPicker
was a dimension from the cube. In this version the DefaultMemberPicker has to be a valid
InFront Filter report.
CustomLinks
Custom links are one or more links placed on top of the web site. These are typically links to
intranet sites, portals etc. To enable the CustomLinks functionality, set value of this element
to 'Enabled'. Otherwise, set to 'Disabled' or leave empty.
You can have up to 10 links. Even if you add more than 10 links, no more than 10 links will be
processed. On every link you need to provide information about:
o Disabled or enabled.
o Caption
The caption visible on the web site. Should give a description about the link target,
but remember to keep it short due to the limited space available for custom links.
Use tooltip to give more information if necessary.
o Tooltip
Text being displayed on mouse-over. Leave blank for no tooltip.
o URL
The complete address for the link. URL parameters and anchors may also be used.
ProfitBase AS, 2009 Page 18 of 39
o NavigationType
The navigation type controls the behavior of the link when the user clicks the logo.
Describes how the link should be opened. Available choices are 'Replace',
'ModalWindow', 'NewBrowser'
UseJsonCompression
Switching the use of JSON-compression on/off. When this is set to 'True', all JSON-responses
(meaning, all AJAX-background service calls from the client to the server) is compressed
using either GZIP or DEFLATE (determined by the browser capabilities). This will typically
reduce the size of each AJAX-call by over 50%, BUT WILL ADD MORE WORK TO THE WEB-
SERVER. Therefore, this must be evaluated per installation. Please refer to the InFront
Analytics documentation for more information.
UseVolocityCache
Use this to switch between the internal IIS cache engine and the Velocity distributed cache
environment. To use Velocity, a Velocity environment must be installed and configured first.
Default value: False
ExcelExport
Global switch for turning export to Excel on/off ('Enabled'/'Disabled').
Default value: Disabled
DatePicker
The DatePicker is the date control in the upper right corner of the web site. This control lets
the users select the dates they want to use as filter on their reports. From version 1.4 this
control can be configured in many ways according to the cubes time dimensions and other
local factors.
Configuring the DatePicker is discussed in detail at the end of this document.
o InitialDateOffset
Sets the number of days to ADD to the current date to determine the initial date.
(Default is -1)
o StartYearOffset
Sets the number of years to ADD to the current year to determine the starting point
of the available date-range (default is -10).
o EndYearOffset
Sets the number of years to ADD to the current year to determine the ending point
of the available date-range (default is 1).
o InitialDateRule
Sets the initial-date rule. The only value currently supported in v1.4 is
'TodayIsNewPeriod. Please refer to the details regarding DatePicker at the end of this
ProfitBase AS, 2009 Page 19 of 39
document for more information.
o SwitchableFormats
Sets the formats that can be selected by the user. This is a semicolon-separated list
of FormatCodes. (Default is 'Y_M_D;Y_W_WD').
o ExpressionTemplates
Use these elements to override the ExpressionTemplates for the dateformats. The
ExpressionTemplates are used to make the DatePicker generate correct MDX-
statements for your cubes TIME dimensions. Please refer to the documentation for
further details.
o Y
ExpressionTemplate for the Y format
Default value:[Time].[YMD].&[{yyyy}]
o Y_M
ExpressionTemplate for the Y_M format.
Default value=[Time].[YMD].[Month].&[{yyyy}]&[{MM}]
o Y_M_D
ExpressionTemplate for the Y_M_D format.
Default value=[Time].[YMD].[Day].&[{yyyy}]&[{MM}]&[{dd}]
o Y_W
ExpressionTemplate for the Y_W format.
Default value=[Time].[YWD].[Week].&[{yyyy}]&[{WW}]
o Y_W_WD
ExpressionTemplate for the Y_W_WD format.
Default value=[Time].[YWD].[Day].&[{yyyy}]&[{MM}]&[{dd}]
o Y_Q
ExpressionTemplate for the Y_Q format.
Default value=[Time].[YQ].&[{yyyy}]&[{Q}]
o Y_Q_M
ExpressionTemplate for the Y_Q_M format.
Default value
=[Time].[YQM].[Quarter].[Month].&[{yyyy}]&[{Q}]&[{MM}]
o Y_Q_M_D
ExpressionTemplate for the Y_Q_M_D format.
Default value
=[Time].[YQMD].[Quarter].[Month].[Day].&[{yyyy}]&[{Q}]&[{
MM}]&[{dd}]]
o Y_DDD
ExpressionTemplate for the Y_DDD format.
Default value=[Time].[YD].&[{yyyy}]&[{YD}]
Globalization The Globalization settings control the languages available in the InFront solution. Languages are
controlled on the service and on the website.
SupportedLanguages
The LanguageIDs setting describes which text resources to retrieve from the framework
database. This is used to be able to limit the amount of text needed to be cached. Do only set
those language needed for the server instance. The value is a comma-separated list of
language ID's, where the first value will be considered as default (for example if using
ProfitBase AS, 2009 Page 20 of 39
anonymous logon). Default value: EN
SupportedLanguagesCaption
Comma-separated list of supported languages caption. The first language is default.
Remember to always keep the SupprtedLanguages and SupportedLanguagesCaption settings
in sync. Default value: English
Sticky notes StickyNote is a system for showing temporary messages at the top of the web-pages. Typical use is
for internal messages or critical system messages for users, for example warning users of
forthcoming downtime.
To show a StickyNote, make sure a text file with the name of "StickyNote.txt" exists in the root-folder
of the web-site (ex: c:\Inetpub\wwwroot\InFront\StickyNote.txt).
The contents of this text file will be displayed at the very top of the web page (both MainStart.aspx
and Main.aspx).
The visuals of the StickyNote, including the physical placement of the element, are controlled by CSS
element "StickyNote" in Default.css.
See the example below that shows a StickyNote.
If custom links are in use when a sticky note is defined, the custom links are moved below the main
header in the web page, and placed close to the buttons for accessing InFront functions.
ProfitBase AS, 2009 Page 21 of 39
Configuration of the report designer The report designer configuration offers the following settings:
General The General settings control the behavior of the designer.
PreferredLanguage
holds the users preferred language for the report designer. The designer offers English as its
only application language. But the texts of the reports can be translated to all the supported
languages defined on the service. The PreferredLanguage controls the language to be used
when the reports are shown in the designer. To add a new supported language for a report,
the new language need to be added to the collection of supported languages on the service.
The PreferredLanguage property can contain only one language.
Default value=EN
Style
InFront Designer offers two different looks/styles on the graphical interface. You can set the
style option via the Options menu within the Designer. When you change the style you need
to restart the Designer for the change to have an effect.
The valid values for Style are:
o Classic
o Bright
Services These settings control the communication with the InFront service. This service may run on the same
or different machine as the designer.
BaseEndPoint
Defines the base part of every service endpoint. For example, 'localhost', or
'www.mydomain.services'. Can also be changed in the Tools – Options menu of the designer.
BaseEndPointPort
holds the port of the service address. Optional. Default value: (empty – will use default port
89).
EndPointsPostfix
Provides a postfix for the endpoints. Used to enable more than one service on the same
service machine. Leave empty if only one service on the machine you are connecting to.
ServiceBinding
Set up the communication protocol to the service. Valid values are BasicHttp, NetTcp,
NamedPipe and BasicHttp. Default value: NetTcp.
ProfitBase AS, 2009 Page 22 of 39
ServiceBindingSecurity
Set up the service communication security. Valid values are None, Message and Transport.
Default value: Transport
UsedBaseEndPoints
holds a list of all the service addresses that has been used in this installation of the report
designer. This is done to make it easier for the user to switch between services.
PrintDefaults All reports can be exported to PDF for printing or saving of copies. The defaults of the print layout
can be controlled via these settings.
PageSize
sets the default paper size when printing. Default value: A4.
Orientation
sets the default orientation when printing. Default value: Landscape
Margins
sets the default margins when printing. Default value: 10
CellPadding
sets the default cell padding when printing. Default value: 2
ReportFont
sets the default overall report font when printing. Default value: Helvetica
FontSize
sets the default overall report font size when printing. Default value: 8
TitleFonts
sets the default font of titles when printing. Default value: Helvetica
TitleFontSize
sets the default font size of titles when printing. Default value: 20
FooterFontSize
sets the default footer font size when printing. Default value: 8
TextBackgroundColor
sets the default text background when printing. Default value: White
ImageHeight
sets the default image height when printing. Default value: 50
ImageWidth
sets the default image width when printing. Default value: 50
HeaderRotation
sets the default header rotation when printing. Default value: 0
Show grid lines
should the grid lines of the printed table be visible or not. Default value: False
Show footer
should the footer of the report be visible or not. Default value: True
ProfitBase AS, 2009 Page 23 of 39
StartupInformation This setting is used to control the first time startup of the InFront designer.
HasInFrontDesignerBeenStarted
a Boolean value set to true if the designer has been started. False if not. This is used to
present a first time startup dialog to the user. After this dialog has been presented, this
value is set to true and the first time startup dialog is not shown to the user any more.
ProfitBase AS, 2009 Page 24 of 39
DatePicker configuration The DatePicker control in the InFront Analytics web site is a key component, and has been carefully
designed to make the end users more efficient while browsing reports and KPIs.
It differs quite a bit from an ordinary date / calendar control, and is targeted specifically towards
multidimensional reporting. The first version of the DatePicker was somewhat rigid and locket to
specific date formats (Year-Month-Day and Year-Week-Weekday). The date-dimension names was
hardcoded ([TIME].[YEAR]….), and therefore demanded a specific naming convention in the
customers cubes. It was written in JavaScript as an ASP.NET Ajax control.
Goals / requirements The goals of DatePicker v2 has been the following (and in prioritized order):
Goals of v2
1 To be able to serve a broader audience (for instance, financial cubes with other types of date
dimensions.
Delivering many new date formats out of the box.
Be easily extendable with new date formats when needed. (“What if someone needs Decade-Month-Seconds?”)
2 To be able to serve cubes with date dimension names other than standard PBMS-names
(ARTS).
3 To be able to let each report decide which date format to be used on the report.
4 To be able to configure the starting-date (was originally hardcoded to ‘yesterday’).
5 To be able to localize the control (translation).
In addition, there were some additional requirements regarding the technical implementation:
I. The new version had to be written in Silverlight (3.0). This meant that nothing from DatePicker v1 could be reused.
II. The new version had to work seamlessly with the existing ASP.NET Ajax version of InFront Analytics. This meant implementing as a Silverlight UserControl that is accessible from JavaScript.
III. The new version must be easily extendable for new features.
Extended date formats (Meeting goal 1)
The DatePicker now supports the following date formats out-of-the-box:
ProfitBase AS, 2009 Page 25 of 39
Available Date Formats
Y : Year
YM : Year-Month
YMD : Year-Month-Day
YW : Year-Week
YWWD : Year-Week-Weekday
YQ : Year-Quarter
YQM : Year – Quarter - Month
YQMD : Year – Quarter – Month – Day
YDDD : Year – Day
ProfitBase AS, 2009 Page 26 of 39
This list is easily extendable. As for now, the Year element is the highest level, and is always present
(and must be selected) in each of the formats.
The control will enforce logical date-rules, meaning that you cannot for instance select a Year and a
Weekday without also selecting a Week. The control keeps an internal date at all times, and if this
date cannot be resolved, the date part cannot be selected. (As would have been for a Year-Weekday
selection; There are no way to figure out the underlying date for such a selection, making navigation
(next/previous) impossible.)
Quarters
Quarters are calculated periods of the year, and each quarter starts with a specific date, and lasts for
3 months. The DatePicker uses the following values when calculating the quarter.
Quarter StartDate EndDate InternalDate
Q1 January 1 March 31 March 31
Q2 April 1 June 30 June 30
Q3 July 1 September 30 September 30
Q4 October 1 December 31 December 31
The “InternalDate” column denotes which date that is used internally by the DatePicker when the
quarter is selected. This is important when switching between formats, because the DatePicker will
always rely on its internal date when calculating the different date parts.
Customize Expression Templates (Meeting goal 2)
The DatePicker has a property called DateExpression. This property will always contain the current
MDX representation of the selected date (for example
“[Time].[YMD].[Day].&[2009]&[07]&[30]”). The look of this expression (or the “template”) was
in v1 hardcoded to the ARTS standards. Unfortunately, not all cubes in the world meet this standard.
The DatePicker v2 therefore opens the possibility to edit these templates to fit nearly every possible
dimension naming and structuring convention. The way this works, is that all date formats (listed in
the previous chapter) has an Expression Template attached to it. By default, these should comply
with the ARTS standard (not quite there yet…), but they can easily be overridden. The following list
shows the default templates for each format:
Default Expression Templates
Y [Time].[YMD].&[{yyyy}]
YM [Time].[YMD].[Month].&[{yyyy}]&[{MM}]
ProfitBase AS, 2009 Page 27 of 39
YMD [Time].[YMD].[Day].&[{yyyy}]&[{MM}]&[{dd}]
YW [Time].[YWD].[Day].&[{yyyy}]&[{WW}]&[{WD}]
YWWD [Time].[YWD].[Week].&[{Wyyyy}]&[{WW}]
YQ [Time].[YQ].&[{yyyy}]&[{Q}]
YQM [Time].[YQM].[Quarter].[Month].&[{yyyy}]&[{Q}]&[{MM}]
YQMD [Time].[YQMD].[Quarter].[Month].[Day].&[{yyyy}]&[{Q}]&[{MM}]&[{dd}]]
YDDD [Time].[YD].&[{yyyy}]&[{YD}]
The following table lists the different date elements currently supported (will probably be further
extended later):
Available Date Elements
Use these values when customizing the MDX expression templates.
All dateparts are case sensitive!
Year {yyyy} Always 4 digits (0000 - 9999)
Month {MM} Always 2 digits (01 - 12)
Day (of month) {dd} Always 2 digits (01 - 31)
Week (of year) {WW} Always 2 digits (01 - 53)
Weekday {WD} Always 1 digit (1 - 7)
Day of year {YD} Always 3 digits (001 - 366)
Quarter {Q} Always 1 digit (1 - 4)
Hour (24-hour clock) {HH} Always 2 digit (00 - 23)
Hour (12-hour clock) {hh} Always 2 digit (00 - 11)
Templates will typically be customized once per customer installation, and there will be a section in
the PBLocal.config file where these can be edited.
In addition, these templates can be overridden on a per-report basis. The control itself is capable of
setting these values on the fly, without reloading the control, making it very flexible.
ProfitBase AS, 2009 Page 28 of 39
Change format On-The-Fly (Meeting goal 3)
As for the Expression Templates, the dateformat can also be changed on the fly, making the “Each-
Report-Decides-Its-Own-Date-Format-Scenario” very simple. The power of this feature is best seen in
action on the test-site (http://pbhubs.profitbase.no/InFrontTestSite/TestPages/DatePicker.htm).
(The next version of the ReportDesigner will probably implement some kind of “preferable date
format” setting on each report.)
Set initial start date (Meeting goal 4)
The initial start date can now easily be set as an offset (+/- number of days) to the current date by
using the property InitialDateOffset. This value can also be set on-the-fly, allowing (in principal) each
report to have its own preferred start-date. (Default are InitialDateOffset = -1 (yesterday))
Override default datepart names (translation) (Meeting goal 5, to some extent)
The captions used in the control (denoting the different date parts) can now be overridden.
Currently, this must be done manually, and the language resources should be stored in the
Framework database.
The following captions can currently be overridden by calling the function
“SetLanguageResource(key, value)”.
Language keys
Key Default
Language_Year Year
Language_Month Month
Language_Day Day
Language_Week Week
Language_WeekDay Weekday
ProfitBase AS, 2009 Page 29 of 39
Language_Quarter Quarter
Language_Hour Hour
In later releases, the actual month and day-names will / should follow the preferred locale set in the
user’s browser.
FirstDayOfWeek
This property sets which weekday that is to be considered the first day of the week. In Europe, this is
'Monday', and in the US this is 'Sunday'. Supported values are 'Monday' and 'Sunday'. Default is
'Monday'
This setting also control the order of the days in the ”Weekday-flyout”:
FirstDayOfWeek = Sunday:
FirstDayOfWeek = Monday:
WeekDayNumbersStartValue
This property sets the base for the week day numbering. Typically, the day numbering in a PBMS
cube is from 1 to 7, but could theoretically be a different numbering scheme. Default is '1'.
This will only affect the “MDX DateExpression”:
ProfitBase AS, 2009 Page 30 of 39
o WeekDayNumbersStartValue = 0 :
o WeekDayNumbersStartValue = 1:
Initial Date Rules Sometimes, special dates require special actions. For instance, in the retail world, if today’s date is a
Monday and the current date format is YWWD, then the whole previous week should be selected by
default. This is just one example of an InitialDateRule (and in the first version, the only rule). The rule
will override the InitialDateOffset property if the today-criteria are met.
TodayIsNewPerioiod
When this rule is activated, the DatePicker will investigate today’s date and see if it fits into any of
the following scenarios (based on the stated formats):
Y : o Criteria: None o Consequence: None
YM : o Criteria: Is today’s date the first in a new year? o Consequence: Initial date set to the whole previous year.
YMD: o Criteria: Is today’s date the first in a month? o Consequence: Initial date set to whole previous month.
YW: o Criteria: Is today’s date the first in a new year? o Consequence: Initial date set to the whole previous year.
YWWD: o Criteria: Is today’s date the first in a new week? o Consequence: Initial date set to the whole previous week.
ProfitBase AS, 2009 Page 31 of 39
YQ: o Criteria: Is today’s date the first in a new year? o Consequence: Initial date set to the whole previous year.
YQM: o Criteria: Is today’s date the first in a new quarter (see the definition of quarters)? o Consequence: Initial date set to the whole previous quarter.
YQMD: o Criteria: Is today’s date the first in a month? o Consequence: Initial date set to whole previous month.
YDDD: o Criteria: Is today’s date the first in a new year? o Consequence: Initial date set to the whole previous year.
Examples:
1) Today’s date is january 1. 2010. The InitialFormat is YMD:
2) Today’s date is july 1. 2009 (the first day of Q3). Initial date format is YQM:
3) Today’s date is august 10. 2009. Initial date format is YWWD:
Switching between date formats This is a continuing of the old functionality that made it possible to switch between the YMD and the
YWWD formats (by being “forced” to select either month or week when the Week/Month flyout
button was pressed):
ProfitBase AS, 2009 Page 32 of 39
This, however, is no longer satisfying because of the new flexible nature of the control. Therefore, a
new mechanism for switching (and for choosing which formats that can be switched between) had to
be implemented.
A new property named “SwitchableFormats” controls which formats that should participate in the
“switching-loop”. This is a semicolon separated list of date format codes. Default value is
“YMD;YWWD”.
Each format has its own “date format switcher”. This is where the user must click to make the date
format switch to the next format in line.
The following shows a list over which date part that functions as the switch for the different formats.
Y : Year
YM : Month
YMD : Month
YW : Week
YWWD : Week
YQ : Quarter
YQM : Quarter
YQMD : Quarter
The user interface will show this as a slightly raised caption (clickable) for the date part.
If only one (or zero) date formats are specified in this property (meaning that the user cannot switch
between formats, but must only use the initial format). No format selector switch will be shown.
ProfitBase AS, 2009 Page 33 of 39
Examples:
Configure the total date range
Two new properties (StartYearOffset and EndYearOffset) can now be used to determine the
allowable range for the DatePicker. For instance, one could limit the range to be between the years
of 1997 and 2003. The values are offsets (+/- number of years) from the current year, allowing them
to “slide” as time goes by. (Default values are StartYearOffset = -10, EndYearOffset = 1.)
Displaying days in month correctly
By using Silverlight instead of JavaScript, the possibility to handle calendars more smoothly has
appeared. Therefore, the “days-of-month” flyout now shows the correct number of days in the
selected month. Also, the look of the days is similar to the look in a normal calendar (starting with
Monday (at least for Norwegian locale) as the first cell in the grid). This makes it more easy for the
user to see which kind of weekday each day is (maybe, in later releases, we will add day names on
the top row, and/or as a tooltip when hovering the days).
ProfitBase AS, 2009 Page 34 of 39
DatePicker Configuration Quick Reference
General properties Property Description Default value Possible values DateFormat The date format first
selected when the control
loads up.
YMD Y, YM, YMD, YW,
YWWD, YQ, YQM,
YQMD, YDDD
StartYearOffset The number of years to
ADD to the current year to
determine the starting
point of the available date-
range.
-10 Integer values that
produces a valid year
when added to the
current date.
EndYearOffset The number of years to
ADD to the current year to
determine the ending point
of the available date-
range.
1 Integer values that
produces a valid year
when added to the
current date.
InitialDateOffset The number of DAYS to
ADD to the current date
when calculating the initial
date for the DatePicker.
(This could be overrun by
the InitialDateRule
property)
-1 Integer values that
produces a valid year
when used to add to
the current date.
InitialDateRule The name of the rule to
use when deciding on the
starting point (the
currently selected date
part) for the DatePicker.
TodayIsNewPeriod
or
[empty]
SwitchableFormats A semicolon separated list
of date formats that
denotes which formats that
are available for
switching.
YMD;YWWD Any semicolon
separated list of valid
date formats.
ProfitBase AS, 2009 Page 35 of 39
Expression Templates
Default Expression Templates
Y [Time].[YMD].&[{yyyy}]
YM [Time].[YMD].[Month].&[{yyyy}]&[{MM}]
YMD [Time].[YMD].[Day].&[{yyyy}]&[{MM}]&[{dd}]
YW [Time].[YWD].[Day].&[{yyyy}]&[{WW}]&[{WD}]
YWWD [Time].[YWD].[Week].&[{Wyyyy}]&[{WW}]
YQ [Time].[YQ].&[{yyyy}]&[{Q}]
YQM [Time].[YQM].[Quarter].[Month].&[{yyyy}]&[{Q}]&[{MM}]
YQMD [Time].[YQMD].[Quarter].[Month].[Day].&[{yyyy}]&[{Q}]&[{MM}]&[{dd}]]
YDDD [Time].[YD].&[{yyyy}]&[{YD}]
The following table lists the different date elements currently supported (will probably be further
extended later):
Available Date Elements
Use these values when customizing the MDX expression templates.
All dateparts are case sensitive!
Year {yyyy} Always 4 digits (0000 - 9999)
Month {MM} Always 2 digits (01 - 12)
Day (of month) {dd} Always 2 digits (01 - 31)
Week (of year) {WW} Always 2 digits (01 - 53)
Weekday {WD} Always 1 digit (1 - 7)
Day of year {YD} Always 3 digits (001 - 366)
Quarter {Q} Always 1 digit (1 - 4)
Hour (24-hour clock) {HH} Always 2 digit (00 - 23)
Hour (12-hour clock) {hh} Always 2 digit (00 - 11)
ProfitBase AS, 2009 Page 36 of 39
Language resources
Language resources are for now set by calling the SetLanguageResource(key, value) function. Later,
these values will come from either the Framework database, or the pbLocal.config file.
Key Default
Language_Year Year
Language_Month Month
Language_Day Day
Language_Week Week
Language_WeekDay Weekday
Language_Quarter Quarter
Language_Hour Hour
Output properties These are read-only properties exposed by the DatePicker.
Property Description DateExpression The MDX statement for the currently selected date.
CurrentDate The DatePicker keeps at all times an internal date (used
for navigating and calculating date expressions). This
property will give you at all times the current internal date
for the selected date parts.
EffectiveDateFormat This is the date format that is currently in use. This will
differ from the DateFormat when the user selects a
datepart other than the lowest. For example, if the
DateFormat property is set to “YMD” and the user clicks
on the month (M) number, the EffectiveDateFormat will
be Y(ear) + M(onth) = “YM”. If the user clicks on the
Y(ear) number, the EffectiveDateFormat will be “Y”. This
is important because the EffectiveDateFormat will decide
which ExpressionTemplate that will be used to generate
the MDX DateExpression.
DatePartCount Gives the number of date parts in the currently selected
format. This is used to calculate the size (approximately)
of the Silverlight container in the HTML page.
ProfitBase AS, 2009 Page 37 of 39
Events The DatePicker exposes the following events:
Event Description DateChanged Fires whenever the date changes (either by clicking the
next/previous buttons, or by clicking on the date part (for
example to select a whole week).
DateChangedSoft Fires when the date changes, but may not be the final date
wanted by the user. For example, when the user selects a
week number from the flyout, he might want to select a
week day in addition, and hence not want the report to be
re-queried before this day is selected. The host of the
control (the web-page) will typically display a visual clue
(for example an “Apply”-button), so that the user herself
can choose when to effectuate the date change.
DateFormatChanged Fires whenever the visible date format is changed. (Could
be by switching between formats, or by setting the
DateFormat property. The host of the DatePicker uses this
to recalculate the container of the DatePicker.
ProfitBase AS, 2009 Page 38 of 39
Advanced WCF security settings The WCF security settings configurable in the configuration tool of InFront offer a limited set of
options. There are several other WCF security settings available, but not directly configurable in
InFront. You can still change these setting by editing the config file of the web site or report designer.
NOTE!
Keep in mind that these config files will be overwritten when the application is updated. The only
configuration file not affected by a program update, is the PBLocal.config file.
Authentication The follow authentication options are available in WCF when using transport security mode:
None.
When using this option, the WCF service does not authenticate the callers. This is not the
recommended option from a security perspective – avoid using this option wherever
possible.
Basic.
This option is available with the HTTP protocol only. The client is authenticated using the
username and password against Active Directory. The clients credentials are transported
using the Base64 encode string, which is literally like a clear string and therefore is not the
Improving Web communication.
NTLM.
This option is available with the HTTP protocol only. The client is authenticated using a
challenge-response scheme against Windows accounts. The NTLM option is well suited for a
workgroup environment. NTLM authentication is more secure than either Digest or Basic
authentication. The service is authenticated using the Windows credentials of the process
identity or using an SSL certificate if you are using the HTTP protocol.
Windows.
The Windows option tells the WCF service to use Kerberos when in a domain, or NTLM when
deployed in a workgroup environment. This option uses a Windows token presented by the
caller to authenticate against Active Directory. This is the most secure option compared to
Basic, Digest, or NTLM authentication. The service is authenticated using the Windows
credentials of the process identity or an SSL certificate if you are using the HTTP protocol.
Default value in InFront.
Certificate.
When using this option, the caller presents an X.509 client certificate that the WCF service
either validates with peer trust or trusts based on the issuer of the certificate. This option
should be used when Windows authentication is not possible, as in the case of business-to-
business (B2B) scenarios. The service is authenticated with the service certificate or by using
an SSL certificate if you are using the HTTP protocol.
The follow authentication options are available when using message security mode:
None.
When using this option, the WCF service does not authenticate the callers. This is not the
ProfitBase AS, 2009 Page 39 of 39
recommended option from a security perspective – avoid using this option wherever
possible.
Windows.
When using this option, the WCF service uses Kerberos when in a domain, or NTLM when
deployed in a workgroup environment. This option uses the Windows token presented by
the caller in order to authenticate against the Active Directory. The service is authenticated
using the Windows credentials of the process identity. Default value in InFront.
Username.
When using this option, the caller provides the username and password to the service. The
service can authenticate against Windows, use membership providers such as
SqlMembershipProvider, or use a custom validator to validate against the custom store. You
should choose this option only when Windows authentication is not possible. The service is
authenticated with a service certificate.
Certificate.
When using this option, the caller presents an X.509 client certificate; the WCF service looks
up the certificate information on the host side and either validates it (peer trust) or trusts the
issuer (chain trust) of the client certificate. This option should be used when Windows
authentication is not possible, or in B2B scenarios. Service is authenticated with a service
certificate.
Issue token.
When using this option, the client and service depend on a secure token service (STS) to
issue tokens that the client and service trusts. Microsoft Windows CardSpace™ is a typical
example of an STS.
This security setting is not configurable in the configuration tool.
Protection Levels In addition to the above settings, you can also set a protection level on the messages being
transported to and from the service. InFront supports the following protection levels:
None
Disables message protection.
Sign
Signs but does not encrypt the message; should be used when data integrity is important.
EncryptAndSign
Signs and encrypts the message. Default value in InFront.
If you are using message security, you can configure message protection to sign but not encrypt each
message. This allows you to verify the integrity of a message without the overhead of encryption in
case there is no sensitive data requiring protection. With transport security, you cannot modify the
level of protection because it is transport-dependent and the WCF framework does not control
transport standards.
The protection level is not configurable in configuration tool.