Skip to main content

Update Project level Multiline Text Custom Fields

What a beautilful weather & I was kinda enjoying but suddenly One of My coworker pinged me & asked me a question about the Project level custom fields (multiline Text) so while I explained him about the usage of this kind of field, thought to write down somthing which might help Project Server community :)

Text custom fields can be multiline up to 4000 bytes, for use in project detail pages (PDPs) and with workflows for demand management in Project Web App. Multiline text custom fields are not usable in Project Professional. so I added a Project level Multiline text field in my PDP & now I wanted to update this field in a given project from my PSI program.

Here is the code for the Console application :

1. You will need to add project web service (ProjectWebSvc) web ref in the solution: http://servername/pwa/_vti_bin/PSI/Project.asmx?wsdl
2. Its very basic code, which has TEXT_VALUE update for a Multiline field
using System;
using System.Diagnostics;
using System.Net;
using System.Data;
using System.Text;
using Microsoft.Office.Project.Server.Library;
using PSLibrary = Microsoft.Office.Project.Server.Library;

ReadProjectResourcePSIclass Program{

static void Main(string[] args)try{



proj.UseDefaultCredentials =
Project proj = new ProjectWebSvc.Project();true;ProjectDataSet pds = null;
projectGuid = new Guid("195D9230-4A41-438A-917F-FDB6B292F586"); //Project for which I want to update the Multiline text field

pds = proj.ReadProjectEntities(projectGuid, 1 | 4 | 32, ProjectWebSvc.
    row.TEXT_VALUE =

foreach (ProjectWebSvc.ProjectDataSet.ProjectCustomFieldsRow row in pds.ProjectCustomFields)"TYPE your multiline text,TYPE your multiline text,TYPE your multiline text,TYPE your multiline textTYPE your multiline textTYPE your multiline text,TYPE your multiline text,TYPE your multiline text,TYPE your multiline textTYPE your multiline text,TYPE your multiline text,TYPE your multiline text";Guid sessionUId = Guid.NewGuid();proj.CheckOutProject(projectGuid, sessionUId, " ");Guid jobUId = Guid.NewGuid();proj.QueueUpdateProject(jobUId, sessionUId, pds,
proj.QueuePublish(jobUId, projectGuid,
jobUId =
proj.QueueCheckInProject(jobUId, projectGuid,
false);true, " ");Guid.NewGuid();false, sessionUId, "none");   }


Thanks to my coworker - Sumit Manchanda for initiating this :)
Happy coding :)


Daniel said…
cute blog
good tips for Project Portfolio Management..
Project Portfolio Management

Popular posts from this blog

Microsoft Project Server and SharePoint Server 2007 and 2010 June 2012 CU

The latest Cumulative Updates (CU) for Project and Project Server 2010 and 2007 have been released.  Feel free to open a support case if you have any questions around this or need assistance getting these patches deployed.
Feel free to join us in July for a TechNet webcast to go over these patches in greater detail.  The information for this event is below:
TechNet Webcast: Information About Microsoft Project and Project Server Cumulative June Update (Level 200)
Project and Project Server 2010
This include a number of fixes, so Microsoft strongly recommends that you test this in a test environment based on your production environment before putting this fix live in production.
There was an issue found with one of the other Office Server products which needed to be addressed before release.  The issue has been fixed and the Server Rollup Packages are being rebuilt.  We expect the patch…

Project Server 2010 : bug with deliverables

if you create a new deliverable from Project site (site teamplate is customized..) using the grid row option (you can enter the deliverable name, start & finish), No deletion/update of columns in deviverables but other lists are custiomized. Once deliverable is crated a small message shows "Server is processing the changes to this row". (First screenshot) ANother way to create a new deliverable using the "New Item" form. so I created one more using this option. (Second screenshot) Now, I have two deliverables (D1 & D2) . When I open the MS project, I can see only one (D1) which is created via adding record using row option.(see the last screenshot). So Issue seems to be with the New Item form which doesn't sync the data to server. Looks liks a bug to me.