How do you associate an approval record for a knowledge article with the creator of the article?

Tim88
Kilo Contributor

I want to create a report that lists approvals requested for knowledge articles that I wrote.  However the approvals table (sysapproval_approver) records for knowledge approvals have an empty Approval for field. Approving shows the KB article, but it's not dot-walkable. in fact you can't even use the contains operator on the Approving field, so the only way of finding KB approvals is to check if the Source table contains "kb".

Because Approving is not dot-walkable, there's no way of finding the author of the article the approval is for.

Is this broken, or working as designed? It seems bizarre that approvals for KB articles don't have the Approval for information that all other approval records contain.

 

find_real_file.png

3 REPLIES 3

Matthew Glenn
Kilo Sage

Unfortunately for your needs, this is working as designed. 

The "Approval For" field is a reference to the task table, so it will only populate/show records on tables that are on or extend from task. Nothing within the Knowledge application is extended from task so it'll never populate there

Yes, that sounds reasonable. Seems a bit shoddy though. Is there any reason why Approving is not dot-walkable? Surely it's a reference to the KM article?

I wouldn't say it's shoddy, it's just how the system works, and it does so quite well 99% of the time. You just found the 1%.

The Approving field is a reference, but not in the same way that the Approval For field is a reference.

The Approving field is what's known as a "Document ID". Document ID fields give you some of the same behavior as a reference field, with the upside being that you can reference any record on any table, at any time., Whereas a reference field you're limited to the referenced table (and it's children) defined on the field.

The unfortunate downside to a Document ID field is you can't easily dot-walk in the same way that you can a reference field, at least not without some rather advanced knowledge of and access to the platform (admin role).

 

This thread has a possible solution for you, where you create a new reference field on sysapproval_approver to the table the Approving field is pointing to. Then, using a Business Rule, you'd copy the Document ID fields value whenever an approval record is inserted.

This would work, but it's not at all scalable as you'd need a new reference field for every non-task table you need to report off of.

 

Hopefully this helps