#ProjectServer 2013 White Paper
This paper is written by Microsoft senior consultant, and it includes guidance and best practices for those who plan to implement Project Server 2013 in their organization.
It provides an analytic comparison of both the Project Online solution versus implementing a Project Server 2013 on-premises solution, and describes scenarios in which you would select one solution over the other.
The target audiences for this white paper are partners, consultants, decision makers, and technical personnel who need to understand what is required to successfully implement Project Server 2013 in their environment, whether it be an on-premises solution or an online solution with Office 365.
Good Luck.
via All about Enterprise Project Management (EPM) http://khurramjamshed.blogspot.com/2013/05/projectserver-2013-white-paper.html
|
The author of the blog has an extensive experience of working as an EPM Consultant. Currently he is located in Dubai, UAE and working for Microsoft partner organization as Project Server specialist. He has a thorough experience of providing Project Management technical/functional consultancy to all sort of organizations. He is a certified PMP, a Project Server MCITP, and also received a MS community contributor award 2011.
This article has been cross posted from khurramjamshed.blogspot.com/ (original article) |
SQL Server Reporting Services Reports error when large numbers of parameters are selected
You may encounter an exception when running certain SQL Server Reporting Services (SSRS) reports.
The exception message will generally say something along the lines of Operation is not valid due to the current state of the object.
You may encounter this either in reports with a large number of parameters, or in reports where the parameter counts are low but the parameters themselves are multiple choice and have a large number of items selected.
The cause of this is a security fix released by Microsoft under Security Bulletin MS11-100. The fix, among other things, limits the number of keys that ASP.NET applications can parse as part of a request; large numbers of keys could potentially allow a denial of service to occur.
Unfortunately the effect of this is that our large parameter set is blocked, causing the exception and presenting a nasty error to our end users.
Luckily there is a solution to this.
The trick is to add a section to your web.config inside the <appSettings /> section.
<appSettings> ... <add key="aspnet:MaxHttpCollectionKeys" value="5000" /> ... </appSettings>
The actual value used should reflect the number of keys you believe will be used, but 5000 is a reasonable starting point.
If you are using SSRS in native mode, the web.config file is located within the reporting services installation path, usually C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer.
If you are using SSRS in SharePoint integration mode, the modification needs to be made to the web.config of the application pool where you are running your reports. For this I would recommend that you create a solution that utilises the SPWebConfigModification class as part of a feature receiver, rather than making the changes directly. This will ensure that the change is made across your SharePoint farm simultaneously without the human error that could come from doing the change manually on multiple servers.
Note: In both cases, these modifications either require a restart of the reporting server or in the case of SharePoint a recycle of the Application Pool. This will result in short outages so you will want to schedule this as part of maintenance accordingly.
For more information I would recommend reading the relevant KB article.
via Chris on SharePoint http://spchris.com/2013/05/sql-server-reporting-services-reports-errors-when-large-numbers-of-parameters-are-selected-2/
|
SharePoint and Project Server Consultant
This article has been cross posted from spchris.com (original article) |
Managing path context in SharePoint
When working with SharePoint’s UI, it is often difficult to work out where in the URL structure you are.
You may for instance be working at the root of a site collection, but that itself may be several layers deep.
Take the following example.
You have a site collection for your company, but each team maintains its own site collection under the managed path (with wildcard inclusion) /teams.
Some of the team sites use a template that includes a master page that references an image gallery script. This gallery script has to load images out of a document library local to each team site.
The problem of course is determining the URL to the code and images, when they could be located at /teams/team-a/gallery images or /teams/team-b/gallery images
Of course in a server-side solution this is simple, SharePoint provides the handy shortcut of ~sitecollection. This works both directly in master pages:
<SharePoint:ScriptLink runat="server" Name="~sitecollection/Style Library/js/galleryscript.js" Language="javascript"/>
Or using a custom action within a SharePoint solution, sandboxed or otherwise:
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <CustomAction ScriptSrc="~sitecollection/Style Library/js/galleryscript.js" Location="ScriptLink" /> </Elements>
But how do we achieve the same within the front end itself?
Introducing _spPageContextInfo
The _spPageContextInfo object is a really wonderful little thing. It is added by the SPWebPartManager control, which is included in all of the out of the box master pages (including default.master and system.master) and I really strongly recommend is added to any custom master pages you create.
Because of it’s essentially omnipresent nature it makes using _spPageContextInfo a really simple matter of, well, using it.
It is a small object, containing only a few properties of the page, the site and the site collection it is part of. Here is a JSON representation of what it contains.
{
alertsEnabled: true,
allowSilverlightPrompt: "True",
currentLanguage: 1033,
pageItemId: 1,
pageListId: "{6300d68a-4512-49f0-85b9-d3671855e31c}",
siteServerRelativeUrl: "/teams/team-a",
userId: 1,
webLanguage: 1033,
webServerRelativeUrl: "/teams/team-a/subsite",
webUIVersion: 4
}
Here’s a brief explanation of the properties in it.
alertsEnabled
This one is simple, is SharePoint’s alerts email notification service enabled for the current web application. This maps to the SPWebApplication.AlertsEnabled property.
allowSilverlightPrompt
Will the user be prompted to download Silverlight if they do not already have it when they attempt to use Silverlight based UI elements. This maps to the SPWebApplication.AllowSilverlightPrompt property.
currentLanguage
This is the current locale being used by the user, if they have not changed it to a custom one, then this maps to the SPWeb.Language property.
pageItemId
This is the ID of the current page’s item within the document library containing it.
pageListId
This is the GUID of the document library containing the current page.
siteServerRelativeUrl
This is the path of the site collection, relative to the web application.
userId
This is the user’s ID for the current site collection.
webLanguage
This is the default language for the current web. This maps to the SPWeb.Language property.
webServerRelativeUrl
This is the path of the web, relative to the web application.
webUIVersion
This is the UI version of the current web, determining if the master page and components in use and available is compatible with SharePoint 2007 (3), SharePoint 2010 (4) or SharePoint 2013 (5)
Note: The actual properties available varies depending upon where you happen to be. For instance the pageItemId and pageListId properties do not exist within system pages, as they do not have IDs and do not live within document libraries.
That’s pretty cool, but how do we use it?
Well, as they are properties we can pretty much use them however we wish. Let’s take a look at a simple way of referencing files in our gallery images document library, for example referencing a logo to use on the homepage.
(function() {
// The path to the image.
var imagePath = '/gallery%20images/logo.jpg';
// The relative URL is usually without the trailing /
// however if we are on the root site collection then it
// is simply / on its own and must be handled.
if (_spPageContextInfo.siteServerRelativeUrl == '/') {
imagePath = imagePath.substring(1);
}
// Build our full image path.
imagePath = _spPageContextInfo.siteServerRelativeUrl + imagePath;
// Finally set our image's source to the images path
$('img#logoImage').attr('src', imagePath);
})();
Of course this is a rather contrived example, and you should probably be using the client side object model (CSOM) to pull items from a document library. However I hope it demonstrates how the object can be used.
A common use I use this for is is actually with the CSOM.
var ctx = new SP.ClientContext(_spPageContextInfo.webServerRelativeUrl);
I do it this way because I have had issues with concurrency when using the get_Current() method in SP.ClientContext when there is other code in use on pages that I do not have control over.
via Chris on SharePoint http://spchris.com/2013/05/managing-path-context-in-sharepoint/
|
SharePoint and Project Server Consultant
This article has been cross posted from spchris.com (original article) |
#ProjectServer 2013 Administrator Manual #PS2013 #Project #SP2013
The guide also includes the SharePoint Central Administration PWA settings.
The guide can be downloaded from here.
Happy downloading.
via All about Enterprise Project Management (EPM) http://khurramjamshed.blogspot.com/2013/05/projectserver-2013-administrator-manual.html
|
The author of the blog has an extensive experience of working as an EPM Consultant. Currently he is located in Dubai, UAE and working for Microsoft partner organization as Project Server specialist. He has a thorough experience of providing Project Management technical/functional consultancy to all sort of organizations. He is a certified PMP, a Project Server MCITP, and also received a MS community contributor award 2011.
This article has been cross posted from khurramjamshed.blogspot.com/ (original article) |
#SharePoint 2010 error setting PerformancePoint unattended account #SP2010 #PS2010 #HP
|
I am a Project Server and SharePoint consultant but my main focus currently is around Project Server.
I have been working with Project Server for nearly five years since 2007 for a Microsoft Gold Certified Partner in the UK, I have also been awared with the Microsoft Community Contributor Award 2011. I am also a certified Prince2 Practitioner. This article has been cross posted from pwmather.wordpress.com (original article) |
A short blog post to highlight a workaround to a recent issue we experienced on a Project Server 2010 deployment. When trying to set the PerformancePoint unattended account we received an error:
The account credentials for the Unattended Service Account are not valid. Verify the domain user name and password are correct and that the account is located in a Trusted Domain
We experienced the same error via the UI in Central Admin and via PowerShell. The fix / workaround was quite simple in the end. This particular client had the HP ProtectTools enabled, this blocks any passwords being sent as plain text. We added an <SE>\ tag as shown below in the password string:
Set-SPPerformancePointSecureDataValues -ServiceApplication "PerformancePoint Service Application" -DataSourceUnattendedServiceAccount (New-Object System.Management.Automation.PSCredential "domain\user", (ConvertTo-SecureString "<SE>\password" -AsPlainText -Force))
With this tag in place the HP ProtectTools ignored that fact that the password was plain text and the unattended account was set successfully. This workaround only works when setting the unattended account using the example PowerShell script above. It doesn’t work in the UI.
Always look at the simple things first
Recently I was asked to take a look at SPD workflow on development system that was not sending emails.
Normally this works fine as it uses the standard emailing features of the SharePoint Platform, as long as the outgoing email settings are configured.
In this instance the outgoing email settings were correct for the environment in question, so a quick test I created an alert on a list, normally this would send an email straight away saying that an alert has been created but no email arrived.
If you have access to the server console the first test is to make sure you can ping your SMTP relay server, this will be the server you have referenced in your outgoing SMTP server configured in Central Administration.
If you can ping the server try using TelNet to connect on Port 25, if telnet times out and fails to connect then you probably have a firewall issue.
In this instance we were getting:
Which was an indication that the development server was not allowed to relay email via the SMTP server, as soon as we had the development server added to the allowed SMTP relay list we could connect via TelNet and send alerts and emails from SharePoint and development continued.
So always check the simple things 1st !
#ProjectServer 2013 environment migration / rollover steps #PowerShell #PS2013 #MSProject #SP2013
|
I am a Project Server and SharePoint consultant but my main focus currently is around Project Server.
I have been working with Project Server for nearly five years since 2007 for a Microsoft Gold Certified Partner in the UK, I have also been awared with the Microsoft Community Contributor Award 2011. I am also a certified Prince2 Practitioner. This article has been cross posted from pwmather.wordpress.com (original article) |
This blog post will detail the PowerShell commands required to carry out an environment rollover / migration using Windows PowerShell where possible. The steps below use the 2 database approach to rollover over the Production environment to the Test / Development environment.
As a prerequisite I would recommend taking full backups of the Test / Dev farm to enable the environment to be rolled back if required. Use your usual farm backup procedures.
Test / Dev environment Prep
Firstly connect to the Test / Dev Application server and launch the SharePoint 2013 Management shell.
Type the following:
Dismount-SPProjectWebInstance -SiteCollection <URL of Test / Dev PWA site that you want to refresh with the Production data and config>
Example:
Press Enter and then type Y and press Enter to remove the PWA instance
You can check in Central admin in the Project Server Service Application to check that the PWA site has been removed:
Using the SharePoint 2013 Management Shell remove the existing content database from the web application that hosted the PWA site collection that was removed in the previous step.
Type the following:
Dismount-SPContentDatabase “<Database name here>”
Example:
Press Enter and type Y to confirm then press Enter
Test / Dev environment SQL Prep
Take a backup of the 2 databases from the Production environment and copy these over to the Test / Dev SQL server and restore the databases. The databases required are:
- Content database that contains the PWA site and Project Sites
- Project Web App database
Make a note of the database names used when these databases are restored as they will be required later.
Test / Dev environment configuration
Using the SharePoint Management Shell, attach the restored content database to the web application that will host the PWA site collection.
Type the following:
Mount-SPContentDatabase “<content database name restored in previous step>” -DatabaseServer “<Test / DEV SQL Server>” –WebApplication <web application URL>
Example:
Press Enter:
Using the SharePoint 2013 Management Shell mount the restored Project Web App database to the web application.
Type the following command:
Mount-SPProjectDatabase -Name “Name of the restored Project Web App database to mount” –WebApplication “Web Application ULR that the Project Web App database will mount to” –DatabaseServer “Test / Dev SQL Server where the database was restored”
Example:
Press Enter:
Now using the SharePoint 2013 Management Shell provision the PWA site collection in the web application where the database was just attached to and using the Project Web App database that was restored previously. Please note, use the same PWA path name used in Production. For example if the instance is called /PWA in Production, use /PWA in the command below on the Test / Dev environment.
Type the following command:
Mount-SPProjectWebInstance –DatabaseName “Name of the restored Project Web App database to mount” –SiteCollection “web application URL + PWA path” –DatabaseServer “Test / Dev SQL Server where the database was restored”
Example:
Press Enter:
You can check the provisioning status of the PWA site using PowerShell or in Central admin in the Project Server Service Application to check that the PWA site has been created:
Type the following:
Get-SPProjectWebInstance –URL <PWA URL> | Select ProvisioningStatus
Example:
Or in Central Admin:
Post Provisioning
The Project Sites will need to be relinked using the “Bulk Update Connected SharePoint Sites” functionality in Central Admin on the newly provisioned Test / Dev PWA site.
The Project Server Cube settings will need to be updated – update the SQL AS server / cube name.
Any Excel services reports will need to be updated to use the ODC files from the Test / Dev environment as they will currently point to the Production ODC files. This is done by opening the Excel reports in Excel, changing the ODC file then saving the file back to the library.


