So I’ve discovered an interesting problem with Content Approval, which is a special issue for Office 365. I have a document library with more than 5000 documents in it. Content Approval is turned on, and the customer would like a view of ‘Unapproved Documents’.
For a Document Management System, 5000 documents in one repository is small beer, so this is a bit of a problem. “Okay”, I thought, “this must be a choice column, so I’ll just add an index to the column”.
Except it isn’t a choice column. Not at all. It’s a ModStat column. Yes, a what? Well, a special column that internally looks a bit like a Lookup, or maybe a choice, except with no list to reference. I think it was used to support multiple languages – different words for ‘approved’, etc..
Fine. But it isn’t indexable. It’ll only ever have 4 values, but it isn’t indexable by any means I’ve found. Which makes a ListView of ‘Unapproved Documents’ impossible.
Normally, for large lists, I’d then resort to Search, but this is where things become tricky for Office 365 users. You might have set your draft item security settings up such that the search crawler cannot read the unapproved documents. So Search might not be able to get you that list of unapproved documents either. I’ve not verified this for updates, but certainly new, unapproved documents do not appear in the index until after they are approved, if draft item security is set to something other than “Any user who can read items”.
All of which leads me to question whether Content Approval is useful for document management in Office 365 at all.
Do let me know if anyone has a way of indexing that column…
2 thoughts on “Content Approval and Large Lists”
Create a calculated column which gets it’s value from the approval status column. Index the calculated column and use it to filter your views. I haven’t tried this.
Unfortunately, you cannot create a list column index on a Calculated column. I did think of that one! If you could it would solve a lot of problems.