Project Programmability

This blog focuses on customizations and programming for Project Web App, Project Server, Project Professional and Project Standard. Includes User Interface (UI) customizations, Project Server Interface (PSI) and Visual Basic for Applications (VBA) Programming. It also covers Business Intelligence.
 
 

  • Project Programmability and Business Intelligence

    MSDN Webcast: Building Integrated Applications on the Project Server 2010 Platform (Level 300)

    • 0 Comments

    It is our pleasure to host Catalin Olteanu, Chief Product and Technology Officer, UMT and former Principal Development Lead for Microsoft Project to talk about extending Microsoft Project 2010!

    Webcast Description:

    Now that Microsoft Project Server 2010 is built on Microsoft SharePoint Server 2010, developers can take advantage of a rich platform and familiar tools to effectively build integrated applications and provide customers with shrink-wrapped solutions to common problems. Join Catalin Olteanu to hear lessons learned from developing UMT Project Financial Server 2010 in parallel with the Project 2010 release cycle.
    Project Financial Server 2010 is a complex, three-tier application that seamlessly integrates with Project Server 2010 and extends many of the out-of-the box components including demand management, the ribbon, the queue service, permissions, web parts, and the reporting infrastructure.

    Date:

    Starts: Tuesday, September 20, 2011 8:00 AM
    Time zone: (GMT-08:00) Pacific Time (US & Canada)
    Duration: 1 hour(s)

    Register for Event today!

  • Project Programmability and Business Intelligence

    Where in the SDK are the Visio diagrams for the RDB?

    • 0 Comments

    The Project 2007 SDK download includes E-R diagrams of the major tables and views in the Project Server Reporting database. The Project 2010 SDK download does not include the Visio diagrams, although it does have the new RDB_Field_Selector.xls tool, along with the Project2010_ReportingDB.chm schema reference. You can easily create database diagrams by using either Visio Professional or Microsoft SQL Server Management Studio.

    For example, with a Visio diagram, you can see the relationships between the timesheet tables:

    TimesheetTables_84

    If you have Visio Professional 2010 and access to a Project Server 2010 Reporting database, you can reverse engineer the RDB to new database diagrams. Use the Visio diagrams in the Project 2007 SDK download as an example.

    With the Reverse Engineer Wizard in Visio, select the Microsoft SQL Server driver, and then create a new data source, for example:

    VisioReverseEngineerWizard

    … and then follow through the wizard to select the tables and views you want for each diagram. In the Project 2007 SDK, there are four E-R diagrams:

    • EPM User Views:  this is a very crowded page, suitable mainly for printing on a large sheet of paper.
    • EPM Relationships:  shows the main relationships between the views in the previous page.
    • Timesheet Tables
    • SharePoint Data:  shows the links from tasks and projects to the Issues and Risks views.

    To create diagrams using SQL Server Management Studio, expand a Project Server Reporting database, right-click the Database Diagrams folder, and then click New Database Diagram. Select the tables you want, and SQL Server arranges them in a useful manner so that relationship lines don’t cross. Following are the timesheet tables in the Project Server 2010 Reporting database:

    SQLDiagram_Timesheets_84

    Hover the mouse pointer over a relationship to show the relationship details.Database diagrams can help you derive T-SQL queries to build reports.

    Note:  When you create enterprise custom fields with lookup tables, Project Server creates additional views in the RDB, and can also create more column pool tables as required, for that instance of Project Web App.

    For more information, see  Custom Fields and the Reporting Database in the Project 2010 SDK.

  • Project Programmability and Business Intelligence

    You can use Project with SharePoint Composites, too

    • 1 Comments

    The Guide to creating SharePoint Composites includes a 73-page download that explains SharePoint Composites. To quote from the download, “A SharePoint Composite combines data, documents, and business process in a useful, productive way. … A SharePoint Composite is a ‘do-it-yourself’ business solution.” The SharePoint Composites.docx handbook includes a detailed introduction along with common design patterns that can help provide ideas on how to integrate and present data for collaboration and BI, by using SharePoint.

    Although the Office 2010 integration points section includes only a brief mention of Microsoft Project, the handbook overall is a useful introduction to the concepts. For those who work with Project and Project Server, the handbook can help to expand your view of what is possible – as well as what is useful.  Similar terms you might have heard in the past include mashup and OBAs (Office Business Applications). The SharePoint Composites handbook extends those ideas specifically for SharePoint-based solutions.

  • Project Programmability and Business Intelligence

    Update of Project 2010 SDK–Online and Download

    • 0 Comments

    The Project 2010 SDK download and the MSDN online release are both updated. The updates have the same URLs as previous releases:

    New conceptual / how-to topic:

    ·Topic updates for MSDN online, since the last update on March 7, 2011:
    20 conceptual and how-to topics have updates. Most changes are relatively minor; the Change History table at the bottom of each topic shows significant changes.

    • Assn Element
    • ChangeList Elements
    • ChangeList Schema Reference
    • Developing Project Server Workflows
    • How to: Create a Project Server Event Handler and Log an Event
    • How to: Create a Proxy Assembly for WCF Services (SP1 note)
    • How to: Modify the Ribbon in PWA
    • Introduction to the ChangeList Schema and Statusing ChangeXML
    • Introduction to the SetAssignmentWorkData Schema
    • Prerequisites for ASMX-Based Code Samples (SP1 note)
    • Prerequisites for WCF-Based Code Samples (SP1 note)
    • Project 2010 SDK Documentation (overview of the Project 2010 SDK)
    • Project Server 2010 Programming Tasks
    • Project Server Error Codes
    • SetAssignmentWorkData Elements
    • SetAssignmentWorkData Schema Reference
    • Supported Project Fields and Field Information for Statusing ChangeXML (updated the valid change types for the Actual Overtime Work and Remaining Overtime Work fields)
    • Tables of VBA Object Model Changes
    • Walkthrough: Developing PSI Applications Using WCF
    • What's New for Developers in Project 2010 (programmability changes for SP1)

    600 managed code types (classes that include new descriptions for one or more properties, methods, and events) are updated. There are new code samples for the following PSI methods:

    • QueueDeleteProjects
    • ReadResource
    • UpdateStatus
    • ReadProjectStatus
    • SubmitStatusForResource
    • ReadStatusForResource
    • ReadEventHandlerAssociationsForEvent
    • UpdateEventHandlerAssociations
    • CreateEventHandlerAssociations

    New / updated items in the Project 2010 SDK download, which was last updated March 7:

    • Project2010SDK.chm is an HTML Help file that includes the same updated content that is online. In the managed code reference section, 99.8% of the types and members now have descriptions (26,530 out of a total 26,576 topics). That is up from 77.7% at RTM.
    • WINPROJ.DEV.hxs remains unchanged from the March update of VBA Help. There are instructions for replacing the local VBA Help file that was shipped with the Project RTM release.
    • IntelliSense files are updated for the PSI proxy assembly and the Project Server assemblies, to show descriptions of classes and members while programming in Visual Studio. The type and member descriptions have the same updates as in the HTML Help file (and in MSDN online).
    • The Microsoft.Office.Project.Server.Library.dll assembly is updated for distribution with third-party solutions for SP1.
    • Event handler solution: TestProjectEventHandlers.
    • Test application for the Queue System: UsingQueueSystem shows an example of when to wait for the queue, and when you don’t need to wait.
    • ProjTool has a minor update, so the functionality of the Project Details dialog matches the description in Using the ProjTool Test Application.
    • New PSI code samples include complete WCF-based solutions for the following events: ProjectEventReceiver: OnCreating, OnCreated, OnSaved. Other new solutions show the use of the following PSI methods: QueueDeleteProjects, CreateEventHandlerAssociations, UpdateEventHandlerAssociations, ReadEventHandlerAssociationsForEvent, using the ReadResources and ReadResource methods to get the RBS custom field, creating a changeXml parameter for a different resource with the UpdateStatus method, and using SubmitStatusForResource and ReadStatusForResource.
  • Project Programmability and Business Intelligence

    Timesheet Solutions for Webcast: Understanding the PSI in Project Server 2010

    • 0 Comments

    The MSDN Webcast: Understanding Project Server Interface (PSI) in Project Server 2010 (Level 300) presentation is available for download, when you register for the event. Several of the sample applications that were demonstrated in the webcast are available in the Project 2010 SDK download. The TimesheetSamples.zip file that is attached to this blog post includes the two example solutions for timesheets. (Steven Haden and Olivier Laymand, Microsoft Corporation, did the webcast and created the sample code.)

    • MyTsSample shows how to update a  timesheet for a resource, where the timesheet is in single entry mode.
    • TimesheetEventHandler shows how to use impersonation with a TimesheetEventReceiver.OnCreated event handler, to update the timesheet name.
  • Project Programmability and Business Intelligence

    Statusing for Manually Scheduled Tasks in Project 2010 SP1

    • 0 Comments

    Service Pack 1 (SP1) for Project Server 2010 enables you to use the UpdateStatus method to edit timephased data for manually scheduled tasks. Before SP1, you could update status only for automatically scheduled tasks. The attached UpdateStatus_ManualTasks.zip file contains the Visual Studio 2010 solution that will be included in the next update of the Project 2010 SDK download.

    The UpdateStatus_ManualTasks example is a test application that does the following, for a manually scheduled task or an auto-scheduled task:

    • Parses the project name, task name, number of hours worked, the optional assigned resource, and an optional status comment.

    • If no resource is specified, assumes the application user is assigned to the task.

    • Gets the GUID for the user assigned to the specified task.

    • Gets and validates the assignment data. Assumes only one resource is assigned.

    • Creates the changeXml string for the UpdateStatus method. For a simple test, converts reported hours to percent complete (maximum 100). If the application user specifies a different resource, adds the ResID attribute to the Assn element in the changeXml string.

    • Calls UpdateStatus, and then calls SubmitStatusForResource, for the single assignment.

    • Calls ReadStatusForResource to get an updated StatusingDataSet.

      The application also writes the datasets and the changeXml value to XML files, for use in testing.

    Note:  Until you install SP1, the UpdateStatus test application will work only with automatically scheduled tasks. SP1 will be available the end of June, 2011.

    To use the UpdateStatus test application, do the following:

    1. Use Project Professional to create a test project, add two manually scheduled tasks, set the task duration and start date, and then add yourself and one other user as resources. Assign one task to you and the other task to the other user.

      For example, name the project Test project, name the tasks T1 and T2, and then set the duration of each task to three days. Assume your user name is User 1, and the other user is User 2. Assign T1 to User 1 and assign T2 to User 2.

    2. In the app.config file, change the WCF endpoint address for the Project Web App instance you are using.

    3. Run tests, using various parameters. See the Usage method in the attached Program.cs file for parameter information. For example, run the following tests in a Command Prompt window:

      • UpdateStatus -p "Test project" -t "T1" -hours 6 -c "This is a comment"

        The output shows:
        Updating status for User 1 on task 'T1': 6 hours
                Manually scheduled task
      • UpdateStatus -p "Test project" -t "T1" -hours 6 -r "User 2" -c "This is a comment"

        User 2 is not assigned to task T1, so the output shows:
        The assignment on task 'T1' is for User 1, not for User 2
      • UpdateStatus -p "Test project" -t "T2" -hours 6 -r "User 2" -c "This is a comment"

        The output shows:
        Updating status for User 2 on task 'T2': 6 hours
                Manually scheduled task

    After each test, check the Approval Center in Project Web App for status updates.

    When you add a manually scheduled task that does not have a start date or duration, the default is eight hours of work. You can still assign a resource to the task and update the status.

    For example, if a task T3 has no start date or duration, and you use the UpdateStatus test application to set six hours of work for the assigned resource, Project Server sets the start date for T3 to the project start date, and then adds six hours of actual work. After accepting the status update, you can add the Actual Work column and the Remaining Work column to the Gantt Chart view in Project Professional . The work for T3 is eight hours, actual work is six hours, and remaining work is two hours.

    Gantt_6hWork

    If you add the Actual Work row to the Details pane in the Resource Usage view or the Task Usage view, you can also see the six hours of actual work.

    ResourceUsage_6hWork

    For more information about changes in SP1, see Announcing Service Pack 1 for Microsoft Project & Project Server 2010 in the Project team blog.

  • Project Programmability and Business Intelligence

    Upcoming MSDN Webcast (6/23): Understanding Project Server Interface (PSI) in Project Server 2010 (Level 300)

    • 0 Comments


    Just to highlight a webcast not to miss…

    Starts: Thursday, June 23, 2011 8:00 AM, Time zone: (GMT-08:00) Pacific Time (US & Canada)
    Duration: 90 Minutes

    This webcast helps you understand the changes and new features of Project Server Interface (PSI) in Microsoft Project Server 2010. We cover the following topics: dual interface ASMX and WcfImpersonation with WCFTimesheet, event handlers with impersonation, Single Entry Mode (SEM), and using a Project Web App (PWA) web part in other Microsoft SharePoint sites.

    Presenters:
    Steven Haden, Senior Consultant, Microsoft Corporation and Olivier Laymand, Senior Consultant, Microsoft Corporation
    Steven Haden is a senior consultant working for Microsoft Services in France. He is involved in large Microsoft Project Server and Microsoft SharePoint deployments. Steven is interested in both the architecture and the development of solutions. He is the author of the white paper "Hitchhiker's Guide to Demand Management"; to download it, visit http://go.microsoft.com/fwlink/?LinkId=200608.
    Olivier Laymand is senior consultant from Microsoft Services working on large SharePoint and Project Server deployments. He is involved in solution architecture definitions, development best practices and governance.

    More details and registration.

  • Project Programmability and Business Intelligence

    Upcoming WebCast: Project Server Development for SharePoint Developers (Level 300)

    • 0 Comments

     

    Let me highlight the following webcast that we conduct Thursday, May 05, 2011 8:00 AM (GMT-08:00) Pacific Time. Make sure to register now to get automatic reminder!

    MSDN Webcast: Project Server Development for SharePoint Developers (Level 300)

    Language(s): English.

    Product(s): Microsoft Project 2010

    Audience(s): Pro Dev/Programmer

    This webcast covers the Microsoft Project Server development features from a Microsoft SharePoint developer's perspective. We explain the logical architecture of Project Server in a SharePoint farm and compare the development features. We also give real world examples such as the ribbon UI, Windows Communication Foundation (WCF) server programming, web part with JS Grid, Workflow for Demand Management, and cmdlets for Windows PowerShell. The key takeaway is for SharePoint developers to understand the similarities in development to be able to join the Project Server developer community.


    Presenters: Steven Haden, Senior Consultant, Microsoft Corporation and Olivier Laymand, Senior Consultant, Microsoft Corporation


    Steven Haden is a senior consultant working for Microsoft Services in France. He is involved in large Microsoft Project Server and Microsoft SharePoint deployment. Steven is interested in both the architecture and the development of solutions and is the author of the white paper "Hitchhiker's Guide to Demand Management" (http://go.microsoft.com/fwlink/?LinkId=200608).


    Olivier Laymand is a senior consultant from Microsoft Services working on large Microsoft SharePoint and Microsoft Project Server deployments. He's involved in solution architecture definitions, development of best practices, and governance.

  • Project Programmability and Business Intelligence

    Project Developer Curriculum and Project Development for SharePoint developers

    • 0 Comments

    To help Microsoft SharePoint 2010 and Project 2010 developers conveniently find all relevant resources for Project 2010 development we have created unified information center “Project Developer Curriculum” that references all key resources – from blogs, SDK chapters, SDK code samples, Solution Starters to extensive list of on demand webcasts.

    This addition to strong Project Developer Center also talks specifically to SharePoint developers offering development approach comparison. We are preparing a separate webcast dedicated to this topic MSDN Webcast: Project Server Development for SharePoint Developers (Level 300) - Thursday, May 5, 2011 at 8:00 A.M.–9:30 A.M. Pacific Time (subject to change). Make sure you register now to get the reminder before the webcast!

    Q&A

    Q: What are the key resources for Project 2010 Developers
    A: Project Developer Curriculum is an awesome unified resource –in addition - Project Developer Center and SDK http://msdn.microsoft.com/project/ and Project Programmability blog http://blogs.msdn.com/project_programmability/  are great information resources.

    Q: Any ‘quick start’ type of technical training for Project 2010?
    A: Here you go http://www.microsoft.com/project/en/us/quick-start-training.aspx!

    Q: Is there any Project 2010 Demo Image?
    A: Yes, it’s available as Project 2010 Demonstration and Evaluation Pack for the 2010 Information Worker Demonstration and Evaluation Virtual Machine and as hosted experience as well - http://technet.microsoft.com/en-US/evalcenter/ee410540.aspx. Make sure to check the following recording for details.

    Q: Any additional generic Project 2010 resources?
    A: Product information, forums, partners, videos, training and learning resources and many more here.

    Thanks Steven and Jim for you contribution!

  • Project Programmability and Business Intelligence

    Learn How To Build a Silverlight App for PWA. . .

    • 0 Comments

    . . . which is, after all, a SharePoint application.

    See the SharePoint and Silverlight Training Course. It includes 30 hands-on labs, including labs on accessing data through WCF services.

  • Project Programmability and Business Intelligence

    Reading Enterprise RBS values: the Easy Way and the Not-So-Easy Way

    • 2 Comments

    There are a couple of ways to programmatically get the Resource Breakdown Structure (RBS) value for a Project Server user. The simplest way is to query the Reporting database, for example:

    SELECT [ResourceUID] ,[ResourceName] ,[ResourceBookingType] ,[ResourceIsActive] ,[RBS] FROM [ProjectServer_Reporting].[dbo].[MSP_EpmResource_UserView] AS res WHERE res.ResourceName = N'Linda Jones'

    The result on my machine is:

    ResourceUID

    ResourceName

    ResourceBookingType

    ResourceIsActive

    RBS

    0D455775-01CB-42E1-A481-A6F0F1F8208A

    Linda Jones

    0

    1

    User Assistance.DevDocs.SDK Writers

    To get the RBS by using the PSI is a bit more work. Because the RBS is an enterprise resource custom field that uses the RBS lookup table, you can use the following steps:

    1. Call the ReadResources method and filter the primary Resources table for the user name and GUID. Alternately, you can use the ReadUserList method to get all of the active resource names and GUIDs, and iterate through the ResourceDataSet for the specific resource. The attached example uses the –userList command line argument to have the application use the ReadUserList method, and displays the elapsed time for the method used.
    2. Call ReadResource with the resource GUID to get the full ResourceDataSet.
    3. Iterate through the ResourceDataSet.ResourceCustomFields table to get the CODE_VALUE for the RBS custom field (if it exists).
    4. Use a filter with the ReadLookupTables method to get a LookupTableDataSet that contains only the LookupTableTrees table for the RBS lookup table.
    5. Iterate through the LookupTableTrees table to get the LT_VALUE_FULL string that corresponds to the CODE_VALUE in the RBS custom field.  The LookupTableTrees row where the LT_STRUCT_UID element matches the  custom field CODE_VALUE contains the correct RBS string.

    The attached example also writes the various datasets to XML files, for debugging purposes. Keep in mind that the app user must have the ManageUsersAndGroups global permission, and the other permissions specified in the SDK topics for the methods used, in order to read data of other resources.

    The attached ReadRBS.zip file contains the complete Visual Studio solution for the example described in this post. To use the sample, change the server name and Project Server name for the endpoint addresses in the app.config file. The sample uses the WCF interface for Project Server 2010; however, it can be adapted to use the ASMX interface for Project Server 2007.

    For example, the following command gets the same RBS value shown by the Reporting database query:

    C:\Test>ReadRbs -name "Linda Jones"

    XML output from ReadResources:
            C:\Project\Samples\Output\RBS_ReadResources_UserInfo.xml

    Using ReadResources method: 412.309 milliseconds

    XML output from ReadResource:
            C:\Project\Samples\Output\RBS_ReadResource_FullUserInfo.xml

    XML output from ReadLookupTables:
            C:\Project\Samples\Output\RBS_LookupTable.xml

    User name: Linda Jones
            GUID: 0D455775-01CB-42E1-A481-A6F0F1F8208A
            RBS value: User Assistance.DevDocs.SDK Writers

    Press any key to exit...

  • Project Programmability and Business Intelligence

    Trials and Tribulations in Customizing the Project Center Ribbon

    • 0 Comments

    The How to: Modify the Ribbon in PWA article in the Project 2010 SDK works for the cases in the article, but in other cases, you can get a JavaScript error when you try to hide some ribbon controls in PWA. For example, if you hide the Zoom and Show/Hide groups in the Project Center ribbon, a JavaScript error occurs while debugging the Visual Studio project, and all of the ribbon controls are disabled on that page. The error occurs only for controls in the Show/Hide group.

    Here is the standard Project Center ribbon. The Visual Studio 2010 project that hides the Zoom group and the Show/Hide group is in the attached ProjCenter_Hide2Groups.zip file.
    ProjCenter_Default

    Here is the solution for the Project Center ribbon customization issue - at least with three of my machines, all of which have Internet Explorer 9, with both 32-bit and 64-bit IE. I did not test with IE8. The problems may be solved, or may be different, with future updates or different versions of Internet Explorer.

    1. Make sure you are running IE9 RTM (9.0.8112.16421). 

      On my Windows Server 2008 R2 machine, there was an earlier IE9 RC (9.0.8080.16413) build installed. When the ribbon customization feature was deployed, all of the ribbon controls were disabled on the Project Center page. When debugging in IE with F12, the Script tab shows:

      SCRIPT5022: Attempting to attach to Id: Ribbon.ContextualTabs.ProjectCenter.Home.ShowHide but this id is not present in the DOM
      cui.debug.js?rev=seEKIhJXfBClfYcr46fd3w%3D%3D, line 1282 character 13

    2. On Windows Server 2008 R2 (the development machine), open Internet Options in IE. On the Security tab, make sure that Enable Protected Mode is checked. If you change that option, restart IE.
      If the Enable Protected Mode option is not checked, all of the ribbon controls on the Project Center page are disabled, and the script error shows in the F12 IE debugger. With the earlier build of IE9, it didn't matter - the ribbon controls were disabled for Enable Protected Mode checked or unchecked.
      ControlsDisabled
    3. Note:   When viewing the Project Center page in IE9 on Windows 7 64-bit, it doesn't matter whether the Enable Protected Mode option is checked or not - the ribbon controls are enabled as expected:
      ControlsEnabled
    4. When you are developing the ribbon customization in Visual Studio 2010, test hiding controls one-by-one, before hiding an entire group. Run F5 after each change, to see the effect. That is fairly quick to do by using F5 in Visual Studio. For example, hiding the three Navigate controls works fine in the VS debugger, but hiding either of the ShowHide group controls results in the following error, as shown in the Visual Studio debugger. The error is in the dynamic cui.debug.js script:
      $3v: function() {ULSpEN:;
              var $v_0 = $get(this.$6_0);
              if (!CUI.ScriptUtility.isNullOrUndefined($v_0)) {
                  this.set_$2($v_0);
              }
              else {
                  throw Error.create('Attempting to attach to Id: ' + this.$6_0 + ' but this id is not present in the DOM');
              }
          },
      ProjCednter_VSError
    5. Break if you get that error, exit IE, and you can still deploy the solution and try it outside of the Visual Studio debugger. In the Solution Explorer, right-click the project, and then click Deploy. In my case, the ShowHide controls were hidden, and the ribbon controls were enabled as expected – so long as the Enable Protected Mode is checked in IE, and IE9 is the RTM build.

    I don't have an explanation of why this happens, but the previous steps are what works (on my machines – the famous WOMM test). You might find different issues, depending on your software versions and whether the Sun is having a coronal mass ejection that day. I suspect it is a combination of problems of the Javascript implementation in the Internet Explorer build version (naturally, it couldn't be Project Server's problem!).

  • Project Programmability and Business Intelligence

    Update of the Project 2010 SDK (March 2011)

    • 0 Comments

    The Project 2010 SDK download and the MSDN online release are both updated. They have the same URLs as previous releases:

    New conceptual and how-to topics:

    Topic updates since January 14, which was the previous MSDN online update:
    18 conceptual and how-to topics have relatively minor updates.
    50 managed code types (plus subtopics for properties, methods, and events) are updated, including new code samples for:

    New / updated items in the Project 2010 SDK download, which was last updated Sept. 2010:

    • Project2010SDK.chm is an HTML Help file that includes the same updated content that is online.
    • WINPROJ.DEV.hxs is an update of VBA Help that includes the latest changes in the VBA object model documentation. There are also instructions for replacing the local VBA Help file that was shipped with the Project RTM release.
    • IntelliSense files are updated for the PSI proxy assembly and the Project Server assemblies, to show descriptions of classes and members while programming in Visual Studio.
    • Event handler solutions: TestCreatingProject, TestCreatedCustomField
    • OLP sample is a solution that uses the following PSI methods: ReadProjectList, ReadProject, ReadWssData, ReadTaskWebObject, CreateWebObjectLinks, ReadTaskLinkedWebObjects, DeleteWebObjectLink
    • ProjTool complete solution, updated for Project 2010.
    • PWA Ribbon Customization solution.
    • New PSI code samples include complete WCF-based solutions for code samples that are published in the managed code reference, for the following methods: CreateResource, ReadResource, ReadResourcePlan, QueueCreateResourcePlan, QueuePublishResourcePlan, ReadDriverList, ReadPrioritization, and CreatePrioritization.
    • Microsoft.Office.Project.Server.Library.dll, file version 14.0.4999.1061, and redistribution license.

    --Jim

  • Project Programmability and Business Intelligence

    IE9 Jump List for Project Server

    • 0 Comments

    Alex Burton, a Project MVP in Australia, wrote a blog post, Creating a Internet Explorer 9 Jump List for Project Server.

    ProjectServerJumpList

    Very handy and easy to deploy by a Project Server administrator, to be available to any PWA user with IE9 who pins the PWA landing page to the Windows 7 taskbar.

  • Project Programmability and Business Intelligence

    Office 2010 Interactive Developer Map

    • 0 Comments

    The Microsoft Office 2007 interactive developer map has been available for several years, which is very handy for finding documentation on all Office 2007 products. Now Office 2010 has its own: See Microsoft Office 2010 Developer Map.

    Want to find documentation for OneNote Mobile on Windows Phone 7? Just click Mobile Applications in the Developer Map, click OneNote Mobile, and it takes you to the correct documentation  page. Yes, Project and Project Server are there, too.

    The interactive map includes relationships of all of the Microsoft Office client applications, server applications, mobile applications, services and Office 365 applications, and related technologies, development tools, and platform components. Just what we have been waiting for.

    The Learn Office Development page on MSDN is recently updated. It includes links to both of the Office Developer Maps, and also a link to the Office 2010 Developer Map poster.

  • Project Programmability and Business Intelligence

    New SharePoint 2010 book for developers

    • 0 Comments

    MS Press has just published Inside Microsoft SharePoint 2010, which will also be very useful for Project Server 2010 developers – since, as we all know, Project Server is an application service in SharePoint Server, PWA is a SharePoint application (a somewhat restricted one with a few specialized Project Server Web Parts thrown in), and project sites are pure SharePoint (with some custom lists).

    Although Chapter 11 on Creating and Developing Workflows primarily discusses SharePoint Designer, which we can’t use for Project Server workflows, it does provide a good overview of workflow concepts.

  • Project Programmability and Business Intelligence

    Security in Project Server 2010–What about Custom Permissions?

    • 7 Comments

    SharePoint Server 2010 handles user authentication through claims processing, which is a new feature for SharePoint and Project Server. SharePoint handles both Windows authentication and Forms authentication for Project Server users. For authorization, you can use the ReadResourceAuthorization and SetResourceAuthorization methods in the Resource service of the PSI. Because you probably don’t often change security authorization settings for users, you would normally go to the Manage Users page in Project Web App to select a user and set the global and category permissions.

    The Security business object in Project Server (with programmatic access through the PSI Security service) manages security groups, categories, templates, and the global Project Web App permissions. The Security service can add existing permissions or remove permissions from the sets available for Project Server users. However, the Security service does not have a method for creating a custom permission. For example, if you created a Project Server extension that updates a Siebel CRM system, you might want a custom permission that enabled users to use that extension.

    In Office Project Server 2007, you can create custom global and category permissions by modifying security tables in the Published database. Custom permissions show in the PWA lists of permissions, where Project Server administrators can secure the 3rd-party extension the same way they secure other Project Server features. The Walkthrough: Creating and Using Custom Project Server Permissions article is the only SDK example where an exception is made for changing the Published database. 

    NOTE:  The Project team would like some feedback on the importance of custom permissions. If you need to create custom permissions in Project Server, please respond to this post.

     In Project Server 2010, that process for creating custom permissions still works as it did in Project Server 2007. In future versions of Project Server, no modifications to tables in the Published, Draft, or Archive databases will be supported. Custom permissions and secure links that rely on table modifications still work in Project Server 2010, but that process will be deprecated. As an alternative, you may have to create your own user interface to manage custom permissions, or use claims augmentation in a custom application. For more information, see Claims Provider.

    Thanks,
    --Jim

    For more information about Project Server security, including a discussion of global and category permissions, see the Project Server Security Primer in the Project Server 2007 SDK and Security and protection for Project Server 2010 in TechNet.

  • Project Programmability and Business Intelligence

    Who builds the Project 2010 Solution Starters?

    • 0 Comments

    Some of you are asking how and who builds the Solution Starters.

    The Solution Starter specifications were done by the same group of people who design new components of Microsoft Project – the Program Managers inside of Microsoft. The specifications (“specs”) were then handed off to external company who coded, tested and released them into the MSDN Code Gallery.

    The company is called Internet Commerce Corporation (ICC)

    ICC is one of the first companies that started working with Microsoft Project Server 2010 as part of Microsoft's TAP program and continues to gain experience being involved in the development of a number of solution starters for Project Server 2010. Since then, ICC has built strong expertise in building EPM solutions based on the Microsoft Project Server 2010 Platform.

    Major focus areas in Enterprise Project Management for ICC are:

    • EPM Solution Implementation
    • Project Server 2010 deployment and configuration
    • Project Server 2010 customization and custom report development

    If you plan to do a coding project for Project 2010 and you need great developers with vast experience, feel free to consider them too!

    Jan

  • Project Programmability and Business Intelligence

    A chart for all (Office) reasons

    • 0 Comments

    The Microsoft Office 2010 Developer Map is now available for download. You can view it on a big monitor, or print it full-size on a 3-foot x 2-foot page. It shows the full stack of Office desktop and server applications, technologies, and tools – including mobile and cloud apps.

    For Office 2007, see the Microsoft Office 2007 interactive Developer Map. The Silverlight-based interactive map for Office 2010 is not yet available.

  • Project Programmability and Business Intelligence

    Scrum. Scrum? Scrum Solution Starter for Project 2010!

    • 0 Comments

    Yes – it’s here for few weeks now - http://code.msdn.microsoft.com/P2010Scrum. Details are here.

    Thanks for all the comments, keep them coming!

  • Project Programmability and Business Intelligence

    Have you tried the Project 2010 Solution Starters yet?

    • 0 Comments

    Looking for tools and way to easily get started building customizations by reusing and modifying code from an existing?

    Then make sure to look at http://code.msdn.microsoft.com/P2010SolutionStarter. There’s plenty of related resources, including deep dive webcasts. If you have any questions – please check the related discussion.

    Jan

  • Project Programmability and Business Intelligence

    Thinking about getting your certifications?

    • 1 Comments

    In case you are thinking about taking one or more exams towards your certification - for example the following:

    You might appreciate the Microsoft Certification Pack voucher codes with Prometric - http://www.prometric.com/microsoft/certpacks

  • Project Programmability and Business Intelligence

    Project 2010 SDK Update–January 2011

    • 0 Comments

     

    The Project 2010 SDK is updated for MSDN online. See Project 2010 SDK Documentation. New topics include the following:

    There are also many new and updated descriptions in the Project Server API reference. Plus, the following PSI methods have new code samples, all based on WCF:

    Note:  The update is online only. The Project 2010 SDK Download is still the September 2010 release; the download will be updated within two months, to include the new code samples. For now, you can get the ProjTool sample here

  • Project Programmability and Business Intelligence

    How to: Modify the Ribbon in PWA

    • 0 Comments

    Note:  For the updated article, see How to: Modify the Ribbon in PWA in the Project 2010 SDK. The attached PWA_Ribbon_Customization.zip file includes the complete Visual Studio 2010 solution.

    The attached PWA_Ribbon_Customization.zip file includes an article that shows how to develop and deploy a SharePoint feature that adds a Close Project button to the Project Details page in Project Web App. You can add a second feature to the same solution that removes, modifies, and disables several buttons and other controls on the Timesheet page, when timesheets are in the single entry mode. The code in the article is based on code samples by Adrian Jenkins and Maria Kouvlaki, Microsoft Corporation.

  • Project Programmability and Business Intelligence

    OLP Sample Code for Project Server 2010

    • 0 Comments

    The Object Link Provider (OLP) in Project Server 2010 enables the management of the Project-specific lists in a project site (issues, risks, deliverables, documents, and custom lists) and integration of the SharePoint lists with Project Server. The OLP  has the same functionality as in Project Server 2007; however, you can use Windows Communication Foundation (WCF) to develop OLP solutions for Project Server 2010.

    The attached code (OLP_Sample.zip) is a preview of an example that uses the CreateWebObjectLinks method, to be published in the next update of the Project 2010 SDK. Before you run the sample application, perform the following steps:

    1. Use Project Professional 2010 to create and publish a project with at least one task.

    2. Use Project Web App to open the project site.

    3. Create at least one issue or risk in the Issues or Risks SharePoint list of the project site.

    4. Change the OLP constructor values according to your example.

    5. Add a web service reference to http://localhost/pwa/_vti_bin/Lists.asmx, and name the reference WebSvcLists.

    This example performs the following tasks:

    • Verifies that the project, task, and project site exist and gets their corresponding GUIDs.

    • Links a task and a SharePoint list item (in this case, an Issue).

    • Links a task and a generic object.

    • Gets the list of SharePoint items that are linked to a task and writes the contents of the ObjectLinkProvider dataSet dsLinkedObjects to an XML file.

    • Gets a list of generic items that are linked to a task.

    • Deletes the links to web objects.

    For more information about how the sample code works, see Procedures 1-6 in How to: Use the OLP to Link an Object to a Task.

Page 1 of 10 (246 items) 12345»