Skip to main content

Hi,

I have some workflows that generate a lot of WorkflowProgress records in the Nintex Workflow database.

Can I do something to have these automatically be cleared out after a while, or not be generated in the first place?

I think the proces of manually having to purge history and WorkflowProgress is really annoying and time consuming.

I have millions of records in the WorkflowProgress table and they are created by some site workflows, that read from a SQL database, and loops over lots and lots of records twice a day.

Regards

Leif

What do you mean by workflowprogress? If you mean that it logs everything it does here is an example of something you can do:

Say you have a workflow that has a Foreach in it. You can double-click the Foreach. Click on "Common". Then click on "Hide From Workflow Status". If you look in your history after this is run, everything in the foreach including the foreach will not show up!!! That reduces what is stored.


I use SharePoint 2013 with Nintex Workflows. Microsoft recommends to not exceed 5000 in the history lists.

Here are Microsoft's Best Practices: http://blogs.technet.com/b/marj/archive/2015/08/07/sharepoint-2010-workflows-best-practice-purge-workflow-history-list-items.aspx

You can create a history list for each workflow. You can also create retention policies for your history lists.

Creating the History List

1. Go to Site Settings

2. Under Nintex Workflow select "manage workflow history lists".

3. Select new.

4. Assign a name (and description if needed).

5. Click Create.

Setting Retention Policies

1. in the History List View you accessed from the steps above, click the history list name in the list. This will open your history list.

2. Open the list settings.

3. Go to "Information management policy settings"

4. You will see a link within all the text on the page that says "Change source or configure list schedule" click that link.

5. Set Source of retention to "Library and Folders"

6. Down below click "Add a retention stage.."

7. The "The stage is based off a date property on the item" is already checked. Leave created selected and then select the amount of time you want to retain the history.

8. Under action, you can leave Move to Recycle Bin or select Delete Permanently.

9. Click Ok to save.

Setting the history list in the workflow.

1. Edit the workflow

2. Click Workflow Settings

3. Scroll down to the bottom of Workflow Settings to History List.

4. Select the History List you created.

5. Re-publish the workflow.


By workflowprogress I mean the table in the Nintex database:

190578_pastedImage_1.png

That has a lot more records than the History List. Will the advice you give above also keep the system from adding records to the WorkflowProgress table?

You can check these links for more info from Nintex about their guides to do the purging:

https://community.nintex.com/community/build-your-own/blog/2014/10/07/demystifying-workflow-history-part-1

https://community.nintex.com/community/build-your-own/blog/2016/01/05/demystifying-workflow-history-part-2

https://community.nintex.com/community/build-your-own/blog/2015/09/16/how-to-purge-large-history-list-and-dboworkflowprogress-table

 https://community.nintex.com/docs/DOC-1027

The thing I want is to keep the records from building up, so I don't have to bother with the purging operation all the time :-)

Regards

Leif


The document for the following is: Prevent Workflow Data Being Logged

Preventing it from building up can be done according to the following recommendations by Nintex:

If your environment contains workflows with logic that includes a lot of looping and processing, then each process is noted in the database, even though only the last result is logged in the history list. In this situation, you may want to stop the logging from occurring for those actions.

The following workflow actions trigger programmatic looping and processing.
*Collection operation
*For each
*Loop
*Child actions contained within the above actions
To stop logging for a workflow action (Nintex Workflow 2013 or Nintex Workflow 2010)
1.Open the configuration settings dialog box for the action.
2.In the ribbon at the top of configuration settings dialog box, click Common.
3.Select the check box Hide from workflow status.
4.Click Save to save your changes.
To stop logging for a workflow action (Nintex Workflow 2007)
1.On the designer canvas, open the drop-down list for the action and then select Edit labels.
2.Select the check box Hide from workflow status.
3.Click Save to save your changes.

‌, there is some good feedback from ‌. If you feel these responses provide a good answer please mark one correct. Or provide some followup if you need more clarification. Thank you for your participation in the community! I enjoy your posts.


Hello @leif_frederikse 


 


I know it is a quite old topic but wondering if you found a workaround for this?
We also have a DB with over 26mill entries and thought if there is an option to increalse the < WorkflowProcesses > for one specific Database only and not update all other databases - like the nintex guide suggests.



What did you do in this case?


Left the 10mil threshold as default and lived with the constant Alerts in the Central Admin console?


Or did you split the database in multiple instances ....


Hello @leif_frederikse 


 


Did you find a workaround about this topic?


We too have a DB over 26mill. enrtries...


 


 


Reply