none
ProjectExceededItemsLimit Error RRS feed

  • Question

  • How to handle ProjectExceededItemsLimit  Error ?

    While updating the project owner using UpdateProject() function, this exception is thrown.

    Pleas tell me how to resolve it ?

    Can i update only project details table without updating the whole project data set?

    How can i restrict the number of rows ? so that they don't exceed 1000.

    Basically i just need to update one single column of "Project" table in "projectDataSet". But, since it updates whole data set at once it captures all the rows in all the tables, and the number of rows exceeds 1000.

    Is there any way ho handle such situation ?

    Tuesday, April 28, 2015 12:12 PM

Answers

  • Abhishek,

    Actually the way this works is that when you make changes to a Project DataSet the changes made to the DataSet are tracked separately to the unchanged rows.  When you submit the DataSet back to the PSI, the unchanged rows are ignored, and the Updated and Deleted Rows are actioned.

    One good way to cut down on the number of rows sent back to the PSI is to eliminate the unchanged rows which are ignored by the PSI.  This done very easily by calling the DataSet.GetChanges() method and sending this result to the PSI instead of the original DataSet.

    You should also check the DataSet resulting from DataSet.GetChanges() to ensure it does not exceed 1000 rows, and split it up if necessary.

    Hope that helps,

      James.


    James Boman BSc. MCP:EAD -

    Friday, May 8, 2015 6:52 AM

All replies

  • Abhishek,

        Yes sure - just send the updates in batches less than 1000 rows per batch.

    Cheers,

       James.


    James Boman BSc. MCP:EAD -

    Thursday, May 7, 2015 5:46 AM
  • Hey James,

    Don't you think that if we split the ProjectDataSet by creating an empty one and filling it upto 1000 rows only, and then updating project with this dataset, will lead to data loss.

    Since, in normal case updating the project with QueueUpdateProject() function overwrites the original dataset for the project with the newly provided dataset to the function. Thus, the rows beyond 1000 may get deleted since we are updating the project with a dataset which is having less than 1000 rows whereas original project might had lot more data than that ?

    And even if there is no data loss, adding the next number of rows , will again make the data set exceeding 1000 rows.

    Any views?

    Thanks,

    Abhishek

    Friday, May 8, 2015 4:25 AM
  • Abhishek,

    Actually the way this works is that when you make changes to a Project DataSet the changes made to the DataSet are tracked separately to the unchanged rows.  When you submit the DataSet back to the PSI, the unchanged rows are ignored, and the Updated and Deleted Rows are actioned.

    One good way to cut down on the number of rows sent back to the PSI is to eliminate the unchanged rows which are ignored by the PSI.  This done very easily by calling the DataSet.GetChanges() method and sending this result to the PSI instead of the original DataSet.

    You should also check the DataSet resulting from DataSet.GetChanges() to ensure it does not exceed 1000 rows, and split it up if necessary.

    Hope that helps,

      James.


    James Boman BSc. MCP:EAD -

    Friday, May 8, 2015 6:52 AM
  • Hey James,

    When the dataset for the project is exceeding 1000 rows i am using dataset.getchanges function and passing the dataset only with changes to the UpdateProject function, updates are getting reflected in PWA but when i am opening my schedule in MPP i find so many changes in schedule.

    I can find overallocation of resources as well. I can track this as i have base-lined my schedule in beginning.

    The dataset.Getchanges function is messing my schedule. I can't go with this, as we are dealing with live projects in my organizations and respective managers will not be happy if schedule gets tampered.

    Thanks,

    Abhishek

    Monday, May 11, 2015 6:36 AM
  • Abhishek,

       I don't exactly know what to tell you other than we use code like the following with no trouble:

    if (vobjProjectDS.HasChanges())
    {
       vobjProjectDS = (ProjectDataSet)vobjProjectDS.GetChanges();
       PSI.ProjectClient.QueueUpdateProject(uidJob, vuidSession, vobjProjectDS, vobjWorkPackage.TestMode);
    }

    Maybe someone else here knows your problem.

    J.


    James Boman BSc. MCP:EAD -

    Monday, May 11, 2015 7:38 AM