Tech
Forums
Jobs
Books
Events
Interviews
Live
More
Learn
Training
Career
Members
Videos
News
Blogs
Login
Sign Up
Ask Question
0
Reply
How do I set multiple fields with Microsoft Project PSI?
Br Mil
May 8 2014 1:00 PM
653
Reply
What modifications need to be made the following code to have it update multiple Custom Fields in one pass. I have everything working up until the point I want to start updating multiple Custom Fields. The current program I’ve put together only results in updating the first ForEach cfValueWOD Custom Field. I can get the code to update multiple fields if they already have a value but for my project these custom fields can either have an initial value or no value to start. In both cases I will need to write values to these fields. I need to complete this for a project at work very soon and I’m at a loss. Your help will be much appreciated.
Guid myProjectUid =
new
Guid(
"
{c96bd7ea-e9d2-47ed-8819-02e4653e92a7}"
);
ProjectDataSet myProject = projectSvc.ReadProject(myProjectUid, DataStoreEnum.WorkingStore);
//
indicate the custom field has been found
bool
customFieldFound =
false
;
//
iterate over fields and update them to the table for WO Status
foreach
(ProjectDataSet.ProjectCustomFieldsRow cfRow
in
myProject.ProjectCustomFields)
{
//
if field exists update it
if
(cfRow.MD_PROP_UID == cfIdWOD)
{
//
update the value
cfRow.TEXT_VALUE = cfValueWOD;
customFieldFound =
true
;
}
}
//
check if the custom field has been found
if
(!customFieldFound)
{
//
create a new row
ProjectDataSet.ProjectCustomFieldsRow cfRowWOD =
myProject.ProjectCustomFields.NewProjectCustomFieldsRow();
//
Sets all values to NUll to begin
cfRowWOD.SetDATE_VALUENull();
cfRowWOD.SetTEXT_VALUENull();
//
General parameters
cfRowWOD.MD_PROP_UID = cfIdWOD;
//
custom field ID
cfRowWOD.CUSTOM_FIELD_UID = Guid.NewGuid();
cfRowWOD.PROJ_UID = myProjectUid;
//
current project ID
//
add value
cfRowWOD.FIELD_TYPE_ENUM =
21
;
cfRowWOD.TEXT_VALUE = Convert.ToString(cfValueWOD);
//
test value
//
add the row to the data set
myProject.ProjectCustomFields.AddProjectCustomFieldsRow(cfRowWOD);
}
//
iterate over fields and update them to the table for WO Status
foreach
(ProjectDataSet.ProjectCustomFieldsRow cfRow
in
myProject.ProjectCustomFields)
{
//
if field exists update it
if
(cfRow.MD_PROP_UID == cfIdWG)
{
//
update the value
cfRow.TEXT_VALUE = cfValueWG;
customFieldFound =
true
;
}
}
//
check if the custom field has been found
if
(!customFieldFound)
{
//
create a new row
ProjectDataSet.ProjectCustomFieldsRow cfRowWG =
myProject.ProjectCustomFields.NewProjectCustomFieldsRow();
//
Sets all values to NUll to begin
cfRowWG.SetDATE_VALUENull();
cfRowWG.SetTEXT_VALUENull();
//
General parameters
cfRowWG.MD_PROP_UID = cfIdWG;
//
custom field ID
cfRowWG.CUSTOM_FIELD_UID = Guid.NewGuid();
cfRowWG.PROJ_UID = myProjectUid;
//
current project ID
//
add value
cfRowWG.FIELD_TYPE_ENUM =
21
;
cfRowWG.TEXT_VALUE = Convert.ToString(cfValueWG);
//
test value
//
add the row to the data set
myProject.ProjectCustomFields.AddProjectCustomFieldsRow(cfRowWG);
}
Upload Source Code
Select only zip and rar file.
Post
Reset
Cancel
Answers (
0
)
Next Recommended Forum
How more than one developer works on same applications?
Hey vulpes!