12-19-2011 01:04 PM
I would like to set up some integration between ACT! (we have ACT! 2012) and an in-house database. In particular, I want to have some of the fields in our in-house database available as fields in ACT! for searching purposes.
Since the in-house database is the authoritative source of these fields, I would like anything that ACT! does to have the freshest data possible from the in-house database, modulo maybe a day's worth of caching. I think I would like to have a read trigger on the ACT! fields--when ACT! reads a field's value, it would run a chunk of my code first to make sure the value is sufficiently up to date. I haven't found such an event in the API documentation, though. Does such a thing exist?
If there's nothing along those lines available, I suppose my next best option would be to run a daily sync program using the ACT! framework. Is there any other approach that might be useful for the problem as I've described it?
12-19-2011 01:22 PM - edited 12-19-2011 01:23 PM
There are several events I think you could use to ensure the data in your fields is up to date.
Contact changed/changing lets you know the user is moving between contacts, you could use this opportunity to update the fields for the contacts. You can also do the same for any other top level entity. There are also event for particular views being loaded.
Fields can detect changes, but not when they have focus.
12-22-2011 04:01 PM
Do you want to use these fileds to segment your data inside of ACT!? Is that the impetus to "search" these fields from ACT!? If so then the sync approach you describe below is the way to go.
If the data is informationally relevant to a record in ACT! but you wouldn't necessarily want to segment ACT! records by this data then consider just publishing the data into the ACT! records using either a web browser (using the Web Info tab or the browser context controls in the Developer download forum) or somethinig like the Contact OLEDB control (the control reads an OLEDB connection string to another data source and binds the data to a list view inside of the control).
In this implementataion the client is reading the data live from the source system so you have a more real time information experience.