At 11:33 AM 6/19/00 +0300, Itamar Shtull-Trauring wrote:
As far as I can tell, the first time an object is changed, an Agent's _objectChanged() will be called, but as long as the object is still in the memory cache, _objectChanged() will not be called again.
_objectChanged is a once per object per transaction event.
Another problem I'm having is giving default values to objects (e.g. default UNAPPROVED status for approval). I can do this with a trigger (whith objectAdded being "client.status = UNAPPROVED"), but I also have a trigger that is equivalent to CatalogAwareness. The problem is that I don't know what order the triggers get called - will the changes made by one trigger be consistently cataloged by the other trigger?
I would suggest that you set up an attribute provider for client.status that returns UNAPPROVED. Since attribute providers are only active if the attribute does not exist, this should solve your problem. As for trigger ordering, they are guaranteed to be called in their plugin sequence for a given object, but the order of objects they will be called on is not guaranteed. However, if a trigger is shared between two DataManagers (Customizers, Racks, Specialists, etc.), it may be called sooner than expected from the point of view of one of the DataManagers' plugin sequences.