TECHNOLOGIES
FORUMS
JOBS
BOOKS
EVENTS
INTERVIEWS
Live
MORE
LEARN
Training
CAREER
MEMBERS
VIDEOS
NEWS
BLOGS
Sign Up
Login
No unread comment.
View All Comments
No unread message.
View All Messages
No unread notification.
View All Notifications
Answers
Post
An Article
A Blog
A News
A Video
An EBook
An Interview Question
Ask Question
Forums
Monthly Leaders
Forum guidelines
Br Mil
NA
1
972
How do I set multiple fields with Microsoft Project PSI?
May 8 2014 1:00 PM
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);
}
Reply
Answers (
0
)
How more than one developer works on same applications?
Hey vulpes!