07-15-2010 03:18 AM
ok i have an Application not a plug and trying to get access to the currently running ACT..simple right?
so i have in a TRY block
Dim ActApp As Act.UI.ActApplication = Act.UI.ActApplication.Instance
when i run the app (with ACT!2010 running in the background) i get a error in the catch
"Application instance has not been initialized."
its running.. am i missing something simple here?
07-15-2010 06:26 AM
Framework applications do not have access to the currently running ActApplication.
The architecture reference pdf document found within the SDK does a far better job of explaining it that I'd be able to do in this format.
07-15-2010 05:42 PM
is it just me or was ACT!6 FAR FAR better to program with in some respects.. (I would never say all coz .Net does amazing things) but to think in the old ACT!6 i could get the app instance.. something so simple
So my plugin cant get an event for entering a field or leaving the field, but i can write an application that the field can trigger.. but in doing that the application i then write cant get the current instance to then be able to get the current contact, to then do something.. instead it has to load a new instance of the application.. and log in and then after all that still doesnt know which contact to work with
This is as useless as not offering a template for generating unique IDs that ACT! users can make that when they create a new contact and the database actually adds the contact, their template sequence builds the ID and adds it automatically without the need for 3rd party.. i mean how many versions has there been and just now many times a day would support get an email asking how/if they can have unique IDs? i really thought that going from ACT!6 to .Net we would see some real changes that would make it into a real CMS but really it still fails
"So John smith phones me up and when i lookup his name i get 100 John Smiths.. ok that narrowed it down form the 130,000 contacts" OMG you have a Customer ID number.. OH no you dont coz Sage STILL has not added this... I bought a useless CMS and now have to spend more money buying a 3rd party addin or write my own to make this application work a bit more like a real CMS
can you feel my frustration ??
07-16-2010 06:59 AM - edited 07-16-2010 07:00 AM
I'm sorry that you're so frustrated ozie.
Neither a plug-in, nor an application consuming the framework will be able to monitor whether or not a field had gained/lost focus. I'm absolutely willing to submit a feature suggestion on your behalf that this be added, but I think the reason it doesn't exist has to do with performance and there already being an event that monitors when a field has changed.
The field trigger solution from the other thread is firing off of the same events that you'd have access to when writing a plugin (FieldChanged) and going this route you have access to the currently running application.
Having worked in support for a couple of years prior to taking this position supporting the SDK I can honestly say I only had a handful of calls from folks wanting a unique identifier for contacts, I do however see the value in it and think it'd be an excellent addition to the product for all of the reasons you've described and I encourage you to add it to the Share Your Ideas section of the community.
07-16-2010 07:16 PM
i really do not see this being too much of a problem.. after ACT!s built in event checks to see if there is a trigger/activity series or not and if so completes its tasks in no way having it then raise another event that a plugin can then use should be any problem.
my main concern is that we are currently upgrading from ACT6 to 2010 and back in those days the SDK had its limits and for those we used the triggers.. these triggers ran application that could get the instance of the application and from that the current contact and manipulate the fields data
seems in 2010 we can still use a trigger (event would be better ) to shell run an application we write, but this app cant get the current instance to then be able to get the current contact to manipulate fields data?
here is an example of why.. we have too many fields and when data entering, some fields need to be set depending on what data is in other fields.. so there are 10 drop down fields which may or may not have an item selected.. now as they enter the data they tab through all the fields.. now if 5 of the 10 ddl's have items selected, depending on what list it is and what item it is where they live and other factors, other fields have to be set specific information about pricing and other things..
Of course the only way for this to work is for when they leave the last of the 10 fields.. now if field 10 was changed then the plugin can use the FieldChanged event and do its magic.. but if only fields 1-9 were changed and 10 wasn't then tabbing from this field the plugin wont do anything.. hence TRIGGERS..and by this the "When leaving the field" it can call an application.
but there is no point calling an application because it cant in anyway know what contact is being worked on to then change data according to our business rules..
So adding a toolbar item.. this does not help the business rule, as the data entry person might not press the button.. so left there is ChangingContact and testing if the field has been set or not.. this is no good because if one of the 10 fields ever gets changed, currently they just press tab until it passes the last box triggering the left field event..
We could also use the fieldChanged event on every dll.. but this also stuffs up another point in that using the SDK and setting fields data, that the data ONLY shows up once the contact has been saved/updated like Contact.Update()
and when some fields have not been set yet which require "something" (so not null) this causes more problems..
we have waited so long to upgrade, and every year we keep looking into each version since the first .Net version, but with all the problems and feedback we kept reading from users we just stuck with ACT6.. its not till now that it really seems like ACT has got to a good place and we are happy to upgrade.. it is only now that we are trying to write all the background plugins etc that its shows just how simple things STILL have been ignored and hinder developers from being able to extend ACT to fit client needs, instead of "well we can only get to here"
And my remarks about Unique IDs i very much doubt come down to only a few people wanting it.. it has been a constant question i see popping up in the forums and from other companies that i know that too use ACT.. Now i can write something, i did for ACT6 but the problem now is that there is no ContactAdded in that it was actually ADDED to the DB.. clicking the NEW CONTACT button i dont want to see an ID there because if i click delete because i didnt mean to click NEW i dont want it to waste an ID number.. i only want it to use one once the record is in the DB.. and i bet that the idea has been shared many times before.. BMC, MYOB anything else i think of all give a record a unique ID/invoice number etc.. there is NO WAY IN HELL that i want a contact that rings me to read me there ID like 12345-12345-123454-123243-456456-12323-12321 36 char ID