AnsweredAssumed Answered

Setting Item level permissions on a large library.

Question asked by bsimmons on Jul 19, 2017
Latest reply on Aug 3, 2017 by bsimmons

Hello I have been searching the community but haven’t found anything to help me.

 

I am working on a project where we have migrated a very large document Library (around 75,000 items) from another system into SharePoint. There is a requirement to set Item level permissions for each document in the library.

 

The rules which determine the correct group/permission level to grant are held in a separate list. I have created a Nintex Workflow 2013 list workflow to set permissions on the document library items based on the rules defined in the list. This workflow performs as expected.  

 

Then to use that workflow to set permissions for every item in the library I created a site workflow that loops through the whole document library and starts the list workflow on each item using a call web service action. This worked well in my initial tests with a small document library.

 

When I moved my test to a large 75,000 item library I started getting timeout errors in the ULS logs with varying degrees of success. The workflow would run through several loops setting permissions correctly then I would get a message saying workflow failed to start in the workflow history.

 

I was initially using the StartWorkflowOnListItem Web method without using error handling and permissions were correctly set on between 300 to 500 items per test run.

 

Next I configured Error handling on the call web service action. My next tests successfully set permissions on around 8,000 items before the same error occurred.

 

Looking at the history list it looks like the workflow is failing at the call web service action. Even though I get the message that the workflow failed to start, the state of the workflow remains as in progress until I terminate the workflow.   

Next I added a pause to the loop so the workflow would pause after every 500 items. Now I can’t get through more than 25 items before getting the same error.

 

I Changed the Web method in the Call web service action  to StartWorkflow. And my current test is at around 2000 items without failing but it has taken about 4 hours.

 

Does anyone have any tips that could help me out? Even if my current version works it will take years to finish.

Any help would be greatly appreaciated. I will add some screenshots of the workflows below.

              -Brandon

this one is the site workflow that starts the list workflow on each item.

This one is the list workflow.

Outcomes