Wednesday, April 7, 2010

Add an External Shortcut to all users in GP

Here's a script to add an External Link shortcut to the Home navigation pane for all users in Dynamics GP v10

/*
This script will add a shortcut to each user's navigation pane.
It will be added to the bottom of their shortcut list.
*/

DECLARE
    @ShortcutName varchar(50),
    @Shortcut varchar(200),
    @ShortcutKey int

SET
    @ShortcutName = 'Run Integration...',
    @Shortcut = 'C:\Program Files\Microsoft Dynamics\Integration Manager 10\Microsoft.Dynamics.GP.IntegrationManager.IMRun.exe',
    @ShortcutKey = 2427   -- use 0 for no shortcut key; see below for suggestions

INSERT INTO SY01990
    (ScbGroupType, ScbOwnerID, ScbNodeID, ScbParentNodeID, ScbShortcutType,
    ScbSubType, ScbDisplayName, ScbShortcutKey, ScbTargetStringOne,
    ScbTargetStringTwo, ScbTargetStringThree, ScbTargetLongOne, ScbTargetLongTwo,
    ScbTargetLongThree, ScbTargetLongFour, ScbTargetLongFive, ScbCompanyID)

SELECT
    1 ScbGroupType,
    u.userid ScbOwnerID,
    (SELECT MAX(scbnodeid)+1 FROM sy01990 WHERE ScbOwnerID=u.userid) ScbNodeID,
    0 ScbParentNodeID,
    1 ScbShortcutType,
    0 ScbSubType,
    @ShortcutName ScbDisplayName,
    @ShortcutKey ScbShortcutKey,
    @Shortcut ScbTargetStringOne,
    '' ScbTargetStringTwo,
    '' ScbTargetStringThree,
    0,0,0,0,0,0

FROM
    SY01400 u

WHERE
    u.UserID NOT IN
        (SELECT ScbOwnerID FROM SY01990 WHERE ScbDisplayName = @ShortcutName)

ORDER BY
    ScbOwnerID

/*

ShortcutKey suggestions

If you want to set up a key, create a shortcut, assign a key,
then select and run the script below to see what to enter
as the @ShortcutKey

select ScbDisplayName, ScbOwnerID, ScbShortcutKey
from sy01990
where ScbShortcutKey > 0
order by ScbDisplayName, ScbOwnerID

*/