Add custom event on JS Grid in Project Server

I have been working on project server customization and development since more than four years, and have helped clients with specific custom solutions to suit their business requirement. These customizations include site customization, custom web part creation and workflows. Recently I came across a requirement to attach an event on JS Grid of Project Server out of box Details Web Part on Project Server 2013. Here I share the solution we implemented for this requirement. The JS Grid control helps display and manipulate tabular data in Web Parts for Microsoft Project Server 2010/2013. Project Server Out of box web parts like My Task, Project Center and Details use JSGrid. 1. Get the JS Grid control instance Component object of ‘Details’ web part of Project Server is ‘projectDrilldownComponent’. If we add ‘Details’ web part on Project Detail Page (PDP), then projectDrilldownComponent object will be available. Using ‘projectDrilldownCompsonent’, get the JS Grid Control Instance Code: _grid = projectDrilldownComponent.get_GridSatellite().GetJsGridControlInstance(); 2. Attach event on JS Grid The JS Grid control offers the following client-side events. Link has details for the list of event on JSGrid. AttachEvent () function of JSGrid can be used to attach event on JS Grid. Argument for this function is the type of event to be attached and the function to be called on this event. In below sample code, we are attaching the OnRowFocusChanged event on JS Grid and getting the selected record. _grid.AttachEvent(SP.JsGrid.EventType.OnRowFocusChanged, function (eventArgs) { TaskChangeEvent(eventArgs) Below is the complete sample code. Create a text file with the below code and upload the file on any document library, and create a PDP page. Add the Details out of box web part from Project Web App category on the page. Also, add the content editor web part and give the reference of text file that we have uploaded in the document library.
How to filter specific project report on project site

In an organization, there are multiple projects and for each project there are multiple reports generated. For effective tracking and monitoring, various out of the box reports are available in the Project Server. Quite often it happens that project managers and team members demand for report view that corresponds only to their projects and not the entire organization. To meet this requirement, here is a solution that can filter out specific project data from the excel report, so that the user does not have to go through the complete list of projects to find data related to his project on the Project Site. Below is the excel report showing the count of completed tasks for all projects. Now to filter out the specific list, below are the steps to be followed: Add Slicer to the excel report. Add a web part to add the excel report. Add Content Editor web part to refer to the JavaScript file that will filter out specific project in the excel reports. Note: Pre-Requisite: SQL Server analysis services in Power Pivot mode must be installed. Detailed steps: Add Slicer to the Excel Report : Open the excel report in edit mode in excel from the SharePoint document libraryBusiness Intelligence. Select the Pivot Table. Under the ANALYSE tab, select Insert Slicer. On the Slicer window, select the project name (which will be used for filtering). Add Slicer as a parameter: Select Info of the excel -> select Browser View Options->a pop up window will appear -> Select Parameter tab -> Add the desired slicer so that it can be used as filter parameter in the web browser. Save and upload the excel report. Add a web part to add the excel report. Navigate to the project site page where we need to add the excel reports (For example – Project Q 003). Open the page in edit mode . Click on Add a Web Part A selection window will open. From the Business Data category select Excel Web Access web part and click Add. The web part will be added. Click on link Click here to open the tool pane to edit the web part and set properties We need to fill out the workbook field with the URL of the workbook. Browse to the location of the excel report and add it. Add Content Editor web part to refer to the JavaScript file that will filter out specific project in the excel reports. Upload the JQuery file named “jquery-1.11.2.min.js” into a SharePoint shared document library present on the root site. Upload the Java script file named “QueryFilterData.txt” into a SharePoint shared document library present on the root site. Before uploading the custom QueryFilterData.txt file, we need to update the Project Server URL. In this case – “http://tfspsdemo2013/PWA” is our development machine URL. Now add the content editor web part to refer to the JavaScript file. Click on Add a Web Part. A selection window will open. From Media and Content category, select Content Editor web part and add it. Edit the web part and enter the path of the JavaScript file (Name: QueryFilterData) added in Step 2 and click on Test Link. If the file opens in another tab then the link is correct. Click Apply and then click OK. Once all the steps are done, click Stop Editing and there you go! You will see the report data showing only filtered specific project data. You may also want to refer to the below Java script: Java Script Code: To find the project name: function getProjectNameCallback() { projectUID = spWebProps.get_fieldValues()[“MSPWAPROJUID”]; projContext = PS.ProjectContext.get_current(); projects = projContext.get_projects(); projContext.load(projects, ‘Include(Name, Id)’); projContext.executeQueryAsync( iterateThroughProjects, errorCallbac); } function iterateThroughProjects(response) { var enumerator = projects.getEnumerator(); while (enumerator.moveNext()) { var project = enumerator.get_current(); var id = project.get_id(); if (id == projectUID) { projectdetail = project.get_name(); if (typeof(projectdetail) != undefined) { // alert(projectdetail); PageLoad(); } break; } } }; Set Project Name to the Slicer: Each EwaControl is associated with only one workbook. The EwaControl.getActiveWorkbook method returns the workbook associated with the specified EwaControl object. ewaInstance =Ewa.EwaControl.getInstances().getItem(index); (In Case there is single excel report then use Index as 0, in case of multi excel report we need to iterate through it). var objCollection = {}; (Array) objCollection[‘Slicer_ProjectName’] = [projectdetail]; (Slicer_ProjectName is the Excel Slicer Name) ewaInstance.getActiveWorkbook().setParametersAsync(objCollection, SetParamsAsyncCallback, null); (This will set the Slicer parameter on the report).
How to authenticate Android, iOS apps to access Project 2013

Accessing OData endpoint of the Project Online 2013/Project Server 2013 in any custom mobile app requires some authentication mechanism. For accessing Project Online/Project Server 2013, you need to implement one of the below described authentication modes/method and also enable special permissions for the user who accesses OData endpoints via apps. Authentication Providers There are a variety of Security Support Provider Interfaces (SSPI) by Microsoft that are available for the authentication purpose. SharePoint users are most familiar with – Microsoft NTLM and Microsoft Kerberos. NTLM and Kerberos are the types of Windows Claims-based Authentication using Active Directory Services (AD DS) as the authentication store and user credentials validation. Kerberos as a security support provider has been a part of Windows since Windows Server 2000 and was proposed as a replacement for NTLM. The two often work together or in a mixture across Windows environments. Authentication methods for Android and iOS Project Online 2013 and Project Server 2013 support multiple authentication methods and authentication modes. When you plan for mobile app access, you must consider the available authentication methods for the mobile OS. 1.Claims-based authentication with mobile apps 2.NTLM authentication with mobile apps 1. Claim based authentication with mobile apps What is Claim? A claim is a simple piece of information that describes a given identity on some aspect. A claim can be held in the authentication token like an envelope that may contain other identifying information and a signature that can be used to verify that the token is not tampered on its way from remote machine to your system. Claim based authentication Claims-based authentication is now a more general way of authentication, which allows users to authenticate on an external system. It is the process of establishing users’ identity and ensuring that the information is not tampered. Courtesy TechNet library Flow for Claim based authentication with app 1.Request to Project Online 2013 via web view 2.System redirects user to the authentication page of Office 365 3.After successful authentication to Office 365, it will return cookie and tokens 4.App validates the cookie and tokens 5.Once the token and the cookie is received, the app is able to access ODATA 2. NTLM authentication with mobile apps What is NTLM authentication It is the windows challenge/response (NT-LAN manager) authentication protocol used on networks that include systems running the Windows operating system and on stand-alone systems. In terms of the mobile app, an Interactive NTLM authentication over a network typically involves two systems: a mobile app, where the user is requesting authentication, and a domain controller, where information related to the user’s password is kept. Un-interactive authentication, which may be required to permit an already logged-on user to access a resource such as a server application, typically involves three systems: a mobile app, a server, and a domain controller that does the authentication calculations on behalf of the server. Flow for NTLM Authentication with app 1.A user accesses a mobile app and provides a domain name, user name, and password. The mobile app computes a cryptographic hash of the password and discards the actual password. 2.The app sends the user name to the server (in plaintext). 3.The server generates a 16-byte random number, called a challenge and sends it to the mobile app. 4.The app encrypts this challenge with the hash of the user’s password and returns the result to the server. This is called the response. 5.The server sends the following three items to the domain controller: 1.User name 2.Challenge sent to the app 3.Response received from app 6.The domain controller uses the user name to get the hash of the password from the Security Account Manager database. This password hash is used to encrypt the challenge. 7.It then compares the encrypted challenge computed in step 6 to the response computed in step 4. If they are identical, authentication is successful. Working with Project Online 2013 Accessing Project Online 2013 via mobile apps require some more efforts. You need to develop the header to access project server online otherwise it will return an unauthorized access error. To create a valid header, first you need to verify two cookies FedAuth and rtFa. If they exist, then create a new header named Cookie and add to your request, then after the GET request can be made to the server. 1.Write a code to read data from server 2.Set HTTP method as ‘GET’ 3.Add another header Cookie and add both cookies ‘FedAuth’ and ‘rtFa’, which are required to access Project online Working with Project Server 2013 To access Project Server 2013, app required to implement NTLM authentication. For iOS, there is already a library which provides NTLM authentication, for android either you can write a code manually or can use third party libraries like https://github.com/masconsult/android-ntlm Accessing Project server OData endpoints with mobile apps Now that you have finished with the complicated part, all you need to do is, write a code to access web service end points (OData endpoints). OData API URL To access OData, you also need the URL of Project Online 2013 or Project Server 2013 OData API. In most of the cases it will be: / _api/projectdata/ Try this URL with your browser to list the end points. Then use endpoints according your need. Permissions required To access OData services, you need to enable reporting permissions which can be found in global permissions. Using $filter, $select and other oData query oData queries can be used with a mobile app by ensuring that the URL you develop for query contains valid characters. Conclusion Using the above described method, a user can authenticate mobile apps (Android or iOS) to access Project Online 2013 or Project Server 2013. Users can also call GET web requests in the app to access Project Online 2013 or Project Server 2013 data like current project, resources, timesheet, tasks and assignment information. For additional HTTP verbs like PUT and POST, one needs to add some
How to implement QuickProject in your organization

Microsoft Project Server 2013 is a flexible on premise solution for Project Managers, PMOs & team members in project planning, project tracking and managing portfolio; but it is only accessible via a PC or a laptop. Staying connected with the project is an all-time need for project team. Considering this challenge, Advaiya has developed QuickProject project management app that provides a mobile interface to help project managers and team stay connected with Microsoft Project Server 2013. It has an easy and user-friendly interface which helps to track and update assignments anywhere and anytime. We have talked a lot about the key functionalities of the project management app in these blogs: How is project management on the go with QuickProject QuickProject app for Project Server 2013 Update timesheets on the go with QuickProject Let’s discuss on how you can implement this app. To get started with this app for your organization, as administrator, you need to ensure: – You provide acces rights to Project Server 2013 onpremise or online (whichever you have) to the users for whom you want to configure the app – You also need to ensure that you enable the & Status Broker Permission for these users. To enable ‘Access Project Server Reporting Service’ permission, follow these steps: – 1. Click on PWA/server settings 2. Select ‘Manage Groups’ under security section 3. Select group name 4. In Global Permissions, Under General section, check the check box for Access Project Server Reporting service. To enable ‘Status Broker Permission’, follow these steps – 1. Click on PWA/server settings 2. Select ‘Manage Groups’ under security section 3. Select group name 4. In Global Permissions, Under Time & Task Management section, check the check box for Status Broker Permission. The app works for both Project server 2013 (on-premise) as well as online accounts. If the app is configured with ‘Project server online’ PWA URL, the user will not be able to update assignment(s) and access timesheet to save and submit. If the app is configured with Project Server 2013 (on-premise), user can update assignments and also save and submit the timesheet. The quick link of QuickProject app on iTunes is available here. Some minutes spent on this app, will definitely let the user understand its ease of use and benefits. So, what are you waiting for, enable the quick configuration for your organization and get the Project access on your mobile
Advaiya launches QuickProject for on‑the‑go project management

Advaiya introduces a MS Project timesheet app QuickProject for Project 2013 users, which allows project managers and team members to manage their project activities with an easy interface available on their mobile devices. QuickProject, available online on App Store, features easier project monitoring, faster project execution and increased user adoption and better team interaction, from anywhere, anytime. It is first of its kind Enterprise Project Management iOS app developed to work with Project 2013 on premise as well as online accounts and extends the capabilities of Project Server to mobile devices. “Company-wide adoption of Microsoft Project Server 2013 is a challenge for many organizations today. Without a desktop/laptop, employees are unable to view/update their task status, submit timesheets and view project synopsis”, said Swati Shrimali, EPM COE Lead at Advaiya. “This app helps project managers and team members in their day to day project management on the go or even while working remotely, helping organizations in timesheet compliance process.” QuickProject is an ideal solution to help project managers, resource managers and team members to view and update their projects details, assignments, and timesheet status and to track the project details from anywhere, anytime. This app will be available for Android users very soon. For more information on the QuickProject application, visit – QuickProject MS Project Timesheet App. You can download the app here – QuickProject iOS app
Update timesheets on the go with QuickProject

Project Web App with its timesheet feature enables project managers to keep track of their team member’s work status. Team members can report their day to day work on hourly basis and view their assignments, and the project managers or resource managers can track the assignments of their team members. Time spent on administrative tasks like meetings, trainings, vacation etc., can be planned and updated using the timesheet. The time submitted by team members automatically updates the tasks and projects upon approval. QuickProject QuickProject for Microsoft Project Server 2013 helps in increasing the organization wide user adoption of timesheet. With QuickProject, you can view, update and submit the timesheet even when you are away from your desktop or laptop. The mobile app keeps the team members updated of the new assignments or when there are any changes in the assignment. Project managers, without logging into their systems, can remain updated of the timesheet status using the app. Some of the key features that make QuickProject a useful application in the day to day life of project managers and team members: Project managers or resource managers remain updated of the team members’ timesheet status, for example – whether the team member has filled the timesheet or not, which of the members have pending timesheet, etc. Team Members can view the assigned tasks according to the projects and get the task details. Team Members can view their timesheets – plan hours against each task and update the actuals with actual hours. They can then save or submit the timesheet. T Team members can even directly mark the task as complete if they are done with their tasks. The tasks marked as completed, directly goes to the status manager for approval. The calendar view enables to view assignments on the calendar. The app has a feature to set the tasks as Calendar Event, so that you may get the reminder for these task events. Is this exactly what you were looking for? Why not try it out? Click here to download.
Project management on the go with QuickProject

Implementation and customization of Microsoft Project Server 2013/Project Online specific to any organization, in itself is an extensive exercise which includes extracting the actual requirements, identifying pain points and providing the solution to best fit their needs. Even after deploying an end to end Enterprise Project Management solution within organization, making sure that users are using the system is another big challenge for organizations. Some of the challenges could be: Users look for specific information They need the information easily available for quick action System has all latest information and updates but users need to explicitly access the system to get information To overcome these challenges, Advaiya has launched a mobile app – QuickProject to ease the user adoption process for organizations who are using Project Server 2013/ Project Online for project management. Key features of the app are: Ability to access contextual information (project, task, milestones) from their mobile device Marking project task completion in a single click Tracking team’s timesheet status and do necessary follow up View project and milestones with brief details of each Setting reminders for tasks/milestones assigned View last accessed data while offline The app will be supporting Project Server 2013 and the upcoming versions will have support for Project Online 2013, Project Server 2010 and Project Online 2010. The mobile app is available for iOS and we plan to launch the app for Android very soon. Stay tuned with us for more updates on this.
Managing projects in Project Web App 2013

Project Management is a difficult road to travel. Very often, managing a project involves an on-going battle with deadlines, budget and resource allocation. Studies have shown that almost 30% of the projects do not meet the deadline or are off the schedule. Basically a delayed or unsuccessful project management is a result of an inexperienced and inexpert manager. Project managers role involve a lot of responsibilities such as creating, maintaining, updating schedule, coordinating with other team members, project managers, resource managers etc. In order to make the life of a project manager easy and to make project management tasks effortless, Microsoft Project Server 2013 brings Project Web App 2013 (PWA) which is a resilient web application that can be used to do anything from project management to filling timesheet, updating task status and creating project proposals to manage project portfolios. This well-built web application makes the life of project managers easy and comfortable and gives a new ray of light for inexperienced managers to learn and manage projects. The features which can be used by a project manager to successfully manage a project using Project Web App 2013 (PWA 2013) are: Record timesheet hours or task status of the project and team members. View, modify, and analyze information for one or more resources who are assigned to the tasks in projects. Obtain detailed information of an individual project or more than one project within an organisation. Easier automation of the process of receiving and requesting status information in the form of status reports. Understand the health of an organization in terms of cost and resources using OLAP reports interactively with the help of pivot charts or tables. Easy collaboration with Project Professional 2013 + Sharepoint 2013 + Microsoft Outlook 2013 for managing day to day task activities. Resources can give information about any project risks, issues or any other area which can affect the project health. There are some other great resources from where you can get more information on Project Web App 2013 – Office.com and TechNet. You can also post your Queries, issues and can initiate discussions on a discussion forum.
Quick look on Microsoft Project Professional 2016

The next version of Microsoft Project Professional, i.e. Project 2016 is now available for preview. I downloaded the 64 bit version and did some hands-on. Both the bits are available as below: Project 32 bit Project 64 bit Tell me what you want to do: The new look is familiar to the users who have been using Project 2010, 2013, same ribbon interface and intuitive UI continues. An important add-on for new users is the ‘Tell me what you want to do’ feature. Through this add-on, the features are available on tips and user do not need to go deep with ribbons and tabs. Few screenshots as below: Clicking on Team Planner, launches the Team Planner view of the project Now, you only need to remember the feature names to access Microsoft Project Professional 2016 and the relevant interfaces will be quickly visible on your screen. Multiple timeline bars: Another feature of Project 2016 also adds to the user experience – the ability to add multiple timelines. You can have separate timeline views for few important summary task or for specific date range in the Project Schedule. As a Project Manager, you can create separate timeline view presentation for schedules, team and project tasks. To add timeline view, you can right click anywhere on the Timeline View and select Timeline Bar. This way you can communicate the different milestone timeline view or different representation of Project Plan to different stakeholders. App write back: I did not get a chance to do hands-on this feature but, this feature is about the ability to allow the change from App. Don’t have much insight to this feature but it would be a great change for developers and an opportunity further to deliver new robust apps. This is all about the new Project Professional 2016 based on my first day use. Stay tuned, more updates are inline 🙂