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.

August, 2007

  • Project Programmability and Business Intelligence

    New Technical Article: "Importing Project 2007 Tasks from Excel Using a Managed Code Add-In"


    Jim has just posted a new technical article. Here are some details he sent me: 


    The article "Importing Project 2007 Tasks from Excel Using a Managed Code Add-In" is now published in the Technical Articles section of the Project 2007 SDK.


    Article URL: 


    Associated download: 


    The article:

      -- Explains how to develop a Project add-in that integrates with Excel, using Visual Studio 2008

      -- Summarizes the differences between C# and VB development for add-ins

      -- Includes extensive C# and Visual Basic code examples

      -- Explains examples of routines that validate and convert subsets of Excel task data for import

      -- Handles multiple task predecessors

      -- Shows a way to handle task predecessors that would create COM exceptions
      -- Shows how to configure ClickOnce for deployment of the add-in


    The download includes the complete C# and Visual Basic.NET code. Visual Studio Tools for Office (3.0), in Visual Studio 2008 (Beta 2), now includes templates for Project 2003 and Project 2007 add-ins. The new templates and ClickOnce publishing make it *much* easier to develop, deploy, and update add-ins for all Office applications.


    You can download the Beta 2 release of Visual Studio 2008 from

  • Project Programmability and Business Intelligence

    Working with the Custom Fields Data Table


    There have been a number of inquiries with regards to the custom field column definitions. So here they are:

    MD_AGGREGATION_TYPE_ENUM: Specifies the roll up type for a custom field.

    MD_ENT_TYPE_UID: Specifies the type of entity (project, task, or resource) for the custom field.

    MD_LOOKUP_TABLE_UID: Specifies the GUID of the lookup table to use for the custom field.

    MD_PROP_CHECKOUTBY: GUID of the user who has the custom field checked out for modification.

    MD_PROP_CHECKOUTDATE: Date the custom field was checked out for modification.

    MD_PROP_DEFAULT_VALUE: GUID of the default value in a lookup table for a custom field.

    MD_PROP_FORMULA: Formula that calculates the value of a custom field.

    MD_PROP_GRAPHICAL_INDICATOR: Definition of a graphical indicator for a custom field.

    MD_PROP_GRAPHICAL_INDICATOR_TOOLTIP: Specifies whether the graphical indicator has a tool tip.

    MD_PROP_ID: Integer ID of the enterprise custom field.

    MD_PROP_ID_SECONDARY: Assignment custom field ID for resource and task custom fields.

    MD_PROP_IS_LEAF_NODE_ONLY: Specifies whether the custom field value must be a leaf node in the lookup table.

    MD_PROP_IS_REQUIRED: Specifies whether the custom field is required when the entity (project, resource, or task) is created.

    MD_PROP_MAX_VALUES: Specifies whether the custom field has a single value or uses a multi-value lookup table.

    MD_PROP_NAME: Name of the custom field.

    MD_PROP_PROJ_SUMM_GRAPHICAL_INDICATOR: Definition of the project summary graphical indicator for the custom field.

    MD_PROP_ROLLDOWN_TO_ASSN: Specifies whether the resource or task custom field rolls down to assignments.

    MD_PROP_SUMM_GRAPHICAL_INDICATOR: Definition of the custom field graphical indicator for the summary task.

    MD_PROP_TYPE_ENUM: Type of the custom field.

    MD_PROP_UID: GUID of the custom field.

    MD_PROP_UID_SECONDARY: Assignment custom field GUID for resource and task custom fields.

    MD_PROP_USE_FOR_MATCHING: Specifies whether to use the resource custom field for matching generic resources.

    Chris Boyd

  • Project Programmability and Business Intelligence

    Customizing E-Mail for Project Server Notifications



    Jim Corbin has written a draft article on how to customize e-mail notifications from Project Server:  


    Here is a draft of an article and source code that will be published in the Project 2007 SDK update late this year. The draft article Customizing Notifications.doc is in the attached


    The article explains how to create an OnSending event handler for notifications, and shows the code for extracting relevant information from the notification XML data. If the event handler matches a notification type (specific alerts and reminders you want to customize), it transforms the XML data to a text or HTML e-mail using your custom XSLT file, sends the e-mail to the proper recipient, and then cancels the OnSending pre-event so that Project Server doesn’t send the default notification.


    The article includes a discussion of how to extract the default XSLT files for notification e-mails from the Published database. The download includes the English language XSLT files, but you need to extract them for other languages.  The article also includes a discussion of how to configure an SMTP virtual server for a test installation of Project Server.

Page 1 of 1 (3 items)