11-09-2009 12:29 PM
This should be simple, but maybe I'm missing something.
I have a client using 7.5.1 web, and I'm having a problem with cascading picklists on the insert contact/account screen. We've defined a different set of Account Type/Sub type combinations than OOTB, which is working everywhere except on the insert contact/account screen. Basically, it seems to be grabbing the subtype list for the previously select type value. When the form first loads, type defaults to "Prospect" (which is no longer in the type picklist, however the Subtype list for "Prospect" is still in the system), and sub type comes up as "The Picklist Could Not be Found." If I then select "Picklist Item1" I still get "The Picklist Could Not be Found". Then, If I select "Picklist Item2" I get the Subtype list I set up for Picklist Item1. This continues... If I select "Picklist Item3" I get the Subtype list for Picklist item 2 and so on.
The code that is supposed to set the Sub Type Picklist Name is defined in the OnLoad method of the InsertContact smartpart. I tried creating an ChangeAction method for the AccountType picklist defined in that smartpart to kick off the code to set the Subtype list, but wasn't having much luck.
First of all, how do I get rid of the default account type value of "Prospect" when inserting a new contact/account in the web? I'm wondering if this is not part of the problem since it was removed from the Account Type picklist. Finally, I was wondering if anyone had either run into the same issue, or had any ideas how I could work around this. The Type/SubType cascading picklists work fine on both the Account Detail, as well as the Insert Account screen. It just seems to be on Insert Contact/Account where the problem comes up.
11-17-2009 06:20 PM
Hi Jason -
I think this will do the trick for you.
To override the default Account Type = "Prospect"
In Application Architect, go to \Entity Model\Packages\SalesLogix Application Entities\Account\Rules\Events\OnCreate
Double click the OnCreate event to access the various event handlers that have been defined.
Goto the "Post Execute Steps" tab
Click on the "Add" link to Add a new step
Click on Edit Code SNippet to access the code that was auto-generated for you.
Use this line of code
account.Type = "YourDefaultValueHere" \\ <-- use a valid value for Type from your Account Type picklist
That should do it.
Save All, Build, Deploy, Test
There is another technique I like to use involving retrieving the default picklist item value from the picklist (in this case, the Account Type picklist). I prefer that approach as it allows an SLX Administrator to change the behavior of the system later without requiring any Build and Deploy actions by a developer. I could post that later if interested, but thought I'd give you the quick and easy technique first.
12-04-2009 06:55 AM
I've had this problem as well, and adding it in the post execute steps doesn't seem to work. Instead I added it to the Primary Steps tab and it worked. Close enough though, Thanks!
12-08-2009 02:52 AM
The Primary OnCreate step is normally wired up to the default CRUD handlers form Sage.BusinessRules.dll. You can only have one active primary step event handler, which is why I used the OnAfter step of the OnCreate event.
Were you using the OnCreate entity event or did you modify logic for the Insert and/or Update event instead?
Glad to hear you found a solution that worked - just curious to learn about other techniques people are using.