M
Martin Winzig
Hi I need to set assignment custom properties but my code doesn't work.
MyProjectWebSvc.CheckOutProject(ProjGUID,session,"");
ProjectWebSvc.ProjectDataSet dsProject =
MyProjectWebSvc.ReadProject(ProjGUID,
ProjectWebSvc.DataStoreEnum.WorkingStore);
ProjectWebSvc.ProjectDataSet dsAddToProject =
(ProjectWebSvc.ProjectDataSet)dsProject.Clone();
//ProjectWebSvc.ProjectDataSet newItems = new
ProjectWebSvc.ProjectDataSet();
int itemCount = 0;
int itemUpdCount = 0;
bool publish = false;
foreach ( ProjectWebSvc.ProjectDataSet.AssignmentRow
assnRow in dsProject.Assignment )
{
System.Data.DataRow[] assnCustomFieldRows =
dsProject.AssignmentCustomFields.Select(
dsProject.AssignmentCustomFields.MD_PROP_UIDColumn.ColumnName + "='" +
cfFullPath.MD_PROP_UID +
// "' AND " +
dsProject.AssignmentCustomFields.TASK_UIDColumn.ColumnName + "='" +
assnRow.TASK_UID +
"' AND " +
dsProject.AssignmentCustomFields.PROJ_UIDColumn.ColumnName + "='" +
assnRow.PROJ_UID +
"' AND " +
dsProject.AssignmentCustomFields.ASSN_UIDColumn.ColumnName + "='" +
assnRow.ASSN_UID + "'");
if (assnCustomFieldRows.GetLength(0) == 0)
{
ProjectWebSvc.ProjectDataSet.AssignmentCustomFieldsRow assnCFrow =
dsAddToProject.AssignmentCustomFields.NewAssignmentCustomFieldsRow();
assnCFrow.MD_PROP_UID =
cfFullPath.MD_PROP_UID;
assnCFrow.CUSTOM_FIELD_UID = Guid.NewGuid();
assnCFrow.TEXT_VALUE = "xxxxxxx";
assnCFrow.PROJ_UID = assnRow.PROJ_UID;
assnCFrow.ASSN_UID = assnRow.ASSN_UID;
assnCFrow.MD_PROP_ID = cfFullPath.MD_PROP_ID;
assnCFrow.MD_PROP_UID =
cfFullPath.MD_PROP_UID;
assnCFrow.FIELD_TYPE_ENUM =
cfFullPath.MD_PROP_TYPE_ENUM;
dsAddToProject.AssignmentCustomFields.AddAssignmentCustomFieldsRow(assnCFrow);
itemCount++;
if (itemCount > 100)
{
Console.WriteLine("QueueAddToProject
itemcount>100");
MyProjectWebSvc.QueueAddToProject(job,
session, dsAddToProject, false);
WaitForQueueJobCompletion(job);
itemCount = 0;
dsAddToProject.Clear();
publish = true;
}
}
else
{
((ProjectWebSvc.ProjectDataSet.AssignmentCustomFieldsRow[])assnCustomFieldRows)[0].TEXT_VALUE = "yyyyyy";
itemUpdCount++;
}
}
if (itemUpdCount > 0)
{
Console.WriteLine("QueueUpdateProject
itemcount>0");
MyProjectWebSvc.QueueUpdateProject(job, session,
dsProject, false);
WaitForQueueJobCompletion(job);
publish = true;
}
if (itemCount > 0)
{
Console.WriteLine("QueueAddToProject
itemcount>0");
MyProjectWebSvc.QueueAddToProject(job, session,
dsAddToProject, false);
WaitForQueueJobCompletion(job);
itemCount = 0;
dsAddToProject.Clear();
publish = true;
}
Whna I calling queaddtoproject dsAddToProject.AssignmentCustomFields
contains 3 rows, error message aren't invoked but then i wchck the
projectdataset using the ProjTool There isn't any assignment custom property.
Regards Martin Winzig
MyProjectWebSvc.CheckOutProject(ProjGUID,session,"");
ProjectWebSvc.ProjectDataSet dsProject =
MyProjectWebSvc.ReadProject(ProjGUID,
ProjectWebSvc.DataStoreEnum.WorkingStore);
ProjectWebSvc.ProjectDataSet dsAddToProject =
(ProjectWebSvc.ProjectDataSet)dsProject.Clone();
//ProjectWebSvc.ProjectDataSet newItems = new
ProjectWebSvc.ProjectDataSet();
int itemCount = 0;
int itemUpdCount = 0;
bool publish = false;
foreach ( ProjectWebSvc.ProjectDataSet.AssignmentRow
assnRow in dsProject.Assignment )
{
System.Data.DataRow[] assnCustomFieldRows =
dsProject.AssignmentCustomFields.Select(
dsProject.AssignmentCustomFields.MD_PROP_UIDColumn.ColumnName + "='" +
cfFullPath.MD_PROP_UID +
// "' AND " +
dsProject.AssignmentCustomFields.TASK_UIDColumn.ColumnName + "='" +
assnRow.TASK_UID +
"' AND " +
dsProject.AssignmentCustomFields.PROJ_UIDColumn.ColumnName + "='" +
assnRow.PROJ_UID +
"' AND " +
dsProject.AssignmentCustomFields.ASSN_UIDColumn.ColumnName + "='" +
assnRow.ASSN_UID + "'");
if (assnCustomFieldRows.GetLength(0) == 0)
{
ProjectWebSvc.ProjectDataSet.AssignmentCustomFieldsRow assnCFrow =
dsAddToProject.AssignmentCustomFields.NewAssignmentCustomFieldsRow();
assnCFrow.MD_PROP_UID =
cfFullPath.MD_PROP_UID;
assnCFrow.CUSTOM_FIELD_UID = Guid.NewGuid();
assnCFrow.TEXT_VALUE = "xxxxxxx";
assnCFrow.PROJ_UID = assnRow.PROJ_UID;
assnCFrow.ASSN_UID = assnRow.ASSN_UID;
assnCFrow.MD_PROP_ID = cfFullPath.MD_PROP_ID;
assnCFrow.MD_PROP_UID =
cfFullPath.MD_PROP_UID;
assnCFrow.FIELD_TYPE_ENUM =
cfFullPath.MD_PROP_TYPE_ENUM;
dsAddToProject.AssignmentCustomFields.AddAssignmentCustomFieldsRow(assnCFrow);
itemCount++;
if (itemCount > 100)
{
Console.WriteLine("QueueAddToProject
itemcount>100");
MyProjectWebSvc.QueueAddToProject(job,
session, dsAddToProject, false);
WaitForQueueJobCompletion(job);
itemCount = 0;
dsAddToProject.Clear();
publish = true;
}
}
else
{
((ProjectWebSvc.ProjectDataSet.AssignmentCustomFieldsRow[])assnCustomFieldRows)[0].TEXT_VALUE = "yyyyyy";
itemUpdCount++;
}
}
if (itemUpdCount > 0)
{
Console.WriteLine("QueueUpdateProject
itemcount>0");
MyProjectWebSvc.QueueUpdateProject(job, session,
dsProject, false);
WaitForQueueJobCompletion(job);
publish = true;
}
if (itemCount > 0)
{
Console.WriteLine("QueueAddToProject
itemcount>0");
MyProjectWebSvc.QueueAddToProject(job, session,
dsAddToProject, false);
WaitForQueueJobCompletion(job);
itemCount = 0;
dsAddToProject.Clear();
publish = true;
}
Whna I calling queaddtoproject dsAddToProject.AssignmentCustomFields
contains 3 rows, error message aren't invoked but then i wchck the
projectdataset using the ProjTool There isn't any assignment custom property.
Regards Martin Winzig