1 of 1 people found this helpful
From my experience it is normally collections that you don't know are there that cause the performance issues. A good example of this is if you create a reference list object and drag it onto Incident so you can have a dropdown list on the incident window to pick an item from your reference list. When dragging the object in Object Designer to create the one-to-one link you're prompted if you also want to create a relationship back and the answer is No. If you click Yes then a collection to Incident is created on the reference list object.
We call that an "unbounded" collection, because when you create incidents and select an item from the reference list dropdown you're adding that incident to that list item's Incident collection. This causes a problem because when you select an item in the dropdown on the incident window that item's data is downloaded from the server (for related fields to be populated, etc) and this includes collection data. This means that all other incidents that have ever selected that list item will get downloaded from the server and if there are enough incidents in the collection you'll see a noticeable delay and eventually "Maximum request length exceeded" errors.
I hope that explains the problem which I don't think will be an issue in your case.
Thanks for the reply Stu,
Does that mean that unbounded collections can only be Lists? Process actions wouldn't have the same kind of effect, or is it due to the way actions work that would stop that? I would have though that the collection for Add Assignment for example would work the same way.
Any object can be an unbounded collection on another object, not just Incidents - as in Stu's example. Things like Add Assignment and Add Note are not unbounded because they can only grow so much for each IPC they are attached to. If you have Incident 1 and add a few Notes then close Incident 1 you can't add any more notes so the collection is bounded. Any Notes you add to Incident 2 or 3 or x are associated only to those Incidents, not Incident 1 and vice versa.
In Stu's example, you can create as many Incidents as you like and always pick a list item for them, therefore, that list item's Incident collection will keep on growing infinitely.
It's quite a subtle difference but it can have quite a big impact on performance. I hope the explanation above helps,