David,
Thank you for the info - that was very helpful.
I wonder if there would be any interest in a new entity field attribute
- something like on-change-call-service. The attribute's value is a
service name. When the field's contents change the specified service is
called with the old GenericValue and the new GenericValue.
-Adrian
David E Jones wrote:
There is an example of tracking status history in a separate entity in
the example component, and that pattern is a pretty good one to use. It
uses SECA rules on the createExample and updateExample services, and now
that you mention it maybe those would work out fine as EECA rules... not
sure off the top of my head though.
BTW, for other general field change history stuff you can use the
relatively new feature of the entity engine for that, done with the
enable-audit-log attribute on the entity -> field element. There is an
example of it in the entitymodel_test.xml file on the Testing entity.
-David
On Jul 24, 2008, at 9:32 AM, Adrian Crum wrote:
David,
Thank you very much for the advice. I'll keep those differences in mind.
I guess my question wasn't very clear. I need to know if there is
functionality in the SECA to detect if a field changed. I'm thinking
there isn't and I'll have to write some code to keep a history of
status changes.
-Adrian
David E Jones wrote:
Are you wondering about when to use an EECA versus when to use an SECA?
In general you should not use EECAs for anything business process
related, but rather for data maintenance tasks like populating
denormalized fields (like OrderHeader.grandTotal), or things like
keeping the status history. However, usually status history
maintenance code goes right into the create and update services, like
in the updateExample service. I'm working on this a little bit
relative to the new entity-auto service engine implementation do
handle some of these standard patterns automatically.
SECAs are the tool for composing business processes and tying
separate processes together. They are obviously used for other
things, but their main purpose is to get a process started
automatically based on a "system event" instead of a "user event".
For example, invoice an order once a shipment is packed.
-David
On Jul 23, 2008, at 6:38 PM, Adrian Crum wrote:
Can I use EECAs or SECAs to monitor an entity and trigger an action
if the contents of a field changed? I need a way to track status
changes.
-Adrian