Top Banner
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
39

ProfitBase InFront Analytics Configuration

Mar 23, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

Page 2: ProfitBase InFront Analytics Configuration

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

Page 3: ProfitBase InFront Analytics Configuration

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

Page 4: ProfitBase InFront Analytics Configuration

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.

Page 5: ProfitBase InFront Analytics Configuration

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-

Page 6: ProfitBase InFront Analytics Configuration

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

Page 7: ProfitBase InFront Analytics Configuration

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:

Page 8: ProfitBase InFront Analytics Configuration

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.

Page 9: ProfitBase InFront Analytics Configuration

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.

Page 10: ProfitBase InFront Analytics Configuration

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:

Page 11: ProfitBase InFront Analytics Configuration

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.

Page 12: ProfitBase InFront Analytics Configuration

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.

Page 13: ProfitBase InFront Analytics Configuration

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

Page 14: ProfitBase InFront Analytics Configuration

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.

Page 15: ProfitBase InFront Analytics Configuration

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.

Page 16: ProfitBase InFront Analytics Configuration

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.

Page 17: ProfitBase InFront Analytics Configuration

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.

Page 18: ProfitBase InFront Analytics Configuration

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

Page 19: ProfitBase InFront Analytics Configuration

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

Page 20: ProfitBase InFront Analytics Configuration

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.

Page 21: ProfitBase InFront Analytics Configuration

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.

Page 22: ProfitBase InFront Analytics Configuration

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

Page 23: ProfitBase InFront Analytics Configuration

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.

Page 24: ProfitBase InFront Analytics Configuration

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:

Page 25: ProfitBase InFront Analytics Configuration

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

Page 26: ProfitBase InFront Analytics Configuration

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}]

Page 27: ProfitBase InFront Analytics Configuration

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.

Page 28: ProfitBase InFront Analytics Configuration

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

Page 29: ProfitBase InFront Analytics Configuration

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”:

Page 30: ProfitBase InFront Analytics Configuration

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.

Page 31: ProfitBase InFront Analytics Configuration

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):

Page 32: ProfitBase InFront Analytics Configuration

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.

Page 33: ProfitBase InFront Analytics Configuration

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).

Page 34: ProfitBase InFront Analytics Configuration

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.

Page 35: ProfitBase InFront Analytics Configuration

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)

Page 36: ProfitBase InFront Analytics Configuration

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.

Page 37: ProfitBase InFront Analytics Configuration

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.

Page 38: ProfitBase InFront Analytics Configuration

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

Page 39: ProfitBase InFront Analytics Configuration

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.