08-29-2010 08:05 PM
I have a neat little solution here coded using the Act Framework. It works fine, it's wirtten in C# and it contains a referenece to:
var = framework.Contacts.GetContactFieldDescriptors()
where framework is a succesfully initialized object of type Act.Framework.ActFramework.
If I look at the contents of var I see 101 entries like this:
Act.Framework.Contacts.ContactFieldDescriptor[]
+ [0] {Record Creator} Act.Framework.Contacts.ContactFieldDescriptor {Act.Framework.Contacts.ContactAccessorFieldDescriptor}
+ [1] {Last Edited By} Act.Framework.Contacts.ContactFieldDescriptor {Act.Framework.Contacts.ContactAccessorFieldDescriptor}
+ [2] {Record Manager} Act.Framework.Contacts.ContactFieldDescriptor {Act.Framework.Contacts.ContactAccessorFieldDescriptor}
+ [3] {Birth Date} Act.Framework.Contacts.ContactFieldDescriptor
+ [4] {Qualification} Act.Framework.Contacts.ContactFieldDescriptor
+ [5] {Contact photo} Act.Framework.Contacts.ContactFieldDescriptor
+ [6] {Mobile Phone} Act.Framework.Contacts.ContactFieldDescriptor
+ [7] {Alt Phone} Act.Framework.Contacts.ContactFieldDescriptor
+ [8] {Dongle identifier} Act.Framework.Contacts.ContactFieldDescriptor
+ [9] {Dongle Owner} Act.Framework.Contacts.ContactFieldDescriptor
+ [10] {Web Site} Act.Framework.Contacts.ContactFieldDescriptor
+ [11] {Messenger ID} Act.Framework.Contacts.ContactFieldDescriptor
+ [12] {Contact} Act.Framework.Contacts.ContactFieldDescriptor
+ [13] {Phone} Act.Framework.Contacts.ContactFieldDescriptor
+ [14] {Country} Act.Framework.Contacts.ContactFieldDescriptor
+ [15] {Gender} Act.Framework.Contacts.ContactFieldDescriptor
+ [16] {Department} Act.Framework.Contacts.ContactFieldDescriptor
+ [17] {Fax Ext-} Act.Framework.Contacts.ContactFieldDescriptor
+ [18] {Eon send letters to} Act.Framework.Contacts.ContactFieldDescriptor
+ [19] {Prospect EV status} Act.Framework.Contacts.ContactFieldDescriptor
+ [20] {Name Suffix} Act.Framework.Contacts.ContactFieldDescriptor
+ [21] {ID/Status} Act.Framework.Contacts.ContactFieldDescriptor
+ [22] {Is User} Act.Framework.Contacts.ContactFieldDescriptor
+ [23] {Home Address 2} Act.Framework.Contacts.ContactFieldDescriptor
+ [24] {User 5} Act.Framework.Contacts.ContactFieldDescriptor
+ [25] {Contact source} Act.Framework.Contacts.ContactFieldDescriptor
+ [26] {Operating system} Act.Framework.Contacts.ContactFieldDescriptor
+ [27] {Home Address 1} Act.Framework.Contacts.ContactFieldDescriptor
+ [28] {Name Prefix} Act.Framework.Contacts.ContactFieldDescriptor
+ [29] {Address 1} Act.Framework.Contacts.ContactFieldDescriptor
+ [30] {Download latest} Act.Framework.Contacts.ContactFieldDescriptor
+ [31] {acoustic-software} Act.Framework.Contacts.ContactFieldDescriptor
+ [32] {English} Act.Framework.Contacts.ContactFieldDescriptor
+ [33] {Last Attempt} Act.Framework.Contacts.ContactFieldDescriptor
+ [34] {Last Results} Act.Framework.Contacts.ContactFieldDescriptor
+ [35] {E-Mail 2} Act.Framework.Contacts.ContactFieldDescriptor
+ [36] {Import Date} Act.Framework.Contacts.ContactFieldDescriptor
+ [37] {Last E-mail} Act.Framework.Contacts.ContactFieldDescriptor
+ [38] {Download comment} Act.Framework.Contacts.ContactFieldDescriptor
+ [39] {Personal E-mail} Act.Framework.Contacts.ContactFieldDescriptor
+ [40] {Edit Date} Act.Framework.Contacts.ContactFieldDescriptor
+ [41] {Create Date} Act.Framework.Contacts.ContactFieldDescriptor
+ [42] {Company Site} Act.Framework.Contacts.ContactFieldDescriptor
+ [43] {Market} Act.Framework.Contacts.ContactFieldDescriptor
+ [44] {Company} Act.Framework.Contacts.ContactFieldDescriptor
+ [45] {Home Phone} Act.Framework.Contacts.ContactFieldDescriptor
+ [46] {Phone Ext-} Act.Framework.Contacts.ContactFieldDescriptor
+ [47] {Time to call} Act.Framework.Contacts.ContactFieldDescriptor
+ [48] {Pager Extension} Act.Framework.Contacts.ContactFieldDescriptor
+ [49] {Salutation} Act.Framework.Contacts.ContactFieldDescriptor
+ [50] {Key Words} Act.Framework.Contacts.ContactFieldDescriptor
+ [51] {Pager} Act.Framework.Contacts.ContactFieldDescriptor
+ [52] {3rd Last Reach} Act.Framework.Contacts.ContactFieldDescriptor
+ [53] {Last Name} Act.Framework.Contacts.ContactFieldDescriptor
+ [54] {E-Mail 3} Act.Framework.Contacts.ContactFieldDescriptor
+ [55] {Fax} Act.Framework.Contacts.ContactFieldDescriptor
+ [56] {Comm Style} Act.Framework.Contacts.ContactFieldDescriptor
+ [57] {Photo} Act.Framework.Contacts.ContactFieldDescriptor
+ [58] {Market segment} Act.Framework.Contacts.ContactFieldDescriptor
+ [59] {E-mail} Act.Framework.Contacts.ContactFieldDescriptor
+ [60] {Address 2} Act.Framework.Contacts.ContactFieldDescriptor
+ [61] {Is Imported} Act.Framework.Contacts.ContactFieldDescriptor
+ [62] {Home Extension} Act.Framework.Contacts.ContactFieldDescriptor
+ [63] {Last Reach} Act.Framework.Contacts.ContactFieldDescriptor
+ [64] {First Name} Act.Framework.Contacts.ContactFieldDescriptor
+ [65] {State} Act.Framework.Contacts.ContactFieldDescriptor
+ [66] {Aquatic environ- 1} Act.Framework.Contacts.ContactFieldDescriptor
+ [67] {Ticker Symbol} Act.Framework.Contacts.ContactFieldDescriptor
+ [68] {Eon ID-status} Act.Framework.Contacts.ContactFieldDescriptor
+ [69] {Eon Qualification} Act.Framework.Contacts.ContactFieldDescriptor
+ [70] {Mobile Extension} Act.Framework.Contacts.ContactFieldDescriptor
+ [71] {Spouse} Act.Framework.Contacts.ContactFieldDescriptor
+ [72] {Home City} Act.Framework.Contacts.ContactFieldDescriptor
+ [73] {Prospect summary} Act.Framework.Contacts.ContactFieldDescriptor
+ [74] {bathymetric} Act.Framework.Contacts.ContactFieldDescriptor
+ [75] {EK500 logging} Act.Framework.Contacts.ContactFieldDescriptor
+ [76] {Contact Order} Act.Framework.Contacts.ContactFieldDescriptor
+ [77] {Referred By} Act.Framework.Contacts.ContactFieldDescriptor
+ [78] {Home Address 3} Act.Framework.Contacts.ContactFieldDescriptor
+ [79] {Last Meeting} Act.Framework.Contacts.ContactFieldDescriptor
+ [80] {Echosounder 1st} Act.Framework.Contacts.ContactFieldDescriptor
+ [81] {2nd Last Reach} Act.Framework.Contacts.ContactFieldDescriptor
+ [82] {City} Act.Framework.Contacts.ContactFieldDescriptor
+ [83] {Address 3} Act.Framework.Contacts.ContactFieldDescriptor
+ [84] {Send letters to} Act.Framework.Contacts.ContactFieldDescriptor
+ [85] {Private Contact} Act.Framework.Contacts.ContactFieldDescriptor
+ [86] {Schools} Act.Framework.Contacts.ContactFieldDescriptor
+ [87] {Eon market segment} Act.Framework.Contacts.ContactFieldDescriptor
+ [88] {Home State} Act.Framework.Contacts.ContactFieldDescriptor
+ [89] {Home Country} Act.Framework.Contacts.ContactFieldDescriptor
+ [90] {Alt Phone Ext-} Act.Framework.Contacts.ContactFieldDescriptor
+ [91] {Vessel} Act.Framework.Contacts.ContactFieldDescriptor
+ [92] {Title} Act.Framework.Contacts.ContactFieldDescriptor
+ [93] {Letter Date} Act.Framework.Contacts.ContactFieldDescriptor
+ [94] {Home Postcode} Act.Framework.Contacts.ContactFieldDescriptor
+ [95] {Download contact req-} Act.Framework.Contacts.ContactFieldDescriptor
+ [96] {Postcode} Act.Framework.Contacts.ContactFieldDescriptor
+ [97] {Middle Name} Act.Framework.Contacts.ContactFieldDescriptor
+ [98] {Eon market segment NEW} Act.Framework.Contacts.ContactFieldDescriptor
+ [99] {AcousticForum} Act.Framework.Contacts.ContactFieldDescriptor
+ [100] {Access Level} Act.Framework.Contacts.ContactFieldDescriptor
Now immediately following this line I try this:
var = framework.Opportunities.GetOpportunityFieldDescriptors();
And now I look at var and I find it has 34 entries. But they are all null! Like this:
Act.Framework.Opportunities.OpportunityFieldDescriptor[]
[0] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[1] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[2] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[3] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[4] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[5] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[6] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[7] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[8] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[9] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[10] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[11] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[12] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[13] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[14] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[15] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[16] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[17] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[18] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[19] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[20] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[21] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[22] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[23] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[24] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[25] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[26] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[27] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[28] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[29] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[30] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[31] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[32] null Act.Framework.Opportunities.OpportunityFieldDescriptor
[33] null Act.Framework.Opportunities.OpportunityFieldDescriptor
Why so? This is extremely puzzling and inhibiting my ability to examine opportunities in the ACT! Framework. What is up?
I'm using "ACT! by Sage Premium 2010 Version 12.1.181.0, Hot Fix 1" and the properties of the Act.Framwork references I'm using in my project are:
C:\WINDOWS\assembly\GAC_MSIL\Act.Framework\12.1.181.0__ebf6b2ff4d0a08aa\Act.Framework.dll
Version: 12.1.181.0
C:\WINDOWS\assembly\GAC_MSIL\Act.Shared.Collections\12.1.181.0__ebf6b2ff4d0a08aa\Act.Shared.Collections.dll
Version: 12.1.181.0
C:\WINDOWS\assembly\GAC_MSIL\Act.Shared.ComponentModel\12.1.181.0__ebf6b2ff4d0a08aa\Act.Shared.ComponentModel.dll
Version: 12.1.181.0
(all in my GAC of course). Have I got some version mismatch going on? ACT! was upgraded here recently.
Cheers,
Bernd.
08-30-2010 07:20 AM
It's not a version issue because I can reproduce this in v13. It appears to be, as you pointed out in the thread title, an issue with GetOpportunityFieldDescriptors as this doesn't occur with any other entity.
11-04-2010 09:01 PM
And so is a fix planned at any stage? Seems surprising to me that no-one has found this yet, rather broken!
11-05-2010 06:39 AM
It's already been submitted and as soon as a resolution is a available I'll let you know. Only the collection should be empty, if you need to get any particular opp field descriptor this should work.
MutableEntityFieldDescriptor mefd
= afw.Opportunities.GetMutableEntityFieldDescriptor(Act.Framework.Opportunities.StandardOpportunityField.Name);
11-07-2010 10:51 PM
I have not tested this out myself and so its completely speculative but...what about if you try a slightly different approach via the FieldDescriptor object from Act.Datatbase namespace:
FieldDescriptorCollection oppFields = framework.Fields.GetFields(RecordType.Opportunity);
08-09-2011 08:08 AM
Was this fix in a HF or SP1 for 13 and 12?
Will it be fixed in 14?
08-09-2011 08:26 AM
I don't have an ETA on a fix for this issue. As mentioned in a previous post you can work around this by using MutableEntityFieldDescriptors.