11-15-2010 12:01 PM
We are on 7.2.2 running both network and remote users. One of my users was having a problem with viewing contacts from the Accounts screen.
On the account screen, with the Contacts tab active in the middle or lower frame, if you click on a contact, you move to the contact screen with the contact you clicked on displayed. The counter will tell you which contact you are on such as "4 of 13". You can then scroll through the rest of the account's contacts directly from the contact screen.
On one account, when the user clicks on any contact, he moves to the contact screen as expected, but the counter says "No records", and he cannot scroll through the contacts. He must go back to the account screen and click on another contact to view that contact. He was on a remote database. I tried the same thing on the network database and had the same experience.
I noticed that there were an inordinate number of contacts associated with this account (680 to be exact). So, I went into Query Anaylzer and got a count of all contacts for each account. I then tried the same task above with different accounts. I found that any account with fewer than 250 contacts associated with it worked as expected, and any account with more than 250 contacts had the "No records" problem only displaying the single contact.
I figured there was some built-in limit when switching to the accounts contacts, but then another remote user reported that on the same account where the original user and myself recieved the "No records" count, she saw all the contacts when switching to the contacts.
Is there a limit or a setting somewhere (I couldn't find one) that controls this?
12-02-2010 12:22 PM
Check to be sure that the GRID itself is set to Allow Sorting (.Sortable = True). This actually is the 'command' to bring in all of the records for a grid (even if the grid says 5 of 680 they might not all be there). If Allow Sorting is not True\checked box on, then you get inaccurate reads of the primary key ( grid.GetCurrentField()) ....which is the behavior you are experiencing.
Does that make sense?
12-03-2010 08:12 AM
First let me applaud you for an excellent post! You not only identified a problem but you also amazingly tracked down the apparent source of the problem (> 250 Contacts) as well as an exception (the remote user that amazingly doesn't experience the problem) which makes this a real mindbender.
We are also running 7.2.2 on network and remote (and Citrix) and we experience the exact issue that you describe (tested on my Citrix session only).
As for your remote user that sees them all, does it show the correct number of Contacts in the 1 of x Contacts area of the Record Navigation Bar? It just seems so strange because it does appear to be an internal limit. We don't have any Accounts with greater that 250 Opps or Tickets but if someone did it would be interesting if they see the same problem!
12-03-2010 08:23 AM
Thank You Larry. Now I am going to have to look at that one exception user myself though... I was just accepting their word on it. Time to remote in, so I can see for myself. Exceptions annoy me! We don't have any accounts with more than 250 opty's and we don't use tickets, so I can't help out there. I'll let you know about the exception though!
12-03-2010 08:23 AM
Your update would make more sense if the problem didn't occur exactly at 250 and if Patrick's pther Remote User had the problem too!
We did tweak our Contacts GRID a tad but I bet if I imported 250 Contacts into our Eval database the problem would occur just as Patrick describes and I'm pretty sure that GRID is set to .Sortable=True since I can sort it.
We have another issue with our Contacts GRID which is supposedly sorted by default on name (i.e. it shows the little triangle in that column heading) but strangely the Contacts are not sorted! We can manually sort them but that triangle is definitely misleading whe we first go into the Account. I suspect that has something to do with our tweaks and I was going to test the behavior in Eval before pursuing.
12-15-2010 12:49 AM
Sorry that I am tuning in so late...
I am wondering if anyone ever tried to use the SLX profiler to get to the bottom of this.
If there is a provider problem the SLX profiler can identify the issue and you are also able to
change/optimize the SQL that's going through the profiler. This 'exception' will be stored in the
SLX database and the provider will alter the SQL to your wishes...
12-15-2010 08:45 AM
In Profiler, the queries are identical and the plugin called is the same in both instances (p6UJ9A0006JR). The only difference is that that the "in" clause on accounts with over 250 contacts has a single contactid whereas those under 250 contacts contain all of the account's contact's contactids.
SELECT A1.CONTACTID FROM CONTACT A1 WHERE (A1.CONTACTID IN ('C0TN0A9008P9')) ORDER BY A1.LASTNAME_UC ASC, A1.FIRSTNAME ASC ,A1.CONTACTID
must be coded in the plugin....
12-15-2010 09:14 AM
It looks like a string limitation in the SLX OLEDB Provider.
What I did for our company and a few others is somewhat different.
Istead of jumping backwards to the accounts, clicking on the contact datagrid and going
back to the contact I created a new tab for the Contact Detail.
This tab is called collegues and shows all the contact except the current contact you are on.
This way there is no need to go back and forward.
I am pretty sure there is a way to help you with the problem. The best way is to
code it yourself and create a temp contact group with all the contacts.
Just like this:
Application.BasicFunctions.CreateTempGroup "CONTACT","CONTACT","ACCOUNTID"," = ", Application.BasicFunctions.CurrentAccountID,""
If you use this code on the double click of the Contacts form this will automatically open the contact details
and due to 'where'-clause you should be able to see all the contacts.