Monday, February 14, 2011

Script to populate DimDate Data

DECLARE @dtStartDate DATETIME
DECLARE @dtEndDate DATETIME
DECLARE @dtCurrDate DATETIME

SELECT @dtStartDate = '1/1/2010'
SELECT @dtEndDate = '12/31/2010'

SELECT @dtCurrDate=NULL

SELECT @dtCurrDate = ISNULL (@dtCurrDate, @dtStartDate)
Declare @datedim TABLE
(
datekey DATETIME
,datewithdayname NVARCHAR(500)
,curryear INT
,calyear NVARCHAR(100)
,FirstDayOfQtr DATETIME
,QTYYear NVARCHAR(250)
,FirstDayOfMonth DATETIME
,MonthYear NVARCHAR(500)
,DayOfTheYear INT
,DayOfTheYearname NVARCHAR(50)
,day_of_the_quarter INT
,day_of_the_quarter_name NVARCHAR(200)
,day_of_month INT
,day_of_month_name NVARCHAR(250)
,Month_of_year INT
,Month_of_year_name NVARCHAR(250)
,Month_of_quarter INT
,Month_of_quarter_name NVARCHAR(250)
,quarter_in_year INT
,quarter_in_year_name NVARCHAR(205)
,MMDDYYYY NVARCHAR(10)
,DDMMYYYY NVARCHAR(10)
,YYYYDDMM NVARCHAR(10)
,semester_in_year int
,semester_in_year_name NVARCHAR(15)
,month_of_semester int
,month_of_semester_name NVARCHAR(25)
,day_of_the_semester int
,day_of_the_semester_name NVARCHAR(30)
)

WHILE @dtCurrDate <= @dtEndDate
BEGIN
INSERT INTO @datedim
(datekey
,datewithdayname
,curryear
,calyear
,FirstDayOfQtr
,QTYYear
,FirstDayOfMonth
,MonthYear
,DayOfTheYear
,DayOfTheYearname
,day_of_the_quarter
,day_of_the_quarter_name
,day_of_month
,day_of_month_name
,Month_of_year
,Month_of_year_name
,Month_of_quarter
,Month_of_quarter_name
,quarter_in_year
,quarter_in_year_name
,MMDDYYYY
,DDMMYYYY
,YYYYDDMM
,semester_in_year
,semester_in_year_name
,month_of_semester
,month_of_semester_name
,day_of_the_semester
,day_of_the_semester_name
)
SELECT @dtCurrDate AS datekey
,DATENAME(DW, @dtCurrDate)+', '+DATENAME(month, @dtCurrDate)
+ ' ' +CONVERT(NVARCHAR (2) , DAY(@dtCurrDate)) + ' ' +Convert (NVARCHAR(4),YEAR(@dtCurrDate) ) as datewithdayname
,YEAR(@dtCurrDate) as curryear
, ' Calendar'+Convert (NVARCHAR(4),YEAR(@dtCurrDate) ) as calyear
,CASE WHEN DATEPART(qq, @dtCurrDate) IN (1,2,3) THEN Convert(DATETIME,'01/01/'+ CONVERT(varchar(4),YEAR(@dtCurrDate)))
WHEN DATEPART(qq, @dtCurrDate) IN (4,5,6) THEN Convert(DATETIME,'04/01/'+ CONVERT(varchar(4),YEAR(@dtCurrDate)))
WHEN DATEPART(qq, @dtCurrDate) IN (7,8,9) THEN Convert(DATETIME,'07/01/'+ CONVERT(varchar(4),YEAR(@dtCurrDate)))
WHEN DATEPART(qq, @dtCurrDate) IN (10,11,12) THEN Convert(DATETIME,'10/01/'+ CONVERT(varchar(4),YEAR(@dtCurrDate)))
END as FirstDayOfQtr
,'Quarter '+ convert (NVARCHAR,DATEPART(qq, @dtCurrDate))+','+ convert (NVARCHAR,YEAR(@dtCurrDate)) as QTYYear
,CONVERT(DATETIME,Convert(NVARCHAR(2),Month(@dtCurrDate))+'/01/'+Convert(NVARCHAR(4),Year(@dtCurrDate))) as FirstDayOfMonth
,DATENAME(month,@dtCurrDate)+Convert(NVARCHAR(4),Year(@dtCurrDate)) as MonthYear
,DATEPART(DAYOFYEAR,@dtCurrDate) as DayOfTheYear
,'Day '+Convert(NVARCHAR(3),DATEPART(DAYOFYEAR,@dtCurrDate)) as DayOfTheYearname
--day of the quarter
,CASE WHEN Month( @dtCurrDate) IN (1,2,3) THEN DATEDIFF(DD,'1/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1
WHEN Month( @dtCurrDate) IN (4,5,6) THEN DATEDIFF(DD,'4/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1
WHEN Month( @dtCurrDate) IN (7,8,9) THEN DATEDIFF(DD,'7/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1
WHEN Month( @dtCurrDate) IN (10,11,12) THEN DATEDIFF(DD,'10/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1
END as day_of_the_quarter
--day of the quarter name
,CASE WHEN Month( @dtCurrDate) IN (1,2,3) THEN 'Day '+Convert(NVARCHAR,DATEDIFF(DD,'1/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1)
WHEN Month( @dtCurrDate) IN (4,5,6) THEN 'Day '+Convert(NVARCHAR,DATEDIFF(DD,'4/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1)
WHEN Month( @dtCurrDate) IN (7,8,9) THEN 'Day '+Convert(NVARCHAR,DATEDIFF(DD,'7/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1)
WHEN Month( @dtCurrDate) IN (10,11,12) THEN 'Day '+Convert(NVARCHAR,DATEDIFF(DD,'10/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1)
END as day_of_the_quarter_name
,Day(@dtCurrDate) as day_of_month
,'Day '+CONVERT(NVARCHAR,Day(@dtCurrDate)) as day_of_month_name

,Month(@dtCurrDate) as Month_of_year
,'Month '+CONVERT(NVARCHAR,Month(@dtCurrDate)) as Month_of_year_name
,CASE WHEN Month( @dtCurrDate) IN (1,2,3) THEN MONTH(@dtCurrDate)
WHEN Month( @dtCurrDate) IN (4,5,6) THEN MONTH(@dtCurrDate)-4+1
WHEN Month( @dtCurrDate) IN (7,8,9) THEN MONTH(@dtCurrDate)-7+1
WHEN Month( @dtCurrDate) IN (10,11,12) THEN MONTH(@dtCurrDate)-10+1
END as month_of_quarter
,CASE WHEN Month( @dtCurrDate) IN (1,2,3) THEN 'Month '+CONVERT(NVARCHAR, MONTH(@dtCurrDate))
WHEN Month( @dtCurrDate) IN (4,5,6) THEN 'Month '+CONVERT(NVARCHAR, MONTH(@dtCurrDate)-4+1)
WHEN Month( @dtCurrDate) IN (7,8,9) THEN 'Month '+CONVERT(NVARCHAR, MONTH(@dtCurrDate)-7+1)
WHEN Month( @dtCurrDate) IN (10,11,12) THEN 'Month '+CONVERT(NVARCHAR, MONTH(@dtCurrDate)-10+1)
END as month_of_quarter_name

,DATEPART(qq, @dtCurrDate) as quarter_in_year
,'Quarter '+Convert(NVARCHAR,DATEPART(qq, @dtCurrDate)) as quarter_in_year_name
,CASE
WHEN Month(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,Month(@dtCurrDate))
else CONVERT(NVARCHAR,Month(@dtCurrDate))
end
+
CASE
WHEN day(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,day(@dtCurrDate))
else CONVERT(NVARCHAR,day(@dtCurrDate))
end
+
CASE
WHEN year(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,year(@dtCurrDate))
else CONVERT(NVARCHAR,year(@dtCurrDate))
end
as MMDDYYYY
,
CASE
WHEN day(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,day(@dtCurrDate))
else CONVERT(NVARCHAR,day(@dtCurrDate))
end
+
CASE
WHEN Month(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,Month(@dtCurrDate))
else CONVERT(NVARCHAR,Month(@dtCurrDate))
end
+
CASE
WHEN year(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,year(@dtCurrDate))
else CONVERT(NVARCHAR,year(@dtCurrDate))
end
as DDMMYYYY
,
CASE
WHEN year(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,year(@dtCurrDate))
else CONVERT(NVARCHAR,year(@dtCurrDate))
end
+
CASE
WHEN day(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,day(@dtCurrDate))
else CONVERT(NVARCHAR,day(@dtCurrDate))
end
+
CASE
WHEN Month(@dtCurrDate)<10 THEN '0'+CONVERT(NVARCHAR,Month(@dtCurrDate))
else CONVERT(NVARCHAR,Month(@dtCurrDate))
end
as YYYYDDMM

, CASE WHEN Month(@dtCurrDate) BETWEEN 1 AND 6 THEN 1 ELSE 2 END AS semester_in_year
,'Semester '+ CASE WHEN Month(@dtCurrDate) BETWEEN 1 AND 6 THEN '1' ELSE '2' END AS semester_in_year
,CASE WHEN Month( @dtCurrDate) IN (1,2,3,4,5,6) THEN MONTH(@dtCurrDate)
WHEN Month( @dtCurrDate) IN (7,8,9,10,11,12) THEN MONTH(@dtCurrDate)-7+1
END as month_of_semester
,CASE WHEN Month( @dtCurrDate) IN (1,2,3,4,5,6) THEN 'Month ' + Cast(MONTH(@dtCurrDate) AS nvarchar)
WHEN Month( @dtCurrDate) IN (7,8,9,10,11,12) THEN 'Month ' + CAST(MONTH(@dtCurrDate)-7+1 AS nvarchar)
END as month_of_semester_name
--day of the semester
,CASE WHEN Month( @dtCurrDate) IN (1,2,3,4,5,6) THEN DATEDIFF(DD,'1/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1
WHEN Month( @dtCurrDate) IN (7,8,9,10,11,12) THEN DATEDIFF(DD,'7/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1
END as day_of_the_semester
,'Day '+CASE WHEN Month( @dtCurrDate) IN (1,2,3,4,5,6) THEN Cast(DATEDIFF(DD,'1/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1 as nvarchar)
WHEN Month( @dtCurrDate) IN (7,8,9,10,11,12) THEN Cast(DATEDIFF(DD,'7/1/'+Convert(NVARCHAR,YEAR(@dtCurrDate)),@dtCurrDate)+1 as nvarchar)
END as day_of_the_semester_name


SELECT @dtCurrDate = DATEADD(d, 1, @dtCurrDate)
END

SELECT * INTO datetemp FROM @datedim

SELECT * FROM datetemp

Sunday, February 13, 2011

SSRS Security

How can you manage permissions in SQL Server Reporting Services to ensure that sensitive reports are only seen by the people authorized to view them?
Because much of a company's data is sensitive and should not be seen by everyone, data protection is a priority. In this document, we will cover the SSRS security model and talk about how you can leverage it to lock down your SSRS environment.
Overview

SQL Server Reporting Services security is managed on two levels: the SSRS site and on items within the site. At each level, the tasks that users can perform are managed via roles. Roles are just groups with certain tasks assigned to them and members of the role can perform the assigned tasks. It's that simple. Taking some time to create appropriate roles and assigning users accordingly will ensure that your SSRS site, and the reports it houses, are secure.

Site-level security in Reporting Services
The first level of security is site-level security. On the SSRS site as a whole, you can manage the tasks your users are allowed to perform. The tasks are fixed, and you need to create your roles with these fixed tasks in mind.

At this level, you will be assigning "administrative" tasks to users. Standard users that just need to view reports will probably not require any permission at this level of SQL Server Reporting Services, beyond the ability to view properties and schedules and execute report definitions.

If you want to add additional users or groups to the System Administrators role without adding to the local administrators group, you’ll need to go into the System Role Assignments page. To do this interactively you can navigate to the report manager (http://reportserver/reports, for instance) and click Site Settings in the upper right hand of the screen. Towards the bottom of the Site Settings screen you’ll find three links under a security heading.

Click on “New Role Assignment”
From here you can enter a username or a group name into the textbox. For machines in a domain, you can prefix the name with the domain name, (DOMAIN\scott, for example). Reporting Services will verify the entry, so don’t worry about spelling mistakes. Select the checkboxes for the role you want to assign.
Here are the tasks you can assign to roles at the site level:
• Execute Report Definitions allows a user to run a report definition without first loading the definition onto the SSRS server. This is required if you want your users to run report definitions from applications separate from SSRS, such as the Report Builder.
• Generate Events allows applications to generate events in the SSRS namespace.
• Manage Jobs permits users to view the jobs that are running on your SSRS server and cancel them if necessary.
• Manage Report Server Properties is a task that allows users to manage properties of the report server, as well as the items managed by the report server.
• Manage Report Server Security allows users to view and modify the members of your system-level roles.
• Manage Roles permits users to create, view and modify the role definitions. These users can change the tasks that are assigned to your roles.
• Manage Shared Schedules. SSRS contains shared schedules that can be tied to report execution; this task will allow users to manage these schedules.
• View Report Server Properties lets users view, but not change, the properties of the report server. This task is implied if the role has the Manage Report Server Properties task assigned.
• View Shared Schedules lets users view, but not change, the shared schedules on the report server. This task is implied if the role has the Manage Shared Schedules task assigned.
To control which users are allowed to perform each of these tasks, you first create a system-level role. There are two built in system-level roles when you install SQL Server Reporting Services.
• System Administrator. This system-level role manages all aspects of the SSRS site. The only task that cannot be performed by default is the Generate Events task. If you want administrators, or any user for that matter, to be able to perform this task, you must explicitly assign it to the appropriate role.
• System User. These users are allowed to view report server properties and shared schedules and execute report definitions. These tasks are assigned so that users can run reports.
To create new roles, click Site Settings in the top right corner of the Report Browser and then select Configure system-level role definitions under Security. This will open the System Roles page: To create a new role, click the New Role button. This will open the New System Role page, shown in the screenshot. All you have to do now is name the role; give it a description, and then select all the tasks you want this role to be able to perform. When you're done, click OK.

Here are the tasks that can be assigned to item-level roles:
• Consume Reports allows users to read report definitions. This is a fancy way of saying "these users can run reports."
• Create Linked Reports allows users to create links between columns from one report to another. Users can also publish these reports to a folder.
• Manage All Subscriptions is a task that permits the user to view and manage other user's subscriptions to an item.
• Manage Data Sources lets the user create and delete shared data sources in SSRS.
• Manage Folders allows users to create and delete folders in SSRS. They can also modify the properties of existing folders.
• Manage Individual Subscriptions permits the user to create, view and modify subscriptions the user owns.
• Manage Models is a task giving the user rights to create, view and modify models.
• Manage Reports allows users to create and delete reports.
• Manage Resources lets users create, modify and delete resources in a folder. Resources are items such as shared schedules.
• Set Security for Individual Items is a task that permits the user to manage security for reports, folders, resources and shared data sources.
• View Data Sources lets the user view the properties of shared data sources.
• View Folders allows a user to view folders and folder properties.
• View Models authorizes users to view models and model properties.
• View Reports lets a user view reports in the folder hierarchy. This does not, however, allow users to run reports -- for that they require the Consume Reports task.
• View Resources lets a user view resources and resource properties in folders.
As with system-level roles, there are some built-in item-level roles you can use when assigning permissions in this area of SQL Server Reporting Services. If these roles aren't enough, you can build additional roles and assign users any combination of the item-level tasks we just looked at. The built-in item-level roles are as follows:
• Browser. This role is configured to allow users to view folders and reports and lets them subscribe to reports.
• Content Manager. These users can manage the content of the SSRS site, including managing folders, reports and resources.
• My Reports. Users are allowed to publish reports and manage reports, folders and resources in their My Reports folder.
• Publisher. This user can publish reports and manage reports, folders and resources on the report server.
• Report Builder. Report Builders have permission to view report definitions.
Now, let's get down to the details. To manage these roles, you have several options. Item-level security can be applied to a folder, report, data source or resource. To give SQL Server users permission to an item, you need to open that item and view its security properties. When you add a user, you also have to assign a user to a role for that item. In the case of folders, the role a user is assigned at the top-level folder will, by default, be inherited by other items inside that folder. You do have the ability to override security on a lower-level folder of item-level security.
At this point, the security of your SSRS server is entirely up to you. You can create different folders for each department and assign only employees in that department with access to that folder. Within each department folder, I like to create an additional folder for sensitive reports and further lock that folder down to the appropriate users. Take some time and really plan out how your reports will be placed on the server and how you want the security to look. When using SQL Server Reporting Services, there is no reason that all of your reports, regardless of sensitivity, can't be stored in a single report server.

Performance Point Services 2010

PerformancePoint Services is a performance management service that you can use to monitor and analyze your business or you can say that, PerformancePoint Services is Microsoft’s dashboard delivery tool, which now is part of the SharePoint Server 2010 Enterprise platform. PerformancePoint Services enables you to create rich, context-driven dashboards that aggregate data and content to provide a complete view of how your business is performing at all levels.

WHAT WILL PERFORMANCEPOINT GIVE ME?
It provides you with flexible and easy-to-use tools for building Key Performance Indicators (KPIs), Scorecards, Analytic Charts and Grids, Reports, Filters and Dashboards. Each of these components is unique to PerformancePoint Services and provides functionality that interacts with a server component that handles the hard parts like data connectivity and security.

WHAT IS PERFORMANCEPOINT SERVICES AS A SERVICE APPLICATION
As you know that In SharePoint Server 2010 services are no longer contained within a Shared Service Provider (SSP) instead you can create a service application for each service and can share them with various existing web applications. To understand better, PerformancePoint Services will be one of the Services that will stay in the application server with a database something like “PerformancePoint Services Service database” in the Sql server box.

What is Secure Store Service: – This service application stores the password for the PerformancePoint Services unattended account.

WHAT ARE THE FEATURES OF PERFORMANCEPOINT SERVICES?
* With PerformancePoint Services, the dashboards and dashboard items are stored and secured within SharePoint lists and libraries, providing you with a single security and repository framework. The new architecture also takes advantage of SharePoint Server scalability, collaboration, backup and recovery, and disaster recovery capabilities.
* The Decomposition Tree is a new visualization report type available in PerformancePoint Services. You can use it to quickly and visually break down higher-level data values from a multi-dimensional data set to understand the driving forces behind those values. The Decomposition Tree is available in scorecards and analytic reports and ultimately in dashboards.
* You can access more detailed business information with improved scorecards. Scorecards have been enhanced to make it easy for you to drill down and quickly access more detailed information. PerformancePoint scorecards also offer more flexible layout options, dynamic hierarchies, and calculated KPI features.
* Better Time Intelligence filtering capabilities that you can use to create and use dynamic time filters that are always up to date. Other improved filters improve the ability for dashboard users to quickly focus in on information that is most relevant.
* Ability to include and link PerformancePoint Services Web Parts together with other PerformancePoint Services Web parts on the same page.
* Easier to author and publish dashboard items by using Dashboard Designer.
* The KPI Details report is a new report type that displays contextually relevant information about KPIs, metrics, rows, columns, and cells within a scorecard. The KPI Details report works as a Web part that links to a scorecard or individual KPI to show relevant metadata to the end user in SharePoint Server.
* Create analytics reports to better understand underlying business forces behind the results. Analytic reports have been enhanced to support value filtering, new chart types, and server-based conditional formatting.

WHAT IS THIS DASHBOARD DESIGNER?
PerformancePoint Dashboard Designer is the design tool you will use to build key performance indicators (KPIs), indicators, scorecards, reports, filters, data sources, and dashboards. It also enables you to deploy your finished dashboards to SharePoint.

To get started Open the Dashboard Designer. To do these follow the Steps below
Go to the Program Files->SharePoint-->Performance Point Dashboard Designer

Run Dashboard Designer This will download and install the PerformancePoint Dashboard Designer to your workstation.
Once the executable file is downloaded and installed on your computer, the PerformancePoint Dashboard Designer appears.

Once the Dashboard Designer is installed, you have an empty workspace or else create a new workspace. A workspace is a primary container for all of the elements that you can use to build your dashboard, and it keeps its content synched with the site from which it was launched.

Create Your Workspace -> Create Your Data Source Connection

In PerformancePoint Services you must create a connection to the data source or sources you want to use in your dashboard. All data used in PerformancePoint Services is external data, living in data repositories outside of PerformancePoint. After you establish a data connection, you will be able to use the data in the various PerformancePoint feature areas.

Creating a Data Source
To create a Data Source in the Dashboard Designer click the Create tab then click Data Source

Click the Analysis Services template; the Analytic Grid Report requires a Data Source type of SQL Server Analysis Services (SSAS).

Let’s the types of Databases that you can use and there feature
1. SharePoint Lists – Data contained in a SharePoint List on a SharePoint Site can be used in PerformancePoint Services by creating a SharePoint List data source in Dashboard Designer. Please Note that the data from SharePoint Lists can only be read. Modification to SharePoint List data must be done from SharePoint.

2. Excel Services – Data in Excel files published to Excel Services on a SharePoint Site can be used in PerformancePoint Services by creating an Excel Services data source. Supported published data can only be read in PerformancePoint Services. Published parameter values can be modified from the Dashboard Designer. If you use an Excel Services parameter in calculating a KPI, it is easy to make additional changes. PerformancePoint Services supports the following Excel Services components: Named Ranges, Tables and Parameters.

3. Excel workbooks – You may use the content of an actual Excel file as a data source in PerformancePoint Services by creating an Excel Workbook data source connection and select only the data that is to be used. The original Excel file will be independent from the PerformancePoint copy. PerformancePoint Services 2010 supports Excel 2007 and Excel 2010 workbooks as data sources.

4. SQL Server tables – You can create a data source connection to a SQL Server database and use the data within PerformancePoint Services. SQL tables and SQL views are supported data sources within PerformancePoint Services.

5. Analysis Services – Use data residing in a SQL Server Analysis Services cube in PerformancePoint Services by creating a data connection to the source. PerformancePoint Services lets you map the desired time dimension and the required level of detail for its hierarchies to the internal PerformancePoint Services Time Intelligence.

After selecting Analysis Services as the Data Source type, provide a name for the Data Source. If you enter a display folder location, a folder will be added under Data Sources in the Workspace Browser and the new Data Source will be placed into that folder. Checking Grant read permission to all authenticated users is usually a good idea; otherwise you can fine tune the security in a later step.

After clicking Finish on the Create a Data Source dialog, a tabbed dialog is displayed to define the Data Source. The Editor tab is used to specify the connection settings for the SSAS database and cube.

The Properties tab allows you to specify some general properties, your own custom properties, and permissions. There are two roles in the permissions - Editor and Reader. An Editor can change the Data Source; a Reader cannot.

Publishing the element takes its definition in the Dashboard Designer workspace file and saves it to the PPS Monitoring server database where it becomes available for use. There are several options for publishing:
• Right click on the element in the Workspace Browser and select Publish from the popup menu
• Select the element in the Workspace Browser and click the Publish Item icon on the Home tab
• Click the Publish All icon on the Home tab

Creating KPI –
Now that we have our connection ready lets create our key performance indicator (KPI). In order to create a new KPI to track whatever you want to track for your company, you need to follow these steps:
1. Right – click the PerformancePoint Content folder and select New ➪ KPI. OR select from the tab.

2. In the Select a KPI Template dialog, select Blank KPI, and then click OK.

3. And once you have your KPI created, you can define your actual and Target values. Also, select the data source and the measure.

Select Appropriate measure

Select Data Source

4. Select the Target row, and click the Set Scoring Pattern and Indicator button in the Thresholds area.

5. Next, In the Edit Binding Settings dialog select the first option (Band by normalized value of Actual/Target) from the Banding method drop – down, and then click Next.as above.

6. In the Select an Indicator step, select an indicator to use for the target that clearly shows whether the goal is met. You can choose from a collection of indicator templates available in PerformancePoint Dashboard Designer. Once you are done, click next.

7. In the last step of the wizard, leave the value intact and click Finish.

8. Save the KPI by right – clicking it in the Workspace Browser, and then selecting Save.

Creating a Scorecard
Scorecards are becoming an integral part of many BI applications. They offer an easy way for a business user to see how the business is doing. Scorecards can be developed to measure the performance of many different parts of the business such as the total company, divisions, departments, etc. In each case the scorecard clearly enumerates the objectives, targets, and actual results of the particular area of the business. The power of the scorecard is its ability to present this information in a way that allows us to focus on whether the actual business results are meeting our stated goals and objectives.
To create a Scorecard in the Dashboard Designer click the Create tab then click Scorecard.
For our example we are going to build a scorecard that uses data from the sample AdventureWorks cube that comes with SQL Server Analysis Services 2005. Select Analysis Services as the Template and make sure that "Use wizards to create scorecards" is checked. When you are getting started with developing scorecards it's a good idea to use the wizard provided by the Dashboard Designer.

After checking the Wizard option, you will be guided through a sequence of dialogs to define the scorecard. First you will name the scorecard. Check Grant read permission to all authenticated users if you want everyone to be able to view the scorecard; you can also fine tune security later if necessary.

Select AdventureWorks for the Data Source. A scorecard can contain KPIs from multiple data sources; however, the wizard only allows you to select a single data source. After you complete the wizard you can add KPIs from other data sources if necessary.

The Analysis Services template allows you to create KPIs from measures in the cube or import KPIs already defined in the cube. For our example we will create KPIs from measures in the cube. Defining KPIs in the cube is a best practice that you should consider; however, it does require a good understanding of MDX.

After deciding to create KPIs you will have the opportunity to choose measures from the cube. Each time you click the Add KPI button, another measure will be added to the list below. Keep clicking the Add KPI button until there are no more measures to add. You can delete measures that you don't want by highlighting the row(s) then clicking the Delete Selected KPIs button.

Now that we have created a sample scorecard, our final step is to create a dashboard and add our scorecard to it. Make sure that you have published the scorecard and all of the KPIs.

The scorecard shows actual results, targets and a visual indicator which clearly shows whether we are meeting our objectives. The indicator above is the default stoplight that comes with PPS. Green means we are on target, yellow means we are slightly off target, and red means we are way below the target. The indicators allow us to quickly spot the problem areas.

Friday, February 11, 2011

How to check duplicate entries in the table

WITH Ranks AS
(
SELECT * , ROW_NUMBER()
OVER (PARTITION BY
WeekStartDate,
WeekEndDate,
WeekNum,
WeekName,
PeriodStartDate,
PeriodEndDate,
PeriodNum,
PeriodName,
PeriodDesc,
YearStartDate,
YearEndDate,
PeriodYearNum,
PeriodYearName,
PeriodYearDesc,
PeriodAdjustmentInd,
QuarterStartDate,
QuarterEndDate,
QuarterNum,
QuarterName,
QuarterDesc,
PeriodSetID,
PeriodSetName,
PeriodSetDesc
ORDER BY WeekKey) AS Row_Count
FROM DimWeek
)

select * from Ranks where Row_Count>1

Monday, February 7, 2011

Dynamic Cascading Parameters in SSRS

DataBases:
SELECT NAME FROM SYSDATABASES ORDER BY 1

Tables:
DECLARE @sqlCommand nvarchar(1000)='use ' + @databases+' SELECT name FROM sys.tables order by 1'
EXECUTE sp_executesql @sqlCommand

Columns:
DECLARE @sqlCommand nvarchar(1000)='use ' + @databases+' Select sys.columns.Name from sys.columns Inner Join sys.objects
On sys.objects.object_id = sys.columns.object_id
AND sys.objects.name = '''+@Tables +''''
EXECUTE sp_executesql @sqlCommand