project 2010 solution starters
TRANSCRIPT
Project 2010 Solution Starters This document is “one page per Solution Starter” overview for the Project 2010 Solution Starters.
For more information, please refer to Solution Starter Home
http://code.msdn.microsoft.com/P2010SolutionStarter.
In case you have questions or experiencing issues AFTER you have reviewed all related information on
http://code.msdn.microsoft.com/P2010SolutionStarter - including WEBCASTS, please post them to the
following discussion http://code.msdn.microsoft.com/P2010SolutionStarter/Thread/List.aspx.
Thanks & Enjoy!
Contents Bulk Edit Tool .................................................................................................................................................... 2
Summary ....................................................................................................................................................... 2
User Experience ............................................................................................................................................ 2
Solution Parts ................................................................................................................................................ 5
Bulk Import Tool ............................................................................................................................................... 5
Summary ....................................................................................................................................................... 5
Description .................................................................................................................................................... 5
User Experience ............................................................................................................................................ 6
Solution Parts ................................................................................................................................................ 8
Demand Management Export Tool ................................................................................................................... 9
Summary ....................................................................................................................................................... 9
Deployment ................................................................................................................................................ 10
Technical Highlights .................................................................................................................................... 11
Demand Management Import Tool ................................................................................................................ 11
Summary ..................................................................................................................................................... 11
Deployment ................................................................................................................................................ 11
Technical Highlights .................................................................................................................................... 11
EPT Association Tool ....................................................................................................................................... 12
Summary ..................................................................................................................................................... 12
Deployment ................................................................................................................................................ 12
Technical Highlights .................................................................................................................................... 12
Dynamic Workflow.......................................................................................................................................... 13
Summary ..................................................................................................................................................... 13
Options........................................................................................................................................................ 13
Solution Parts .............................................................................................................................................. 17
Workflow Visualization Web Part ................................................................................................................... 19
Summary ..................................................................................................................................................... 19
Options........................................................................................................................................................ 19
Solution Parts .............................................................................................................................................. 21
Workspace Project Custom Field Web Part .................................................................................................... 21
Summary ..................................................................................................................................................... 21
Deployment ................................................................................................................................................ 22
Technical Highlights .................................................................................................................................... 22
Project Workspace List Viewer ....................................................................................................................... 22
Summary ..................................................................................................................................................... 22
Deployment ................................................................................................................................................ 23
Technical Highlights .................................................................................................................................... 23
Infopath Form Viewer Web Part ..................................................................................................................... 23
Summary ..................................................................................................................................................... 23
Deployment ................................................................................................................................................ 24
Technical Highlights .................................................................................................................................... 24
Report Builder Tool ......................................................................................................................................... 25
Summary ..................................................................................................................................................... 25
Deployment ................................................................................................................................................ 25
Technical Highlights .................................................................................................................................... 25
Excel Project Cost Capture .............................................................................................................................. 26
Summary ..................................................................................................................................................... 26
User Experience .......................................................................................................................................... 26
Solution Parts .............................................................................................................................................. 28
Bulk Edit Tool
Summary Changing custom fields or other project fields for a single project is easy using Project Professional or PWA. Changing the same fields on multiple projects, however, can be a challenge. Using either Project Professional or PWA, each project must be edited individually, making “bulk editing” a tedious and time consuming task. The Bulk Edit Tool solution starter provides a solution for this problem. The solution is accessible via the PWA ribbon in Project Center.
User Experience
Bulk Edit Tool Ribbon Button
The solution is accessible via the PWA ribbon in Project Center. A custom button on the ribbon redirects to a custom page with a pop-up window showed up.
Bulk Import Tool Options
The pop-up window provides several options. In the first step (“Select Field”) it’s possible to select a set
project native and custom fields to edit.
The second step allows filtering the projects to be edited. All the projects will be selected if no filter is
defined. A filter may contain rules for custom fields as well as for native fields.
Each filter rule can use one of the operators:
equals
do not equal
is less than
is less than or equal to
is greater than
is greater than or equal to
begins with
contains
does not contain
The rules can be connected with help of either “AND” or “OR” operator.
The main page shows a list of selected projects and selected project fields. The list is implemented via the
new JSGrid control.
The main page also provides a custom ribbon tab with a few action buttons:
1. Select Fields/Filters. Shows up the pop-up window to update the set of project fields and filters.
2. Edit Selected. Switches the list of projects to “edit” mode. The button is disabled if no project is
selected.
3. Save. Starts the update operations for selected projects in “edit” mode.
4. Cancel. Cancels the update operations in “edit” mode.
5. Refresh. Refreshes the list of projects to apply any updates to projects or project fields.
6. My Queued Jobs. Opens a new browser window with queued update jobs.
The screenshot below shows the projects grid in “edit” mode:
The “Save” action collects the custom field data from the projects list and create “update” jobs in Project
Server queue. The timing of the update operations can vary and depends on the amount and statuses of
other queue jobs and could take longer than expected as the queue is involved into process.
Solution Parts
Solution content
The source code of solution can be found in BulkEditTool folder.
It has the following content:
1. BulkEditTool.sln solution (VS 2010).
2. Deployment folder contains .bat files for copying and deploying SharePoint solution.
Installation notes
1. Set SiteUrl in Deployment/DeployPowerShell.cmd
2. Run Command Prompt as administrator
3. Run Deployment/DeployPowerShell.cmd
4. Add application pool account to PWA Administrators group
Bulk Import Tool
Summary Many enterprise customers use the collaborative strength and flexibility of SharePoint lists to store project proposal information. At some point, a subset of those proposals will be initiated as projects and need to be setup as projects in Project Server. Currently, there is no automated process out-of-the-box and must either be done manually or automated using custom code. The Bulk Import solution starter provides a solution for this problem.
Description
The Bulk Import Tool creates or updates the projects in Project Server based on the data that is pulled
from a SharePoint list. Each project custom field is filled from the list’s column according to the mapping
rules. The SharePoint list (and the view) and the mapping rules can be set in Bulk Import Tool options.
The screenshot below shows an example of a SharePoint list:
User Experience
Bulk Import Tool Ribbon Button
The solution is accessible via the PWA ribbon in Project Center. A custom button is added to the ribbon, along with a custom dialog box that allows the SharePoint list, view and columns to be mapped to the project fields.
Bulk Import Tool Options
The custom button at the Ribbon launches the Bulk Import Tool pop-up window. There are a few options
available:
7. Site URL. Site URL of SharePoint containing list to be imported as projects in Project Server.
Default value is http://. “Validate” button allows checking if the entered URL is valid.
8. List. A list which is a source of data for the projects to be created/updated.
9. View. The list’s view.
10. Column mapping. This section displays a grid with the list’s columns on the left side and project
fields on the right. Represents the mapping.
11. Create Using EPT. An EPT for the new projects.
12. Publish Projects. A flag that indicates that the projects will be published after creating/updating.
Default value is “Yes”.
13. Update Existing Projects. A flag that indicates that existing projects will be updated.
14. Save list configuration info. A flag that indicates that the tool’s current configuration will be saved
to specified location.
The “Start Import” button launches the process. The screenshot below shows the Bulk Import Tool
processing status:
There are a number of operations defined for each SharePoint list item: Create Project, Update Project,
Publish Project, etc. All the project operations are processed asynchronously via AJAX requests. Each
operation has its current processing status that is displayed in the grid.
The “Retry all failed” button allows re-launching of all operations for all the failed projects.
Solution Parts
Solution content
The source code of solution can be found in BulkImportTool folder.
It has the following content:
3. BulkImportTool.sln solution (VS 2010).
4. Deployment folder contains .bat files for copying and deploying SharePoint solution.
Installation notes
5. Set SiteUrl in Deployment/DeployPowerShell.cmd
6. Run Command Prompt as administrator
7. Run Deployment/DeployPowerShell.cmd
8. Add application pool account to PWA Administrators group
In case of custom SharePoint list go to http://server_name/pwa_name/_layouts/viewlsts.aspx, create
a list and fill it with items.
Demand Management Export Tool
Summary
Enterprise Project Types (EPT) and related entities are an integral part of the demand management
functionality in Project 2010. EPTs are the high level entity that is associated with projects. Every EPT
may be related to 1 or more phases and 1 or more stages for each phase. They also are related to 1 or
more Project Detail Pages (PDP) and the associated custom fields, lookup tables and web parts. Moving
these entities to another Project 2010 instance manually would be very tedious and time consuming.
The DM Export Tool provides an administrator an easy way to export any number of EPTs and the
associated entities. The exported entities may then be imported with the Demand Management Import
Tool.
Deployment
The DM Export Tool is implemented as a WinForm application and may be deployed using the provided
msi installer.
Technical Highlights
− WinForms development
− Project Server Interface (PSI) development
− Sharepoint development
Demand Management Import Tool
Summary
The DM Import Tool is used in conjunction with the DM Export Tool. The DM Import Tool reads the
exported entity data from the DM Export Tool and installs those entities on a new Project Server
instance as a feature that can be easily retracted.
Deployment
The DM Import Tool is not really deployed itself but uses scripts to dynamically build a Sharepoint
feature from the exported data and install the exported data as a feature. When the installed feature is
activated, the exported entities are added to the target Project Server instance. The entities may also be
retracted by simply deactivating the feature.
Technical Highlights
− Sharepoint Feature Receiver development
− Sharepoint development
− Project Server Interface (PSI) development
EPT Association Tool
Summary
The EPT Association Tool solution starter displays the relationships between Enterprise Project Types
(EPTs), phases, stages, Project Detail Pages (PDPs), web parts and project custom fields. For non-
workflow controlled EPTs, the tool queries the EPT data using the PSI to display the related PDPs, web
parts and custom fields. For workflow controlled EPTs, the phase, stage and other related entities are
entered manually and stored in Sharepoint lists for reference. The tool also can display the GUIDs for
stages and custom fields which is particularly useful for developers writing workflows in Visual Studio.
Deployment
The EPT Association Tool is implemented as a Sharepoint feature and is easy to deploy using standard
tools like stsadm.exe or Powershell. The sample code includes samples of both types of deployment
files.
Technical Highlights
− Server Settings admin page customization
− PWA ribbon customization
− Javascript Grid (JSGrid) customization
− Sharepoint development
− Project Server Interface (PSI) development
Dynamic Workflow
Summary The Dynamic Workflow solution starter provides an easy mechanism to build sequential workflows in PWA without using Visual Studio. The tool inserts a custom InfoPath form into the workflow definition process that gathers the custom workflow information. That information is then used to dynamically construct a workflow for the demand management process.
Options
Basic stage options
The workflow can contain any number of non-duplicate stages. A stage can be selected from the drop-
down list. The following screen shows basic stage options:
1. Stage Status Message. When a project enters a stage, the workflow stage status page will display
a section where this custom message will be shown.
2. Force Submit on Stage. By selecting “Yes” (the default value) the workflow will always wait on the
stage, even if there are no required fields in the stage.
3. Wait for Commit. By selecting “Yes” the workflow will wait for the project to be committed within
the Portfolio Analysis tool before it will move forward. Default option is “No”.
4. Approval Required. By selecting “Yes” the workflow will send approval requests for this stage.
The following screen shows Portfolio Analysis tool’s commit action button:
Stage approval options
When an approval stage gets submitted the workflow remains on the stage and sends approval requests
that are defined for the stage.
There are a few options for this feature:
1. Approval Type. Available choices are: “First Response”, “Majority” and “Consensus”. “First
Response” means that the very first response will be used and the workflow would not wait for
any of the other responses. “Majority” means that a majority of the approval responses with be
used as the final decision. “Consensus” – must receive 100% of the same response for the decision
to be final.
2. Approvers. Allows selecting Groups or Users that will receive approval requests for the stage.
3. Filter Approvers by Department. By selecting “Yes” only users that are in the same department as
the project will receive approval requests.
4. Approval Stage Status Message. Stage status when a project is waiting for approval.
5. Send Email Notification. By selecting “Yes” the workflow will send email notifications.
An approval stage creates tasks for the approvers defined in option “Approvers”:
Stage email notifications options
The feature sets up email notifications options for each approval/rejection user action if an approval is
required for a stage.
Email notifications feature options:
1. Send Email to Project Owner.
2. Send Email to a list of specified email addresses.
3. Define approval and rejection email messages.
Emails are sent is HTML format with a subject of the following format: “Project <Project Name> has been
rejected at stage <Stage Name>” and email body with text defined in “Rejection Notification Email Text”.
Email settings are pulled from PWA site’s “Alerts and Reminders” settings, which can be accessed at
http://{server}/{PWA}/_layouts/pwa/Admin/Notification.aspx page:
If this PWA site option is disabled, the settings are pulled from Web Application “Outgoing Email Settings”
(http://{server}:{port}/_admin/globalemailconfig.aspx):
If the email settings cannot be determined from both places then the Email Notifications management
option is disabled from UI:
In order to submit workflow changes having Email Notifications option enabled the form must meet a few
validation rules:
1. At least one of the following options must be enabled: “Send Email to Project Owner” or “Send
Email to Specified Addresses”, otherwise a tip is shown: “Cannot perform the requested action as
at least one e-mail recipient option should be selected”.
2. The field “Recipients” is enabled only if the option “Send Email to Specified Addresses” is enabled.
3. If the field “Recipients” is enabled then it becomes required and its value should match the
pattern specified in the field’s description, otherwise a tip is shown “Please enter one or more
addresses in a form ‘[email protected]’, separated by a comma or semicolon”.
4. The Field “Approval Email Message” is required. If the field is blank a tip is shown “Please provide
an approval email message text”.
5. The Field “Rejection Email Message” is required. If the field is blank a tip is shown “Please provide
a rejection email message text”.
Solution Parts
Solution content
The source code of solution can be found in Src folder. It has the following content:
5. DMDynamicWorkflow.sln solution (VS 2010) projects:
1. DMDynamicWorkflow Sequence Workflow project;
2. Tests unit tests project.
6. InfoPath form source of InfoPath form and code-behind project for it (VSTO) for workflow
association details page;
7. DeploymentFiles folder contains .bat files for copying and deploying SharePoint solution.
Tests coverage
Implemented unit tests cover:
1. Approval logic (7 use cases);
2. Workflow Association Data XML parsing (11 use cases);
3. Building project sequence for workflow (5 use cases).
Installation notes
1. Set SiteUrl in Deployment/DeployPowerShell.cmd
2. Run Command Prompt as administrator
3. Run Deployment/DeployPowerShell.cmd
4. Go to http://server_name/pwa_name/_layouts/WrkSetng.aspx
4.1. click "Add a workflow link" link,
4.2. create workflow association based on “DM DynamicWorkflow” template and press "Next";
4.3. configure all required stages to be added to workflow and click "Submit"
5. Go to http://server_name/pwa_name/_layouts/pwa/Admin/EnterpriseProjectTypes.aspx page and
create project type by selecting newly created workflow association;
6. Go to http://server_name/pwa_name/projects.aspx and create project of newly created EPT;
Customization notes
1. To provide any changes in workflow template it is necessary to execute the following:
1.1. open DmDynamicWorkflow.sln;
1.2. make necessary changes;
1.3. click “Deploy” context menu item of DMDynamicWorkflow project;
1.4. run DeploymentFiles\RestartServices.bat.
2. To provide any changes to InfoPath form it is necessary to execute the following:
2.2 open InfoPath\AssociationForm.xsn file InfoPath designer;
2.3 ensure it uses proper path for code-behind project (InfoPath\AssociationForm\
AssociationForm.csproj);
2.4 make necessary changes;
2.5 publish form using “Network Location” option and specifying proper output
path(InfoPath\Publish folder should be used); local access should be empty;
2.6 run DeploymentFiles\CopyInfoPathForm.bat;
open DmDynamicWorkflow.sln and publish solution using “Deploy” context menu item of DMDynamicWorkflow project.
Workflow Visualization Web Part
Summary The Workflow Visualization web part displays a graphical view of a workflow using predefined images. It can be added to any project page.
Options
Document Library
All the images for the workflow are pulled from a document library.
The document library must have a column for storing stage UIDs so the web part can apply a separate
image for a particular stage.
The screenshot below shows a document library for the web part:
Web part options
The Workflow Visualization web part provides a set of options:
1. Document Library Name. The name of a document library for storing the images for stages and
“arrows”.
2. Image for the arrow. Image file from the document library that represents the “arrow”
between the stages.
3. Stage column for Stage UID. A column name of the document library to store a UID of the
stage.
4. Arrow Image Width, Stage Image Width and Stage Image Padding. A set of parameters for the
workflow images.
5. Rich Highlighting. The option provides an advanced view of the images, i.e., non-current
workflow stages are displayed grayed-out.
The screenshot below shows the workflow view if the “Rich Highlighting” option is not set:
Solution Parts
Solution content
The source code of solution can be found in WorkflowVisualization folder.
It has the following content:
1. WorkflowVisualization.sln solution (VS 2010).
2. Deployment folder contains .bat files for copying and deploying SharePoint solution.
Installation notes
1. Set SiteUrl in Deployment/DeployPowerShell.cmd
2. Run Command Prompt as administrator
3. Run Deployment/DeployPowerShell.cmd
4. Add application pool account to PWA Administrators group
5. Go to http://server_name/pwa_name/_layouts/viewlsts.aspx
6. Create a document library with a custom column “Stage UID”.
7. Upload images to the document library for the arrow and for each stage specifying the stage ID in
“Stage UID” column.
8. Add “Workflow Visualization” web part to a PDP.
9. Modify settings of the web part: enter the document library name, select arrow image and a
column for stage UIDs.
10. Go to http://server_name/pwa_name/projects.aspx, create project of workflow EPT and proceed to
a PDP with the web part.
Customization notes
To provide any changes to Workflow Visualization web part:
1. Proceed to the PDP with Workflow Visualization web part. 2. Click “Edit web part”, modify the properties and click “Apply”.
Workspace Project Custom Field Web Part
Summary
The Workspace Project Custom Field web part displays a list of selected project fields and custom
fields. It can be added to the project workspace.
Deployment
The Workspace Project Custom Field web part is implemented as a Sharepoint feature and is easy to
deploy using standard tools like stsadm.exe or Powershell. The sample code includes samples of both
types of deployment files.
Technical Highlights
− Web Part development
− Project Server Interface (PSI) development
Project Workspace List Viewer
Summary
The Project Workspace List Viewer web part displays Sharepoint list items from any workspace list.
Deployment
The Project Workspace List Viewer web part is implemented as a Sharepoint feature and is easy to
deploy using standard tools like stsadm.exe or Powershell. The sample code includes samples of both
types of deployment files.
Technical Highlights
− Web Part development
− Sharepoint development
Infopath Form Viewer Web Part
Summary
The InfoPath Form Viewer web part is used to display and capture survey information for a project. The
resulting InfoPath form is stored in a form library and the totals and averages from the survey are stored
in project custom fields. The survey can be designed and published from InfoPath.
Deployment
The InfoPath Form Viewer web part is implemented as a Sharepoint feature and is easy to deploy using
standard tools like stsadm.exe or Powershell. The sample code includes samples of both types of
deployment files.
Technical Highlights
− Web Part development
− InfoPath design
− Sharepoint development
− Project 2010 development
Report Builder Tool
Summary
The Report Builder Tool makes it easy to build common Project 2010 reports without any programming
or SQL knowledge required. The tool is web based and runs in PWA. The reports are generated in Excel
files and saved to report libraries for future use.
Deployment
The Report Builder Tool is implemented as a Sharepoint feature and is easy to deploy using standard
tools like stsadm.exe or Powershell. The sample code includes samples of both types of deployment
files.
Technical Highlights
− Excel development
− Sharepoint development
− Project Server Reporting Database
Excel Project Cost Capture
Summary The Excel Project Cost Capture tool is a web part that displays project financial data in Excel and provides an easy way to synchronize Excel data and project custom fields.
User Experience The Excel Project Cost Capture tool provides a web part that can be added to any PDP. The web part displays an Excel sheet with ribbon tabs and menus:
If Microsoft Office Web Apps product is installed the Excel sheet is editable from the browser page. By default, if the product is not installed, the sheet is accessible only in read-only mode. By saving the PDP the Excel web part updates project custom fields with the data from the Excel sheet cells.
Any project custom field can be bound to a separate sheet cell. In order to edit the bindings the Excel sheet should be opened in a standalone Microsoft Excel application. This could be achieved by clicking “Open in Excel” button at the ribbon. In order to create a binding a cell’s name should be assigned to a project custom field name. This could be done by selecting “Define Name” menu item on the cell’s right-click:
However, there are few restrictions to the cell’s name:
1. The name should not begin with a letter or an underscore. 2. The name should not contain a space or other invalid characters. 3. The name should not conflict with an Excel built-in name or the name of another object in the
workbook. If a project custom field name to be bound contains any of restricted characters, they all should be replaced by underscore (‘_’) in the cell’s name.
Solution Parts
Solution content
The source code of solution can be found in Excel Project Cost Capture folder.
It has the following content:
1. WebPart.CostBenefit.sln solution (VS 2010).
2. Deployment folder contains .bat files for copying and deploying SharePoint solution.
Installation notes
1. Set SiteUrl in Deployment/DeployPowerShell.cmd
2. Run Command Prompt as administrator
3. Run Deployment/DeployPowerShell.cmd
4. Add application pool account to PWA Administrators group 5. Make sure Microsoft Office Web Apps product is installed.