Thursday, October 28, 2010

The following data source cannot be used because PerformancePoint Services is not configured correctly.

The following data source cannot be used because PerformancePoint Services is not configured correctly.


If you’re setting up a fresh installation of Performance Point Services 2010 , you might think that all has gone well only to see the above error in Dashboard Designer once you try to start creating scorecards and reports. This is actually quite common – it seems there are a few extra steps to do before you can start using PPS 2010. 


1) Set up the Unattended Service Account. 

Go to the Central Administration page ( on Sharepoint ). Under Application Management , click on Manage Service Applications. Then click on Performance Point Service Application , then Performance Point Service Application Settings. We need to configure the Unattended Execution Account. This is the account that PPS will use to connect to the data source ( unless you use Per User Identity , but thats another story ). If you’ve never seen this page before , there are some interesting options there. Once you set this up and hit Apply. It might be successful, or it might give you another error…. 



2) The Unattended Service Account cannot be set for the service application.
The Secure Store Service key might not have been generated or properly refreshed
after the service was provisioned.

Now I’m not the expert in the Secure Store Service , but Performance Point uses this to store the password for the Unattended execution account. If you get this error, you need to check that a key has been generated for the Secure Store Service. Once again , go to the Central Administration page, and under Application Management , click on Manage Service Applications. Now click on Secure Store Service. Click on Generate New Key. Once that is done, you can go back to set the Unattended Execution Account on the other page , and Dashboard Designer should then work fine. 

Monday, October 11, 2010

SharePoint 2010 Licensing

SharePoint licensing is a complex subject. As well as there being multiple product configuration options, license prices often depend on a number of factors such as the type of organisation, the relationship with Microsoft and/or licensing retailer etc. It is useful, however, to have a rough indication of how much a product will cost when planning a project. For example if you are interested in giving all internal users access to FAST search you are looking at roughly twice the licensing costs of an installation using the standard features1.

SharePoint 2010 Licensing Overview

Before getting to the numbers there are a few things to understand. I’ve covered the basics here but head to the official Licensing Q&A page for full details.
For the full version of SharePoint Server 2010 there are two licensing models:
  • Server + CAL licenses for internal users – for internal users you need to license each server running SharePoint 2010. You also need a Client Access License (CAL) for each person (or optionally each device) accessing a SharePoint Server. All users will need a standard CAL and to access enterprise features users will need both the standard and the enterprise CAL. The difference in Standard vs Enterprise features is covered below.
  • Internet sites server licenses for external users – you need a server license for each server running SharePoint 2010. CALs are not required if all content is accessible to external users. If some content is for internal use only then CALs are required for users accessing this content. As well as a difference in features the Internet Sites Standard license only allows sites running on a single domain. As stated in theMicrosoft Licensing Product Use Rights “The [SharePoint 2010 Internet Sites Standard] software may only be used to create and host a single site at a time resolved from a single domain name (e.g., contoso.com) and its subdomains (e.g. support.contoso.com).” It comes in at almost a third of the cost of the enterprise license, however, so opens up public SharePoint hosting to companies with smaller budgets.

FAST Search Licensing

FAST Search is licensed separately so to take advantage of all the enterprise search features you will need additional server licenses for servers running the FAST Search software.
It is also possible to use a single server for any of the above server licenses. For example if you wanted to run an Intranet and a public Internet website on the same server you could apply the SharePoint 2010 Server license as well as the SharePoint 2010 Internet Sites license to a single server. A FAST license can also be applied to a SharePoint 2010 server if required (saving hardware costs but still requiring SharePoint Server and FAST licenses).

Indicative SharePoint 2010 License Costs

The table below gives some indicative prices for SharePoint 2010 in the UK based on information from Microsoft. Note these are only intended to provide ballpark estimates only and you will need to contact a Microsoft Licensing Specialist to obtain accurate costs. These figures do not include software assurance. Additionally there are other license costs you will need to take into account such as Windows Server and SQL.
LicensePrice
SharePoint 2010 Server~£3100
SharePoint 2010 Standard CAL~£60
SharePoint 2010 Enterprise CAL*~£53
SharePoint 2010 Internet Sites Standard~£7,500
SharePoint 2010 Internet Sites Enterprise~£27,000
FAST Search Server~£14,000
* Note the enterprise CAL is additive i.e. this requires each user to also have a standard CAL
Here are a few examples to give you an idea of how it works:
Small, Standard License, Internal Only Environment
3 server farm – 2 x WFE/Application servers and SQL, SharePoint 2010 running on two servers, 1,000 standard users
License costs would be 2 x £3,100 (SharePoint 2010 Server) + 1,000 users x £60 (Standard CAL) = £66,200
If you wanted to add FAST search you would need to add at least one server at £14,000 and add enterprise CALs (an additional £53 per user) for users accessing these features. The total with FAST would be £66,200 + £14,000 + 1000 x £53 = £133,200 for all users. An alternative would be to only give certain users access to the enterprise features. This can be done through the use of Feature Packs (a.k.a Sets) which allow you to target features so they can only be activated on certain sites. This is useful both for hosted scenarios (e.g. it allows the hoster to restrict enterprise features to site collections that are subscribed to an enterprise plan), and internal scenarios (e.g. only allowing a management site access to enterprise features to reduce license costs).
SharePoint 2010 for a public facing internet site
3 server farm – 2 x WFE/Application servers and SQL, SharePoint running on two servers, content authors editing content that ends up being publicly available (i.e. no internal only content) on a single domain
License costs would be 2 x £7,500 = £15,000
If you wanted to add FAST you would need the Internet Sites Enterprise license to make the search features available and add a license for a FAST Search Server (although this could run on one of the WFE’s to save hardware costs). This would then be 2x £27,000 + £14,000 = £68,000.

Enterprise vs Standard SharePoint 2010 features

So what do you get for an enterprise license? The official Microsoft SharePoint site has a detailed comparison of features in each of the editions but at a high level the additional features provided in the enterprise license are:
  • Access Services
  • FAST search enhancements (note these also require a FAST server license)
    • Sorting by any managed property
    • Contextual search results (i.e. user or audience targeted)
    • Refinement filter counts
    • Similar results
    • Thumbnails and previews
    • Visual best bets
    • Scale and other search platform enhancements
  • Business Intelligence
    • KPI’s
    • Chart Web Parts
    • Dashboards
    • Data Connection Library
    • Excel Services
    • PowerPivot for SharePoint
    • PerformancePoint Services
    • Visio Services
  • InfoPath Services
  • Web Analytics [update 21/06/10 - corrected - this is in standard]

Related products

  • SharePoint Foundation 2010 – this is free with Windows Server
  • Office SharePoint Designer – free download from Microsoft
  • Office Web Apps – free for each user with a licensed version of Microsoft Office
  • SharePoint Workspace – included with Office Professional Plus or available separately for approx. £85
Note 1 e.g. four SharePoint 2010 Server licenses @ £3100 + 1000 Standard CALs @ £60 = £72,400. Including FAST would require an additional FAST license @ £14,000 plus 1000 Enterprise CALs @ £53 = an additional £67,000 (i.e. almost double) to give all users access.

Friday, October 8, 2010

Html Page to View The Country clock

<script language="JavaScript">


    function worldClock(zone, region) {
        var dst = 0
        var time = new Date()
        var gmtMS = time.getTime() + (time.getTimezoneOffset() * 60000)
        var gmtTime = new Date(gmtMS)
        var day = gmtTime.getDate()
        var month = gmtTime.getMonth()
        var year = gmtTime.getYear()
        if (year < 1000) {
            year += 1900
        }
        var monthArray = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec")
        var monthDays = new Array("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31")
        if (year % 4 == 0) {
            monthDays = new Array("31", "29", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31")
        }
        if (year % 100 == 0 && year % 400 != 0) {
            monthDays = new Array("31", "28", "31", "30", "31", "30", "31", "31", "30", "31", "30", "31")
        }


        var hr = gmtTime.getHours() + zone
        var min = gmtTime.getMinutes()
        var sec = gmtTime.getSeconds()


        if (hr >= 24) {
            hr = hr - 24
            day -= -1
        }
        if (hr < 0) {
            hr -= -24
            day -= 1
        }
        if (hr < 10) {
            hr = " " + hr
        }
        if (min < 10) {
            min = "0" + min
        }
        if (sec < 10) {
            sec = "0" + sec
        }
        if (day <= 0) {
            if (month == 0) {
                month = 11
                year -= 1
            }
            else {
                month = month - 1
            }
            day = monthDays[month]
        }
        if (day > monthDays[month]) {
            day = 1
            if (month == 11) {
                month = 0
                year -= -1
            }
            else {
                month -= -1
            }
        }
        if (region == "NAmerica") {
            var startDST = new Date()
            var endDST = new Date()
            startDST.setMonth(3)
            startDST.setHours(2)
            startDST.setDate(1)
            var dayDST = startDST.getDay()
            if (dayDST != 0) {
                startDST.setDate(8 - dayDST)
            }
            else {
                startDST.setDate(1)
            }
            endDST.setMonth(9)
            endDST.setHours(1)
            endDST.setDate(31)
            dayDST = endDST.getDay()
            endDST.setDate(31 - dayDST)
            var currentTime = new Date()
            currentTime.setMonth(month)
            currentTime.setYear(year)
            currentTime.setDate(day)
            currentTime.setHours(hr)
            if (currentTime >= startDST && currentTime < endDST) {
                dst = 1
            }
        }
        if (region == "Europe") {
            var startDST = new Date()
            var endDST = new Date()
            startDST.setMonth(2)
            startDST.setHours(1)
            startDST.setDate(31)
            var dayDST = startDST.getDay()
            startDST.setDate(31 - dayDST)
            endDST.setMonth(9)
            endDST.setHours(0)
            endDST.setDate(31)
            dayDST = endDST.getDay()
            endDST.setDate(31 - dayDST)
            var currentTime = new Date()
            currentTime.setMonth(month)
            currentTime.setYear(year)
            currentTime.setDate(day)
            currentTime.setHours(hr)
            if (currentTime >= startDST && currentTime < endDST) {
                dst = 1
            }
        }


        if (region == "SAmerica") {
            var startDST = new Date()
            var endDST = new Date()
            startDST.setMonth(9)
            startDST.setHours(0)
            startDST.setDate(1)
            var dayDST = startDST.getDay()
            if (dayDST != 0) {
                startDST.setDate(22 - dayDST)
            }
            else {
                startDST.setDate(15)
            }
            endDST.setMonth(1)
            endDST.setHours(11)
            endDST.setDate(1)
            dayDST = endDST.getDay()
            if (dayDST != 0) {
                endDST.setDate(21 - dayDST)
            }
            else {
                endDST.setDate(14)
            }
            var currentTime = new Date()
            currentTime.setMonth(month)
            currentTime.setYear(year)
            currentTime.setDate(day)
            currentTime.setHours(hr)
            if (currentTime >= startDST || currentTime < endDST) {
                dst = 1
            }
        }
        if (region == "Cairo") {
            var startDST = new Date()
            var endDST = new Date()
            startDST.setMonth(3)
            startDST.setHours(0)
            startDST.setDate(30)
            var dayDST = startDST.getDay()
            if (dayDST < 5) {
                startDST.setDate(28 - dayDST)
            }
            else {
                startDST.setDate(35 - dayDST)
            }
            endDST.setMonth(8)
            endDST.setHours(11)
            endDST.setDate(30)
            dayDST = endDST.getDay()
            if (dayDST < 4) {
                endDST.setDate(27 - dayDST)
            }
            else {
                endDST.setDate(34 - dayDST)
            }
            var currentTime = new Date()
            currentTime.setMonth(month)
            currentTime.setYear(year)
            currentTime.setDate(day)
            currentTime.setHours(hr)
            if (currentTime >= startDST && currentTime < endDST) {
                dst = 1
            }
        }
        if (region == "Israel") {
            var startDST = new Date()
            var endDST = new Date()
            startDST.setMonth(3)
            startDST.setHours(2)
            startDST.setDate(1)
            endDST.setMonth(8)
            endDST.setHours(2)
            endDST.setDate(25)
            dayDST = endDST.getDay()
            if (dayDST != 0) {
                endDST.setDate(32 - dayDST)
            }
            else {
                endDST.setDate(1)
                endDST.setMonth(9)
            }
            var currentTime = new Date()
            currentTime.setMonth(month)
            currentTime.setYear(year)
            currentTime.setDate(day)
            currentTime.setHours(hr)
            if (currentTime >= startDST && currentTime < endDST) {
                dst = 1
            }
        }
        if (region == "Beirut") {
            var startDST = new Date()
            var endDST = new Date()
            startDST.setMonth(2)
            startDST.setHours(0)
            startDST.setDate(31)
            var dayDST = startDST.getDay()
            startDST.setDate(31 - dayDST)
            endDST.setMonth(9)
            endDST.setHours(11)
            endDST.setDate(31)
            dayDST = endDST.getDay()
            endDST.setDate(30 - dayDST)
            var currentTime = new Date()
            currentTime.setMonth(month)
            currentTime.setYear(year)
            currentTime.setDate(day)
            currentTime.setHours(hr)
            if (currentTime >= startDST && currentTime < endDST) {
                dst = 1
            }
        }
        if (region == "Baghdad") {
            var startDST = new Date()
            var endDST = new Date()
            startDST.setMonth(3)
            startDST.setHours(3)
            startDST.setDate(1)
            endDST.setMonth(9)
            endDST.setHours(3)
            endDST.setDate(1)
            dayDST = endDST.getDay()
            var currentTime = new Date()
            currentTime.setMonth(month)
            currentTime.setYear(year)
            currentTime.setDate(day)
            currentTime.setHours(hr)
            if (currentTime >= startDST && currentTime < endDST) {
                dst = 1
            }
        }
        if (region == "Australia") {
            var startDST = new Date()
            var endDST = new Date()
            startDST.setMonth(9)
            startDST.setHours(2)
            startDST.setDate(31)
            var dayDST = startDST.getDay()
            startDST.setDate(31 - dayDST)
            endDST.setMonth(2)
            endDST.setHours(2)
            endDST.setDate(31)
            dayDST = endDST.getDay()
            endDST.setDate(31 - dayDST)
            var currentTime = new Date()
            currentTime.setMonth(month)
            currentTime.setYear(year)
            currentTime.setDate(day)
            currentTime.setHours(hr)
            if (currentTime >= startDST || currentTime < endDST) {
                dst = 1
            }
        }




        if (dst == 1) {
            hr -= -1
            if (hr >= 24) {
                hr = hr - 24
                day -= -1
            }
            if (hr < 10) {
                hr = " " + hr
            }
            if (day > monthDays[month]) {
                day = 1
                if (month == 11) {
                    month = 0
                    year -= -1
                }
                else {
                    month -= -1
                }
            }
            return monthArray[month] + " " + day + ", " + year + "<br>" + hr + ":" + min + ":" + sec + " DST"
        }
        else {
            var hr1 = hr - 4
            var min1=min-30
            return monthArray[month] + " " + day + ", " + year + "<br>" + hr1 + ":" + min1 + ":" + sec + "DST"
        }
    }


    function worldClockZone() {






        document.getElementById("India").innerHTML = worldClock(10, "Greenwich")
        document.getElementById("Chicago").innerHTML = worldClock(-6, "NAmerica")
        document.getElementById("Miami").innerHTML = worldClock(-5, "NAmerica")


        document.getElementById("Syria").innerHTML = worldClock(2, "Europe")
        document.getElementById("Tunisia").innerHTML = worldClock(2, "Europe")
        document.getElementById("UK").innerHTML = worldClock(0, "Europe")
        
        document.getElementById("Turkmenistan").innerHTML = worldClock(4, "Europe")




        document.getElementById("Algeria").innerHTML = worldClock(0, "Europe")
        document.getElementById("Oman").innerHTML = worldClock(4, "Dubai")
        document.getElementById("UAE").innerHTML = worldClock(4, "Dubai")




        setTimeout("worldClockZone()", 1000)
    }
    window.onload = worldClockZone;


</script>


<style type="text/css">
.hrow {
font-weight:bold;
color: #C1E97C;
font-family:Verdana;
text-align:center;
color:White;
background-color:#63657B;
font-size:12px;
font-weight:bold;
height:13px;
border: 1px solid #C0C0C0;


}
.hrow td{
padding-top: 0px;
width: 100px;
font-family:Verdana;
height:15px;
}
.hrowft {


width: 100px;
color:Black;
text-align:center;
font-size:12px;
color:Black;
background-color:Silver;
font-size:12px;
font-family:Verdana;
height:100%;
border: 1px solid Black;
}
</style>
<div style=" border-color:Silver">
<table cellspacing="2px" >
<tr class="hrow">
<td>Algeria</td><td >UK</td><td >Syria</td>
    <td>Tunisia</td><td style="visibility:hidden;" >Chicago</td>
</tr>
<tr>
<td class="hrowft"><img height="133px" width="105px" id="Img0" src="http://vdev04aaashjuae:5000/PetrofacBranchImages/Algeria.jpg" alt="Loading..."/></td>
<td class="hrowft"><img height="133px" width="105px" id="Img1" src="http://vdev04aaashjuae:5000/PetrofacBranchImages/UK.jpg" alt="Loading..."/></td>
<td class="hrowft"><img height="133px" width="105px" id="Img2" src="http://vdev04aaashjuae:5000/PetrofacBranchImages/Syria.jpg" alt="Loading..."/></td>
<td class="hrowft"><img height="133px" width="105px" id="Img3" src="http://vdev04aaashjuae:5000/PetrofacBranchImages/Tunisia.jpg" alt="Loading..."/></td>
</tr>
<tr>
    <td class="hrowft"><span id="Algeria"></span></td>
    <td class="hrowft"><span id="UK"></span></td>
    <td class="hrowft"><span id="Syria"></span></td>
    <td class="hrowft"><span id="Tunisia"></span></td><td style="visibility:hidden;"><span id="Chicago"></span></td>
</tr>
<tr class="hrow">
<td >Oman</td><td >UAE</td><td >Turkmenistan</td>
<td>India</td><td style="visibility:hidden;">Miami</td>
</tr>
<tr>
<td class="hrowft"><img id="Img4" height="133px" width="105px" src="http://vdev04aaashjuae:5000/PetrofacBranchImages/Oman.jpg" alt="Loading..."/></td>
<td class="hrowft" ><img id="Img8" height="133px" width="105px" src="http://vdev04aaashjuae:5000/PetrofacBranchImages/UAE.jpg" alt="Loading..."/></td>
<td class="hrowft"><img id="Img5" height="133px" width="105px" src="http://vdev04aaashjuae:5000/PetrofacBranchImages/Turkmenistan.jpg" alt="Loading..."/></td>
<td class="hrowft"><img id="Img6" height="133px" width="105px" src="http://vdev04aaashjuae:5000/PetrofacBranchImages/India.jpg"alt="Loading..." /></td>


</tr>
<tr>
    <td class="hrowft" ><span id="Oman"></span></td>
    <td class="hrowft"><span id="UAE"></span></td>
    <td class="hrowft"><span id="Turkmenistan"></span></td>
    <td class="hrowft"><span id="India"></span></td><td style="visibility:hidden;"><span id="Miami"></span></td>
</tr>


</table>
</div>