Configure Project Server custom fields with PowerShell

In my previous blog I talked about a complete PowerShell script for creating custom fields and one level lookup tables using Project Server PSI services. The uncovered part is to create a Graphical Indicator custom field.  So, here I will be explaining how to add a graphical indicator custom field in project server. In the XML file, which contain the detail for adding the enterprise project server fields the structure for representing the graphical indicator is Thus, to create a graphical indicator We have used an attribute IsIndicator whose value need to be set as “Yes” . Add the child which will contain the Indicator value to be displayed and the Image ID of the image to be used for that value as indicator. To get the Image Id for the values perform following steps: Login to PWA Go to Server Settings->Enterprise Data->Enterprise Custom Fields and Lookup Tables->New Custom Field On New Custom Field page under Values to Display select Graphical Indicators. Do F12 of the page and then expand the image dropdown and using the Select Element option of the F12 window select the required image icon. The corresponding image information will get highlighted. To get the image ID for creating the custom field we must increase the image index value by 1. e.g. In below screenshot the name for cross image is cf_54p.png.  So, the Image Id to be used for PowerShell scripting will be 55. The PowerShell script for adding the graphical indicator is as follows: if(-Not [string]::IsNullOrEmpty($customField.IsIndicator)) { if ($customField.IsIndicator.Equals(“Yes”,        [System.StringComparison]::CurrentCultureIgnoreCase)) { $IndicatorList=”” foreach($Invalue in $customField.Indicator) { $IndicatorList =$IndicatorList+”[[== “+$Invalue.Value+” ][“+$Invalue.ImageID+”]]” } $customFieldRow.MD_PROP_GRAPHICAL_INDICATOR=$IndicatorList } } In above code if the IsIndicator attribute value for a custom field in the XML has the value “Yes” then it is an indicator custom field. To set the indicator values to be added we parse through each of the Indicator child and generate a string assigned to $IndicatorList variable which is then assign to MD_PROP_GRAPHICAL_INDICATOR property of custom field row. Now the import part is the string we are creating for the indicator values to set. +“[[== “+$Invalue.Value+”        ][“+$Invalue.ImageID+“]]” The string is formed as First put 2 open square brackets then 2 equal to (=)  sign. After that give a tab space and add the value to be displayed. Then give 2 tab spaces and a closing square bracket. Opening square bracket and the Image ID to be displayed. At last 2 closing square brackets. If tab space does not work in the PowerShell IDE. You can create the string using a text editor and paste it in your script. Thus, your graphical indicators will get easily added with these simple steps using PowerShell scripting. Hope my both blogs were helpful to you. Happy PowerShell Scripting!!

Configure Project Server custom fields using PowerShell

Working with Project Server many a times we come across a requirement of creating numerous custom fields and lookup tables which is a time-consuming job. To, overcome this I will be sharing with you how to create an automated script using PowerShell script. I have used Project server PSI services which will be complied in the script itself to generate an assembly to carry out the operation.  The same operation can be accomplished with CSOM also but due to limitation of not creating Graphical Indicator fields used PSI services. The complete PowerShell script is attached and comprises of 3 files. Below are the details: File Content Deploy-Config.PS1 Contains details of Project Server instance to be used. DeployFields-PWA.PS1 Complete Power shell script file. ProjectServerFields.XML Contains details of custom fields and lookup tables that needs to be created. To run the PowerShell script user must have admin rights and permission to run PSI services. Using DeployFields-PWA.PS1 script, you will be able to create single level lookup tables and custom fields for any entity type (project, task, resource). A log file is also created under the folder where the script file resides which shows the detail of the lookup table and custom fields being created. Let’s discuss the various steps needed for deployment. Load Microsoft.Office.Project.Server.Library in the file by writing below command at the top of the script file[System.Reflection.Assembly]::LoadWithPartialName(“Microsoft.Office.Project.Server.Library”) Load the Deploy -Config.PS1file to read Project Server Instance details in the script. Test-IsAdmin method is used to check user running the script has administrative rights or not. If Yes, then will move further else exit. Creating an assembly from the PSI WSDL service at run time Here, we will be generating the precompiled assembly for the custom field and lookup table PSI services. For this GetPSIServiceAssembly param([string] $webServiceUrl, [string[]] $referenceAssemblies)  method is created and parameters being passed are: PSI WSDL URL and the Assemblies references required to compile the WSDL. The assembly references are: “System.dll”, “System.Web.Services.dll”, “System.Xml.dll”, “System.Data.dll”. Creation of Enterprise Project server fields. The WSDL assembly created in above step will be used to create the project server enterprise fields. A single PowerShell method LookupTable_CustomFieldsCreation is created in which we will first create the lookup tables and then the custom fields.The lookup table PSI service url is:+ “/_vti_bin/psi/LookupTable.asmx?wsdl”The custom fields PSI service url is:+ “/_vti_bin/psi/CustomFields.asmx?wsdl” Creating lookup tables Read each entry of lookup tables from ProjectServerFields.xml file. If lookup table with same name exist in project server, then continue with the next. If the lookup table doesn’t exist, then create a new lookup table row.  Creating custom fields Get the entity id of the various entity type i.e. project, task and resource Get the list of existing custom fields associated with each of the entity type. Get the Lookup table id if custom field is associated to lookup table. If custom field do not exist create a new custom field row.  To run the script, give the path of DeployFields-PWA.PS1 file on Windows Power Shell Console. This is how lookup tables and custom fields are created using power shell scripting. In my next blog I will be explaining how the Graphical Indicators are created using the power shell script. You can get the complete PowerShell script package from here.

AdValue Add-On for Project Server | Advaiya

Project Planning is one of the most significant and crucial parts of Project Management. Planning depends on the Project Manager and project leads knowing how they drive the project. This often changes from project to project and team to team, so having a framework to enforce policies and best practice for the team to use becomes critical for the organizations. The accuracy of Project Planning mainly depends on: –    How well the project goals are defined and understood by project team –    How well the activities and techniques are defined to achieve these goals thus optimizing your resources, cost, and schedule These two factors vary by different types of projects which is explained in the graph below No doubt effective project management and execution is needed for all kinds of projects. A good project plan lowers the uncertainty and risk in all cases. Advaiya AdValue offers customized Project Plan templates specific to organizational standards. The Standard Project Plan Templates like Agile Development, Software Development are built-in which can be tailored to specific needs when delivering the AdValue solution. Along with Project Planning, Project status reporting is another time consuming weekly activity performed by the project manager and project lead the Advalue solution answers. AdValue minimizes the time spent writing a status report by providing automated weekly status reporting. The Weekly Status Report is embedded into the Project Workspace. Project Managers can generate the weekly status report whenever they want. The report summarizes the Risk, Issues, Milestones and Current Week Task Summary in an attractive report. Under Weekly Project Summary, A.K.A. Executive Brief, the Project Manager can enter the highlights of the week’s project activities, major decision, and explanation of the KPIS. The Report is created when the Project Manager clicks on the Create Report button at the bottom. When the report is created, and everything is to the Project Manager’s satisfaction, they use the Save & Copy button. This saves the report in Project Workspace document library for future reference and copies the report to the system clipboard to be pasted into Word or Outlook email to share with the project stakeholders.   The features of AdValue are entirely customizable or fully operational out of the box. Advalue works across all industries and from small to large, and very large enterprises. Stay Tuned to my upcoming blogs on the many more features of Advalue!

Automation of Project Plan Backup

It’s often required that project manager /administrator in project server wants to track the changes done in the project plan or take the backup of a project plan for further reference. There can be a manual way to perform this action by Opening each project and saving the project plan from the project professional. In this blog, we are going to automate the process by creating a macro in VBA that will allow the administrator to take the backups of all the project without manually opening each project. A STEP BY STEP GUIDE TO GET THIS DONE IN MINUTES Get the List of Project in Excel using Odata Create a list of the projects for which you would like to export the MPP file. We will get the list of projects using Odata from project server in an Excel file and now follow these commands: •    Create a new Excel file. •    Go to Data Tab and in Get External Data Section, Select ‘From Odata Data Feed’ as shown below •    In the pop up window, enter the Odata Url of get the project server /_api/ProjectData/Projects()?$Select=ProjectName •    Click on Next •    Another Pop window will appear, Enter the User Name and Password  •    Pop window will come to Select Projects Table •    Click on Next, enter the name of data connection file. •    Click on Finish. •    Another POP window will come for Import Data as shown below, click on OK button •    Now List of Projects from Project Server will be displayed as shown below. •    To get the refresh list of project, go to Data Tab, Click on Refresh All. This will update the project list from project server. Take the Backup of the Project Plan •    Open Microsoft Project File “Backup Project Plan. Mpp” and Login with the PWA account for which backup is required. •    Copy the Project Names from Excel from Step 1 into to a mpp  as shown below •    If the Developer tab is not visible in Ribbon of Project Professional, go to File -> Options – > Customize Ribbon ? Check the Developer check box and Click OK •    Go to Developer tab and click on Visual Studio Visual basic editor will open and there will in the Module1 as shown below and Now Run the module from the ribbon button as highlighted. This will open the project one by one and create the mpp file in the Exports folder set up in C drive as mentioned in above script. Conclusion:  Using this approach project administrator can easily task the back of project plan. This mpp files can be used for reference in future.

4 Step Guide to a Successful Project Online/Server Adoption Strategy

Achieving a successful Project Online/Server deployment would require focusing on driving adoption and making sure everyone understands the benefits of working with the new solution. Driving adoption is about understanding the business challenges that will be addressed with the new solution and ensuring the benefits are embraced by your organization. There are four key steps to a successful adoption strategy: •    Establish a vision and create business scenarios •    Prioritize features and create adoption plan •    Assign resources and deploy the adoption plan •    Measure success and share results   Establish a vision and create business scenarios Setting the business vision for your adoption is critical for success. The vision should list the targeted business objectives and serve as the guild post for your team as you progress through planning and deployment. The vision will also help with securing buy-in throughout the organization. When setting the vision, be sure to include and involve your stakeholders. This means you must understand who your stakeholders are, what are their business scenarios and own challenges. You may have to choose several individuals from multiple departments depending on the size of your organization. Don’t be afraid to identify more stakeholders than you think you will need. All these stakeholders can be maintained in the Stakeholder Register with relevant details. Setting the vision statement requires asking several questions during a vision workshop and then deriving the idea from the answers to these issues. Here are a few: 1.    What are our current portfolio management and collaboration challenges? 2.    Why are we making this organizational change now? 3.    How does a change support our overarching vision and strategy? 4.    How does a change in how we work, change the organization? 5.    What does success look like? 6.    How will a more open way of working help the organization? 7.    How will a more open way of working help the employees? Again, you will want to run several workshops, inviting those stakeholders who will be driving and supporting the change, and ask several questions Create your set of business scenarios including the current challenges that affected stakeholders and departments. Prioritize features and create adoption plan Once you set the vision and business situations, you will need to determine the solution for each of the business scenario challenge is your next step. This may require describing the solution before identifying the solution. To do this, put the solution regarding the user, or user story: As a , I want to , so I can . From the list of user stories, you can identify the features within your solution. Also, determine the features which are hurdles or resistance to the adoption plan. Create a solution to the high-friction functions that reduce resistance either through automation or overpowering value. Prioritize your features based on the features complexity, impact and value to the organization. You can do this using a scoring (1-5 or H/M/L) system or regarding the stakeholder’s requirements (Need, Want, OK). While establishing your solution and prioritization, it is an excellent time also to identify the success criteria to measure the impact of your deployment. Establish success criteria using the SMART mnemonic (Specific, Measurable, Attainable, Relevant and Timely). Think about how you will collect both quantitative and qualitative data. To start and baseline your measure, find out what they are currently. Document your success criteria using OneNote with a section for your success criteria including the Description, Source, Metrics, and Goal. An essential ingredient for a successful adoption plan is to create a champion or Ninja program. The program will be filled with your peers who are passionate about Project Online and can evangelize to the organization to learn more about the solution. This will also take some of the stress off the core project team, discover new opportunities to innovate and provide feedback. Start with those who are enthusiastic who can commit a little time and effort and create an individual Yammer group. By providing them with a little extra training and support, they will be able to run their brown bag sessions. Establish a regular rhythm with your champions/ninjas to foster engagement to learn more about what is working and what is not. Don’t forget to provide them with recognition and praise. You can do this through badges they can use on their email signature line or special privileges. The adoption plan should also contain a mix of activities to maximize impact and approval. Activities include enterprise announcements or newsletters, engagement events, and training. Announcements and Newsletters are great for creating a buzz within the organization. Engagement events are a perfect place to create a party-like atmosphere where you can further motivate and encourage with contests, giveaways, and recognition. Training is essential to ensuring that employees know how to use Project Online/Server to get their work done. Assign resources and deploy the adoption plan It is time to put it all together and put your planning into action. Assign the key resources and begin to implement your adoption plan. Continue to bring awareness of roll out activities to the organization through posters, booklets, countdown/announcement emails, and tips and tricks email. Start these at least 4 to 8 weeks before launch and keep them short and sweet. Have a clear call to action links for more information. Don’t be afraid to address a commonly asked question or enable two-way communications using Yammer or Groups. Schedule the engagement events and community activities 4 weeks before launch. Invite champions/ninjas to small open sessions to show off their favorite feature and answer question. Conduct lunch and learn sessions on a regular rhythm and encourage attendance with incentives. Training and support will continue beyond launch. Help the users understand why the organization is using the new solution and show how they will benefit from Project Online/Server. Incorporate a learning center full of training guides, videos, tips, and tricks. Don’t forget the engage your champions/ninjas to help users learn the innovative benefits of Project Online/Server to getting work done. Measure success

What is the Critical Path?

Reposted from www.mpug.com If your goal is to make certain that projects are completed on time and within budget, then understanding the “critical path” is, well, critical. According to the Project Management Institute (PMI)®’s Project Management Book of Knowledge (PMBOK) 5.0, critical path is defined as the “sequence of activities that represents the longest path through a project, which determines the shortest possible duration.” It plays an important role in project scheduling and must be constantly monitored to ensure that the project progresses as per the schedule. The tasks that lie on the critical path are called “critical path tasks.” If any of the critical path tasks are delayed, the whole project is delayed. Want to Learn More about Critical Path? Learn more about the use of critical path in Microsoft Project from MPUG’s on-demand webinar, where Darrin Lange, director of operations and project management at Advaiya, presented on “Using Microsoft Project to determine where projects lie in relation to the critical path.” Watch the session on-demand. To determine a critical path task, enter your tasks into Microsoft Project and establish the duration and predecessors. You can add buffers to account for limited resources or to cover project uncertainties. In return, Project will show you the Early Start, Early Finish, Late Start, Late Finish, Free Slack and Total Slack. Figure 1 shows the critical tasks highlighted in yellow. In the Gantt Chart you can see the critical path task bars in orange. In this Figure we can see that the tasks 1, 3, 4, 6, 7 and 8 are critical path tasks. If any of these tasks are delayed, the whole project will be delayed. Tasks 2, 5, 9 and 10 aren’t on the critical path; delays within the total slack won’t cause the whole project to be late. Early Start, Early Finish, Late Start and Late Finish are determined by conducting a forward pass and backward pass through the precedence diagram or workflow diagram. This shows a breakdown of the tasks you need to accomplish in order to deliver the entirety of the project. Project shows the network diagram via a task view (Figure 2) and you can add columns to show the Early Start, Early Finish, Late Start and Late Finish (Figure 3). Knowing how much a task can be delayed with the use of settings can save the project schedule and budget. With the determination of critical path, we can also determine “float” or “slack.” Slack is the amount of time a task can be delayed without any delay in the successor activity or the project finish date. Critical path tasks can have zero or negative values for slack. Critical path tasks that have a negative value for slack are behind schedule. We refer to slack in two ways: “Free Slack” and “Total Slack.” Free slack is the time a task can be delayed without delaying its successor task. Total Slack is the time a task can be delayed without delaying the project finish date. Figure 4 shows Free Slack and Total Slack in Project. The tasks on the critical path have zero Free Slack and zero Total Slack. Task 2 has a Free Slack of zero days and a Total Slack of seven days. Task 2 will cause task 5, its successor, to delay after zero days but won’t delay the project finish for 142 days. As project managers, we need to know which tasks are critical path tasks for several reasons: Resource managers are going to ask the PM if a resource is working on a critical path task to understand how personnel issues will affect the project. Executive sponsors will ask the PM if a task is on the critical path to understand tactical and strategic options. Team members will need to be instructed as to whether a task is on the critical path to ensure adherence to the deadlines. Project management office (PMO) directors will ask the PM whether a task is on the critical path during task escalation. This general overview shows how understanding the critical path, and its key components: slack, float, early and late Start, and early and late finish, allow the PM to predict accurately what effect changes to tasks will have on the project. Knowledge of the critical path will also enable the PM to handle complicated projects better, give informed decisions to stakeholders and department heads, and ensure the likelihood of the project being successful. This article was first published in www.mpug.com

6 Essential Elements for Your Project Team Site

Reposted from www.mpug.com Project collaboration and communication are vital to the success of a project. We have all heard it said, but, what does it really mean? Proper subjects on emails? Setting up a thoughtful agenda for meetings? Creating a proper level of specificity in your work breakdown structure? Following PMI’s best practices when setting up a WBS? Conducting daily meetings with the team? Tracking all of the action items? Creating a Yammer group? The truth is that all of this could be the right amount of collaboration and communication. It depends on the team. To coalesce all of the tools, statistics, collaboration and communication into a single location, use a project team site, also known as a project portal. When making choices about setting up your project team site, you will also want to consider document management, issue and risk management, deliverable management, discussion boards, chat integration and project reports. Let’s explore how SharePoint and Project Server support project team sites and how you can modify and explore SharePoint Project team sites to suit the needs of your project and your project team. Document management: Starting with document management, you’ll more than likely have many artifacts for a project. The best place to store them is in a document library. Having one location that team members access documents and keep them updated ensures a single version of truth. With version history enabled, team members can always access previous versions without any confusion about which version is the latest. For virtual teams, another fantastic feature is document co-authoring. This allows multiple team members to work on a common document at the same time. Many people find this to be particularly helpful during brainstorming sessions in addition to other project meetings with your virtual teams. Issues and risks management: Project Online and Project Server, by default, are configured with issues and risks management. Project managers, in consultation with other stakeholders, can log all project-related issues and risks directly into their respective registries. In addition, project or enterprise specific attributes can be included in the registry. These attributes may include priority, impacts, owner, mitigation plans, etc. along with widget, page, layer or other associated information. The logged issues and risks can also be linked to other items such as tasks or deliverables. These lists can then be used during project meetings or risk/issue committee meetings and made accessible to all team members via a browser and login. Deliverables management: Enabling deliverables management within the portal can also greatly improve the collaboration and communication within the project. Deliverables created in Microsoft Project Professional are directly synced with the deliverables list of the project site. Stakeholders and sponsors can then quickly view and track the deliverable without opening the project plan. Discussion boards and newsfeeds: More important for virtual teams, these SharePoint web parts can be leveraged for active collaboration among team members. Team members or project managers can discuss any topic or track questions or concerns on the project forum, thereby allowing other team members to respond with their insights or answers. This keeps all the team members engaged while at the same time recording all of the communication that led to the topic’s final disposition for future reference. Chat: With a familiar look and feel, Yammer is actively being adopted by organizations to enable deeper collaboration and communication. By adding the Yammer web part to your Project team site or portal, you increase visibility to the project’s Yammer topics and discussions. Yammer can make your outside team members feel less dispersed and more engaged. Project reports: Having the ability to show reports directly on the project team site or portal will help to keep the project stakeholders and sponsors up to date with actual costs, variances from baseline, status of critical tasks, delayed tasks, etc. With Project Online and Project Server, you can create and configure project reports that drill down on project metrics and provide insights at a glance. Reports with graphs and charts can deliver insights to the stakeholders that will help them be more proactive and communicate more effectively. Once you have settled on a Project team site or portal to use, Project Online and Project Server allow you to save the team site as a template. If needed, you can even use different team site templates for each of your enterprise project types. With the success of a project lying squarely on your shoulders and with collaboration and communication being such a big part of that success, don’t dismiss the power of a well-planned project team site or portal. By using Project Online and Project Server along with SharePoint to create a fantastic team site, you’ll facilitate collaboration and communication and bring success to your projects. This article was first published in www.mpug.com

Task Path and Critical Path – Project Professional 2013

In the blog ‘Seven Project Professional features to keep your project plan up-to-date’, I talked about ‘Task Path and Critical Path’ in brief. Let’s dig it more. Using task path project 2013, you can quickly see all the predecessors of the selected tasks in the Project Plan. This feature helps when you have a complex project plan. To view the Task Path in Microsoft Project Professional 2013, in the ribbon click Format-> Task Path and click the dependency to be highlighted. Refer the image below: Once the ‘Task Path’ is selected, you can select any task in the Project Plan. The Gannt Chart displays the selected dependencies of that task, see in the below image: This is a new feature of Project Professional 2013 and it helps you to quickly check the dependency of a particular task in your Project Plan. Just before the ‘Task Path’ option, there are ‘Critical Tasks’ and ‘Late Tasks’ option which allow you to quickly see the late tasks and critical tasks in the Gannt Chart. Critical Tasks are those tasks which directly impact the ‘Project Finish’ date. Using this option, you can quickly see the critical tasks of your project and being a project manager, you may keep track of those specific task for project success. This way ‘Task Path and Critical Tasks’ features can potentially help Project Managers in knowing the risks associated with project schedule, identifying the late tasks, identifying the resource dependencies for completing a task, etc. Same can also be used when you need to communicate the importance of certain tasks completion to your team or management. Stay connected, another blog is in line, where I will discuss about ‘Resource Over allocation’. Happy project planning 🙂

How to import and export project schedule from spreadsheet to Project

MS Excel is one of the most favorite tools for non-MS Project users for creating and managing project schedule. There are several scenarios where the project consists of many modules and each module is being managed by different people. In such cases, the module manager can update the schedule for their modules. For this, the project manager can export the project plan of a particular module and send it to the module manager. Module holder can update the plan in Excel and send it back to the project manager. The project manager can then import it back to the project plan.   Export the project plan to Excel-   Open the project plan in Project Professional. Go to File -> Export -> Save Project as File -> Other File Type -> Microsoft Excel Workbook -> Save As. Save As wizard will open. Choose a suitable location and click Save. The Export wizard will open. Click Next. Choose Selected data in Export Wizard – Data. Select ‘New Map’ in the Export Wizard – Map (This is a one-time process. Later you can use the same map for all the future exports and imports). Select ‘Tasks’ and ‘Export includes header’, Click Next. Select ‘Task range’ as Export filter. Add Microsoft Project field name in the mapping. You can add only 255 fields in the mapping. If more than 255 fields are added then it will show an error like below: Choose only those fields which you want to get updated by the module owner. Save the map in End of Map Definition. Give a suitable name for the mapping. Click Finish. It will ask for the task range to export in Excel. Enter the task IDs range. It will save tasks within the mentioned range in Excel and save it to the specified location. You may now give this Excel to the module holder for updates. Here I have changed the task tile of the eighth task to ‘Send the mail to GM, to Read’. Import Excel in project plan (Update the project plan from Excel) Open project plan in Project Professional. Open File -> Open -> Browse the excel which has the updated module plan. It will open the import wizard. Click Next. Select Existing Map in the Import Wizard – Map Select the previously created map in Import Wizard – Map Selection Click Next. Select ‘Merge the data into the active project’ option. Click Next. Select Task and Include headersin the Import Wizard – Map Options. Import Wizard – Task mapping will open where it will show the mapped fields which were mapped in the saved map. Select ID and click on Set as Merge Key. Click Next. Click Finish. Now the updates which are done in Excel will reflect in the project plan.     Conclusion– Using this feature of Project Professional, the module manager can update the project plan without having any Project Professional license and the project manager can also review the changes in Excel and update the actual plan accordingly.