Skip to main content

Notifications

Announcements

No record found.

Microsoft Dynamics GP (Archived)

conversion from gp 9.0 to 10

Posted on by 65

Dear all,

Can some one give me the out line and process to be followed in the conversion from 9.0 to GP 10.0

Links to documents will be great

Thanks a lot and have a great day  

 

*This post is locked for comments

  • Sunbeam De Jesus Profile Picture
    Sunbeam De Jesus 3,930 on at
    Re: conversion from gp 9.0 to 10

    In addition to ....

     

     there is a GP10 installer you can download that inlcudes SP2 already use this one, do not use the first GP10 cd releases.

     Here's a compiled useful sql scripts during my upgrade in the past. thanks to Elsa and Ethel and others who have contributed. 

     

    =======================
    SQL Version
    =======================


    WITH Version(ver)
    AS
    (
        SELECT SUBSTRING
        (
            @@VERSION,
            CHARINDEX(' - ', @@VERSION)+3,
            32
        )
    )
    SELECT Build = LEFT(ver, CHARINDEX(' ', ver))
        FROM Version


    =======================
    sp_help sort
    =======================

    Latin1-General, case-insensitive, accent-sensitive, kanatype-insensitive,
    width-insensitive for Unicode Data, SQL Server Sort Order 52 on Code Page 1252
    for non-Unicode Data

    =======================
    select * from SY01500
    =======================

    CMPANYID CMPNYNAM                                                          INTERID
    -------- ----------------------------------------------------------------- -------
    10       CSA Test Company                                                  TEST
    2        CSA Old (Do not use)                                              CSA 
    3        CSA of WA Inc (Formerly CPSU)                                     CPSU
    4        Civil Service Holdings Pty Ltd                                    CSH 
    5        Civil Service Insurance Agency                                    CSI 
    6        CSA Services (WA) Pty Ltd                                         CFS 
    9        CPSU 1 January 2005                                               CPSUW

    =======================
    Search all db
    =======================

    --SQL Script to find all tables which contain a particular Column
    select distinct rtrim(objs.name)
    from syscolumns cols
    inner join sysobjects objs on (cols.id = objs.id)
    inner join sysindexes indx on (cols.id = indx.id)
    where (cols.name = 'CMPANYID') and (objs.xtype = 'U') and (indx.rowcnt <> 0)

    =======================
    Tables where company ID is stored
    =======================

    --Tables where to delete company ID
    --delete from SY01500
    where INTERID in ('CSI','CFS')
    --delete SY02000 where CMPANYID in ('4','5')
    --delete SY02100 where CMPANYID in ('4','5')
    --delete SY40500 where CMPANYID in ('4','5')
    --delete SY60100 where CMPANYID in ('4','5')

    =======================
    Restore of DB
    =======================

    D:\MSSQL GP10 DATA\GPSCSHDat.mdf
    D:\MSSQL GP10 DATA\GPSCSHLog.ldf

    =======================
    Directory for backups:
    =======================

    D:\GP Backups\Upgraded_160508_CFS

    =======================
    Change db owners
    =======================

    use dynamics
    sp_changedbowner 'DYNSA'
    use cfs
    sp_changedbowner 'DYNSA'
    use cpsu
    sp_changedbowner 'DYNSA'
    use cpsuw
    sp_changedbowner 'DYNSA'
    use csa
    sp_changedbowner 'DYNSA'
    use csh
    sp_changedbowner 'DYNSA'
    use csi
    sp_changedbowner 'DYNSA'
    use test
    sp_changedbowner 'DYNSA'

    =======================
    change system password
    =======================

    use dynamics
    update sy02400 set password = 0x00202020202020202020202020202020

    =======================
    delete users
    =======================

    select * from sy01400 where userid not in ('sa','TEST','DYNSA')
    --delete from sy01400 where userid not in ('sa','TEST','DYNSA')
    select * from ACTIVITY where userid not in ('sa','TEST','DYNSA')
    select * from ASIEXP81 where userid not in ('sa','TEST','DYNSA')
    select * from ASIEXP85 where userid not in ('sa','TEST','DYNSA')
    select * from ASIEXP86 where userid not in ('sa','TEST','DYNSA')
    select * from ASIEXP98 where userid not in ('sa','TEST','DYNSA')
    --delete from ASIEXP98 where userid not in ('sa','TEST','DYNSA')
    select * from STN41100 where userid not in ('sa','TEST','DYNSA')
    select * from STN41300 where userid not in ('sa','TEST','DYNSA')
    select * from SY01400 where userid not in ('sa','TEST','DYNSA')
    --delete from SY01400 where userid not in ('sa','TEST','DYNSA')
    select * from SY01402 where userid not in ('sa','TEST','DYNSA')
    --delete from SY01402 where userid not in ('sa','TEST','DYNSA')
    select * from SY01403 where userid not in ('sa','TEST','DYNSA')
    --delete from SY01403 where userid not in ('sa','TEST','DYNSA')
    select * from SY01600 where userid not in ('sa','TEST','DYNSA')
    --delete from SY01600 where userid not in ('sa','TEST','DYNSA')
    select * from SY02000 where userid not in ('sa','TEST','DYNSA')
    --delete from SY02000 where userid not in ('sa','TEST','DYNSA')
    select * from SY02100 where userid not in ('sa','TEST','DYNSA')
    select * from SY02700 where userid not in ('sa','TEST','DYNSA')
    select * from SY07105 where userid not in ('sa','TEST','DYNSA')
    select * from SY07110 where userid not in ('sa','TEST','DYNSA')
    select * from SY07121 where userid not in ('sa','TEST','DYNSA')
    --delete from SY07121 where userid not in ('sa','TEST','DYNSA')
    select * from SY07125 where userid not in ('sa','TEST','DYNSA')
    --delete from SY07125 where userid not in ('sa','TEST','DYNSA')
    select * from SY07130 where userid not in ('sa','TEST','DYNSA')
    --delete from SY07130 where userid not in ('sa','TEST','DYNSA')
    select * from SY07200 where userid not in ('sa','TEST','DYNSA')
    --delete from SY07200 where userid not in ('sa','TEST','DYNSA')
    select * from SY07210 where userid not in ('sa','TEST','DYNSA')
    --delete from SY07210 where userid not in ('sa','TEST','DYNSA')
    select * from SY60100 where userid not in ('sa','TEST','DYNSA')
    --delete from SY60100 where userid not in ('sa','TEST','DYNSA')
    select * from WDC41101 where userid not in ('sa','TEST','DYNSA')
    select * from WDC51100 where userid not in ('sa','TEST','DYNSA')
    --delete from WDC51100 where userid not in ('sa','TEST','DYNSA')

    =======================
    a get/change error in table 'duCompanyVersions' cannot access SQL table
    =======================

    Used a new GP application for upgrading from v8 to v10

    =======================
    If company to be upgraded is locked
    =======================

    use dynamics
    delete from dulck


    =======================
    Upgrade these companies? in GP Utilities
    =======================

    use dynamics
    delete from db_upgrade
    where db_name in
    ('TCPSU', 
    'TCSA', 
    'TWO')                                                                                        
     --compare to SY01500

    =======================
    restart upgrade
    =======================

    use DYNAMICS
    declare
    @companyDBName as char(5),
    @version as numeric(3,2),
    @verMajor as int,
    @verMinor as int,
    @verOldMajor as int,
    @verOldMinor as int,
    @verBuild as int,
    @companyID as smallint
    set nocount on
    set @companyDBName = '<Company_Database_Name>'
    set @version = 8
    set @verBuild = 0

    if (@version = 8.0 or @version = 8)
    begin
               set @verMajor = 8
               set @verMinor = 0
               set @verBuild = 0
               set @verOldMajor = 8
               set @verOldMinor = 0
     
    end
    set @companyID = (select CMPANYID from SY01500 where INTERID = @companyDBName)

    delete DB_Upgrade where PRODID <>0 and db_name = @companyDBName


    delete DU000020 where PRODID <>0 and companyID = @companyID

    update DB_Upgrade set db_verMajor = @verMajor, db_verMinor = @verMinor, db_verOldMajor = @verOldMajor, db_verOldMinor = @verOldMinor, db_verBuild=@verBuild, db_verOldBuild=@verBuild, db_status = 0
    where PRODID = 0 and db_name = @companyDBName

    update DU000020 set versionMajor = @verMajor, versionMinor = @verMinor, versionBuild = @verBuild  where companyID = @companyID and PRODID = 0

    delete DU000030 where companyID = @companyID

    delete duLCK

    set nocount off

    =======================
    Run after upgrade
    =======================

    SELECT b.fileOSName, a.fileNumber, a.Status, a.errornum, a.errordes, c.CMPANYID, c.INTERID
       FROM DYNAMICS.dbo.DU000030 a
          JOIN
             DYNAMICS.dbo.DU000010 b
          ON a.fileNumber = b.fileNumber
          JOIN
             DYNAMICS.dbo.SY01500 c
          ON a.companyID = c.CMPANYID
    WHERE a.Status <> 0 or a.errornum <> 0

    =======================
    Run before upgrade (ClearCompanies.sql)
    =======================

    /* ClearCompanys.sql - Script that will clear out all entries in the DYNAMICS
       database referencing databases that no longer exist on the SQL Server.

       Requirements:
       Company database you wish to have cleaned out of the tables in the DYNAMICS
       database must be removed from the SQL server before running this script. 
       Ensure that all your databases have been restored or they will be erased
       from the DYNAMICS database.
    */

    set nocount on

    /* Remove all references in the company master (SY01500) for databases that
       Do not exist on the SQL Server */
    delete DYNAMICS..SY01500 where INTERID not in
                (select name from master..sysdatabases)

    /* Clear out all tables in DYNAMICS database that have a CMPANYID field
       that no longer matches any Company ID's in the SY01500 */
    USE DYNAMICS
    declare @CMPANYID char(150)
    declare CMPANYID_Cleanup CURSOR for
    select 'delete ' + o.name + ' where CMPANYID not in (0,-32767)'
    + ' and CMPANYID not in (select CMPANYID from DYNAMICS..SY01500)'
      from sysobjects o, syscolumns c
      where o.id = c.id
          and o.type = 'U'
          and c.name = 'CMPANYID'
          and o.name <> 'SY01500' order by o.name

    OPEN CMPANYID_Cleanup
    FETCH NEXT from CMPANYID_Cleanup into @CMPANYID

    while (@@FETCH_STATUS <>-1)
    begin

     exec (@CMPANYID)
     FETCH NEXT from CMPANYID_Cleanup into @CMPANYID

    end

    DEALLOCATE CMPANYID_Cleanup
    go

    /* Clear out all tables in DYNAMICS database that have a companyID field
       that no longer matches any Company ID's in the SY01500 */
    USE DYNAMICS
    declare @companyID char(150)
    declare companyID_Cleanup CURSOR for
    select 'delete ' + o.name + ' where companyID not in (0,-32767)'
    + ' and companyID not in (select CMPANYID from DYNAMICS..SY01500)'
      from sysobjects o, syscolumns c
      where o.id = c.id
          and o.type = 'U'
          and c.name = 'companyID'
          and o.name <> 'SY01500'
    set nocount on
    OPEN companyID_Cleanup
    FETCH NEXT from companyID_Cleanup into @companyID
    while (@@FETCH_STATUS <>-1)
    begin

     exec (@companyID)
     FETCH NEXT from companyID_Cleanup into @companyID

    end

    DEALLOCATE companyID_Cleanup
    go

    /* Clear out all tables in DYNAMICS database that have a db_name field
       that no longer matches any company names (INTERID) in the SY01500 */
    USE DYNAMICS
    declare @db_name char(150)
    declare db_name_Cleanup CURSOR for
    select 'delete ' + o.name + ' where db_name <> ''DYNAMICS'''
    + ' and db_name not in (select INTERID from DYNAMICS..SY01500)'
      from sysobjects o, syscolumns c
      where o.id = c.id
          and o.type = 'U'
          and c.name = 'db_name'

    set nocount on
    OPEN db_name_Cleanup
    FETCH NEXT from db_name_Cleanup into @db_name

    while (@@FETCH_STATUS <>-1)
    begin

     exec (@db_name)
     FETCH NEXT from db_name_Cleanup into @db_name

    end

    DEALLOCATE db_name_Cleanup
    GO
    set nocount on

    /* Clear out all tables in DYNAMICS database that have a dbname field
       that no longer matches any company names (INTERID) in the SY01500 */
    USE DYNAMICS
    declare @dbname char(150)
    declare dbname_Cleanup CURSOR for
    select 'delete ' + o.name + ' where DBNAME <> ''DYNAMICS'''
    + ' and DBNAME not in (select INTERID from DYNAMICS..SY01500)'
      from sysobjects o, syscolumns c
      where o.id = c.id
          and o.type = 'U'
          and c.name = 'DBNAME'

    set nocount on
    OPEN dbname_Cleanup
    FETCH NEXT from dbname_Cleanup into @dbname

    while (@@FETCH_STATUS <>-1)
    begin

     exec (@dbname)
     FETCH NEXT from dbname_Cleanup into @dbname

    end

    DEALLOCATE dbname_Cleanup
    GO
    set nocount on

    /* Remove all stranded references from the other Business Alerts table that
       no longer exist in the SY40500 */
    delete SY40502 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
    delete SY40503 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
    delete SY40504 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
    delete SY40505 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
    delete SY40506 where BARULEID NOT IN (SELECT BARULEID FROM SY40500)
    GO

     


    select PONUMBER, DEX_ROW_ID from POP10110 where PONUMBER not in (select PONUMBER from POP10100)
    select PONUMBER, DEX_ROW_ID from POP30110 where PONUMBER not in (select PONUMBER from POP30100)

    DBCC CHECKDB
    DBCC CHECKCATALOG

     


    select @@servername

    dbcc updateusage(TWO)


    sp_helpdb

    sp_changedbowner 'DYNSA'


    select name
    from sysobjects
    where name like '% %'

     

     

     

  • Beat Bucher  GP Geek  GPUG All Star Profile Picture
    Beat Bucher GP Gee... 28,021 Super User 2024 Season 1 on at
    Re: conversion from gp 9.0 to 10

     Hi Jimmy,

    In addition to what was posted already, I urge you to _not_ use the GP security  conversion tools that Microsoft provides to ease the transition from the prior versions of GP 10.0. This tools creates a real mess in the security tables and then it will take you forever to figure out who has access to what. GP 10.0 uses an entire new security model based on roles and tasks. Resources are assigned to tasks and tasks are assigned to roles. Roles are then assigned to users (it's like AD, but it's not :-) ).

    Do your best to assess the current security needs before you upgrade, put it down on a paper and look with your users what their needs are in the system. Microsoft ships with GP 10.0 about 40-45 pre-defined roles and hundreds of tasks, suited for the most common actiivities in the system. Be careful, some additionnal modules or 3rd parties don't have a pre-defined roles / tasks set, and you'll need to create your own.

    Take a look to the execellent series that David Musgrave has posted on his blog.

    http://blogs.msdn.com/developingfordynamicsgp/archive/2008/11/10/microsoft-dynamics-gp-application-level-security-series.aspx

    Wish you good luck with your migration from GP 9 to 10 :-)

    Happy Halloween,

    Béat
    GP 10 Sr. System Admin
    Forensic Technology

  • George Sagen Profile Picture
    George Sagen 1,005 on at
    Re: conversion from gp 9.0 to 10

    In addition to the docs provided above, having just been through it, I'd also recommend:

    Do all the clean-up that you can prior to converting:

    • Post all old batches
    • Archive, backup, and purge all history that you can
    • Clean up any stuck transactions
    • Run check links on all modules and fix all problems
    • Delete any extra companies (used for training or sandbox environments) as they add time to the conversion.

    Additionally: 

    • Fully patch version 9 on the server and on all workstations.
    • Do full backups on DYNAMICS, all company databases, and all dictionaries
  • Community Member Profile Picture
    Community Member Microsoft Employee on at
    Re: conversion from gp 9.0 to 10

    Here is the official documentation, but requires Partnersource access:

    https://mbs.microsoft.com/partnersource/documentation/installationsetupguides/gp10_upgrade.htm?printpage=false

     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

December Spotlight Star - Muhammad Affan

Congratulations to a top community star!

Top 10 leaders for November!

Congratulations to our November super stars!

Tips for Writing Effective Suggested Answers

Best practices for providing successful forum answers ✍️

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 291,280 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 230,235 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,156

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans