none
Updating the custom fields fails, when I use "QueueUpdateProject" method in PSI. RRS feed

  • Question

  • Hi All,

    I am using Bulk Edit Tool solution starter... There is a strange problem when I edit the project via Bulk Edit Tool.

    In our Project we have Task level Custom field which is mendatory. So When I call the "QueueUpdateProject" method via PSI, it  throws the exception saying that "CustomFieldRequiredValueNotProvided".

    Please find the attached error Xml below...

    <?xml version="1.0" encoding="utf-8"?>
    <errinfo xmlns="">
      <dataset name="ProjectDataSet">
        <table name="Task">
          <row TASK_UID="ab862f81-12ca-44c6-b63b-0148137b43c3" PROJ_UID="5e02e1f2-f49a-4ef0-bc48-aeadb9872897">
            <error id="11713" name="CustomFieldRequiredValueNotProvided" uid="0db7d705-f262-4867-89af-119e3e14d810" mdpropuid="fa0d0fec-0a19-4b1e-9572-5cd6380a6ff2" />
          </row>
          <row TASK_UID="c171dad5-2166-493c-adbb-64fb344753a9" PROJ_UID="5e02e1f2-f49a-4ef0-bc48-aeadb9872897">
            <error id="11713" name="CustomFieldRequiredValueNotProvided" uid="0818cbe6-6a5f-404d-b217-9bd9a13b81f9" mdpropuid="fa0d0fec-0a19-4b1e-9572-5cd6380a6ff2" />
          </row>
        </table>
      </dataset>
    </errinfo>

    Note:

    1. We are opening the Existing project.

    2. Task level custom field will not be there in Summary level task.

    3. Follwoing are the methods used to read & update the project.

    var dsProject = PJContext.Current.PSI.ProjectWebService.ReadProjectEntities(
                                            projectUid,
                                            (int)(ProjectEntityType.Project | ProjectEntityType.ProjectCustomFields | ProjectEntityType.Task | ProjectEntityType.TaskCustomFields),
                                            DATA_STORE);
    projectWebService.QueueUpdateProject(
                            jobUid,
                            ProjectDetailPages.PDP_SESSION_GUID,
                            dsProject,
                            false);

    4. We are sure that just because of this task level custom field , We are getting this exception. [If we change this task level custom field to NON-MENDATORY , Code works without any problem.]

    Is there anyway to solve this? what are we missing to look at it?

    Thanks !


    Muniappan


    Friday, June 29, 2012 11:08 AM

All replies

  • Hi Muniappan,

    if you are just using the code to update the project level custom fields, load the ProjectEntityType 1 & 32 only & try that.
    (int)(ProjectEntityType.Project | ProjectEntityType.ProjectCustomFields ),DATA_STORE

    Instead that, You can try like
    http://msdn.microsoft.com/en-us/library/gg204413.aspx

    ProjectWebSvc.ProjectDataSet readProjDs = projectSvc.ReadProjectEntities(projectId, 1 | 32, ProjectWebSvc.DataStoreEnum.WorkingStore);

    Hope that helps.


    If you found this post helpful, please “Vote as Helpful”. If it answered your question, please “Mark as Answer”. Thanks, Amit Khare |EPM Consultant| Blog: http://amitkhare82.blogspot.com http://www.linkedin.com/in/amitkhare82

    Friday, June 29, 2012 11:46 AM