Wednesday, April 23, 2008

Enabling AutoComplete for all GP users

Autocomplete has been a very valuable feature in Microsoft Dynamics GP since version 8.0, however, little is known as to the method of storing this data within the application tables. In addition, one of the commonly requested features by application administrators in sizeable environments is to enable Autocomplete for all users created in the system.

Autocomplete for each user -- along with many other user preferences -- is stored in the DYNAMICS.dbo.SY01402 table, in a very cryptic way. Each preference is stored as a series of concatenated characters representing the selections made by the user during setup, in the SYUSERDFSTR column. In addition, the feature has been assigned a system default type a(syDefaultType) of 30.

The following query demonstrates the content of SY01402 for the 'sa' user.

-- Created by Mariano Gomez, MVP
-- This code is licensed under the Creative Commons 
-- Attribution-NonCommercial-ShareAlike 3.0 Unported License.
-- http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
--
SELECT * FROM DYNAMICS..SY01402 WHERE USERID = 'sa';

The results are as follow:

USERID          syDefaultType SYUSERDFSTR
--------------- ------------- ------------------------------
sa              15            0
sa              5             1
sa              3             251
sa              1             0
sa              2             0
sa              4             1
sa              7             2
sa              6             TRUE
sa              8             3
sa              30            FALSE-0-10000
sa              13            -1:-1:-1:-1:-1:-1:-1:-1:-1:-1
sa              42            4
sa              14            3
sa              31            TRUE

The following script has been designed to will change all user preferences to enable field auto-complete features throughout the application for every user.

-- Created by Mariano Gomez, MVP
-- This code is licensed under the Creative Commons 
-- Attribution-NonCommercial-ShareAlike 3.0 Unported License.
-- http://creativecommons.org/licenses/by-nc-sa/3.0/legalcode
--
UPDATE SY01402 SET SYUSERDFSTR = REPLACE(SYUSERDFSTR, 'TRUE', 'FALSE')
WHERE syDefaultType = 30;

NOTE: If the user ID is not present within the table, the query can be modified to insert an autocomplete record based on the User Master table, dbo.SY01400.

Until next post!

MG.-
Mariano Gomez, MVP
IntellPartners, LLC
http://www.IntellPartners.com/

7 comments:

Senior Consultant said...

Hate to dredge up a seriously old thread, but this one is still relevant. I'm trying to compile a list of these items and what valid data gets associated with them. I've got a couple, but if you have any insights, I'd love to throw them on the list.

Thanks!
-James from Calgary, AB

Mariano Gomez said...

James,

I'm not sure what you mean by "a list of these items". Could you provide me with an example or more details?

MG.-
Mariano Gomez

Mariano Gomez said...

James,

I'm not sure what you mean by "a list of these items". Could you provide me with an example or more details?

MG.-
Mariano Gomez

Senior Consultant said...

Sorry Mariano, I meant a list of the items in syDefaultUser. For example, I know that 70 reflects the default company number for a user having selected "Remember this company". 30 is autocomplete. And 48 refers to the CEIP. I was wondering if you knew any of the other codes.

Thanks for the quick reply!
-James from Calgary, AB

Mariano Gomez said...

James,

Too many to list here. However, if you install Dexterity and open the Dynamics.dic dictionary file, you can then click on the Forms resources folder and located the syUserDefaults form. Double-click to open it and click on the Constants tab. You can then scroll and locate all the constants beginning with SYUP_. You may then double-click to open and see the values for each constant.

I suggest you copy the DYNAMICS.DIC dictionary file from the GP installation into another folder, before you attempt to open the dictionary.

MG.-

Mariano Gomez said...

James,

To make matters easier, you can also check with Modifier (Duh! how come I did not think about this to begin with?)

MG.-

Anonymous said...

Mariano, I am looking for a different kind of auto complete. For example, when prepping work orders for the day I go through the following steps: select date, select SO#, go to print, select print pick ticket, print BOL and include comments. Anyway for me to select the date, SO# and then have the system automatically go to print and process the three options after that ?