Microsoft SQL Serverを使用して、Microsoft Dynamics GP のライブ企業データのコピーを持つテスト会社を設定する

この記事では、Microsoft SQL Serverを使用して、ライブ企業データのコピーを持つテスト会社を設定する方法について説明します。

適用対象: Microsoft Dynamics GP
元の KB 番号: 871973

概要

特定の問題をテストするには、Live Company データベースをテスト会社データベースにコピーするトラブルシューティング手法が考えられます。

詳細

注:

  • Microsoft Dynamics GP の 人事を 使用している場合は、出席セットアップ情報がコピーされていないように見えます。 このウィンドウを開くには、[ ツール] を選択し、[ セットアップ] をポイントし、[ 人事] をポイントし、[ 出席] をポイントして、[セットアップ] を選択 します。 このテーブル (TAST0130) はコピーされますが、Live Company データベースを参照するフィールドが含まれています。 この問題を解決するには、新しいテスト会社データベースの [出席設定] ウィンドウにデータを再入力して、以前と同じ情報を含めて保存します。 または、TAST0130 テーブルの [COMPANYCODE_I] フィールドを更新して、代わりに会社コード参照を Test データベースに変更することもできます (Dynamics のテスト会社の INTERID 列の値にあります)。SY01500テーブル)。

  • Microsoft Dynamics GP の 固定資産 を使用している場合、固定資産会社のセットアップ情報はテスト会社に引き継がれません。 この問題を解決するには、Live Company の [固定資産会社のセットアップ] ウィンドウを開き、設定をメモします。 テスト会社で [固定資産会社のセットアップ] ウィンドウを開き、ライブ会社と同じ設定を入力します。 ウィンドウを開くには、次のものを使用します。

    • Microsoft Dynamics GP 10.0 以降のバージョン:
      [Microsoft Dynamics GP] を選択し、[ツール] をポイントし、[セットアップ] をポイントし、[システム] をポイントし、[固定資産] をポイントして、[会社] を選択します。
  • Microsoft Dynamics GP の 監査証跡 を使用している場合は、フロントエンドからではなく、SQL を使用してテスト会社から監査トリガーを削除する必要があります。 監査証跡は、コピーされ、引き続き同じライブ監査データベースを指すトリガーです。 ただし、テスト会社の [監査証跡メンテナンス] ウィンドウで監査を削除、停止、または削除しないでください。また、監査テーブルの履歴を消去したり、ライブ会社のトリガーを削除したりしないでください。 テスト会社から監査証跡トリガーを削除するには、「 Microsoft Dynamics GP の Audit Trail を使用して、テスト会社の監査証跡トリガーがライブ監査データベースを更新できないようにする方法」で説明されている手順を参照してください。

  • 分析会計 (AA) を使用している場合は、ライブ データベース (AA がアクティブになっている) をコピーする前に、まずテスト会社で AA をアクティブにする必要があります。 「Microsoft Dynamics GP を使用して分析会計をインストールしてテスト会社を作成する方法」の手順に従います。

    注:

    復元後は、ブログで説明されている 2 つのスクリプトを実行することを忘れないでください。最初に INTERID を更新します (この記事の手順 6 から)。また、AAG00102 テーブルに格納されている次の使用可能な番号を更新するスクリプト (新しいトランザクションをキー付けするときに重複キーエラーを防ぐため)。

  • Management Reporter 2012 を使用している場合は、次のいずれかのオプションを使用して実行できる Management Reporter サービスを停止する必要があります。

    1. 管理レポーター 2012 構成コンソールの最初のページには、Management Reporter 2012 Application Service と Management Reporter 2012 Process Service の両方が表示されます。 これら 2 つのサービスの下にある [ 停止 ] を選択して停止します。

    2. [スタート] を選択し、[コントロール パネル] を選択し、[管理ツール] を選択し、[サービス] を選択して開きます。 [サービス] ウィンドウで、Management Reporter 2012 Application Service を強調表示し、[このサービスを停止する] リンク を選択します。 また、Management Reporter 2012 Process Service を強調表示し、[このサービスを停止する] リンク も選択します。

Microsoft は、例示のみを目的としてプログラミング例を提供しており、明示または黙示にかかわらず、いかなる責任も負わないものとします。 これには、特定の目的に対する商品性または適合性に関する黙示的な保証が含まれますが、これに限定されません。 この記事は、説明されているプログラミング言語、手順を作成およびデバッグするために使用されているツールに読者が精通していることを前提にしています。 Microsoft のサポート エンジニアが、特定の手順の機能をわかりやすく説明します。 ただし、これらの例を変更して、追加の機能を提供したり、特定の要件を満たすプロシージャを構築したりすることはありません。

テスト会社を設定するには、次の手順に従います。

  1. [ユーティリティ] で、テスト会社として使用できる新しい会社データベースを作成します。 データベースに、データベースをテスト会社として指定する一意の DB/会社 ID と会社名を指定してください。 たとえば、TEST の DB/会社 ID と TESTCOMPANY の会社名を使用できます。

    注:

    データベースの.mdfファイルと .ldf ファイルが作成されているパス。 この情報は、この記事の後半の手順で必要になります。

  2. テスト会社にサインインします。 Microsoft Dynamics GP で[ Microsoft Dynamics GP]、[ ツール]、[ セットアップ]、[ システム] の順に選択し、[ ユーザー アクセス] を選択します。

  3. [ ユーザー アクセス ] 領域で、テスト会社データベースへのアクセス権を付与するユーザーを選択します。 次に、テスト会社名の横にある [チェック] ボックスを選択して、テスト会社データベースへのアクセスを許可します。 テスト会社データベースへのアクセス権を付与するすべてのユーザーに対して、この手順を繰り返します。 これを行うには、次の手順を使用します。

    • Microsoft Dynamics GP: Microsoft Dynamics GP を選択し、[ ツール] を選択し、[ セットアップ] を選択し、[ システム] を選択して、[ ユーザー アクセス] を選択します。
  4. ライブ企業データベースのバックアップを作成します。

    SQL Server Management Studioを使用している場合は、次の手順に従います。

    1. [ スタート] を選択し、[ プログラム] を選択します。
    2. [Microsoft SQL Server] をポイントし、[SQL Server Management Studio] を選択します。 [サーバーに接続] ウィンドウが開きます。
    3. [サーバー名] ボックスに、SQL Serverのインスタンスの名前を入力します。
    4. [ 認証 ] の一覧で、[ SQL 認証] を選択します。
    5. [ ユーザー名 ] ボックスに「 sa」と入力します。
    6. [ パスワード ] ボックスに sa ユーザーのパスワードを入力し、[ 接続] を選択します。
    7. [オブジェクト エクスプローラー] セクションで、[データベース] を展開します
    8. ライブ企業データベースを右クリックし、[ タスク] をポイントし、[ バックアップ] を選択します。
    9. [ 宛先 ] 領域で、[ 削除] を選択し、[ 追加] を選択します。
    10. [ ディスク上の宛先] 領域で省略記号 ボタンを選択します。
    11. バックアップ ファイルを作成する場所を探し、バックアップ ファイルの名前 (LIVE.bakなど) を入力し、[ OK] を選択します
    12. [バックアップ データベース] ウィンドウに戻るまで、[ OK] を 繰り返し選択します。
    13. [ OK] を選択 してバックアップを開始します。
  5. 手順 4 で作成したライブ会社のバックアップ ファイルをテスト会社データベースに復元します。

    SQL Server Management Studioを使用している場合は、次の手順に従います。

    1. [ スタート] を選択し、[ プログラム] を選択します。

    2. [Microsoft SQL Server] をポイントし、[SQL Server Management Studio] を選択します。 [サーバーに接続] ウィンドウが開きます。

    3. [サーバー名] ボックスに、SQL Serverのインスタンスの名前を入力します。

    4. [ 認証 ] の一覧で、[ SQL 認証] を選択します。

    5. [ ユーザー名 ] ボックスに「 sa」と入力します。

    6. [ パスワード ] ボックスに sa ユーザーのパスワードを入力し、[ 接続] を選択します。

    7. [オブジェクト エクスプローラー] セクションで、[データベース] を展開します

    8. テスト会社データベースを右クリックし、[ タスク] をポイントし、[ 復元] をポイントして、[データベース] を選択 します

    9. [ 復元のソース ] 領域で、[ デバイスから] を選択し、 省略記号 ボタンを選択します。

    10. [ バックアップの場所 ] 領域で、[追加] を選択 します

    11. バックアップ ファイルを保存した場所を探し、[ LIVE.bak ファイル] を選択し、[OK] を選択します

    12. [OK] を選択します。 [データベースの復元] ウィンドウに戻ります。

    13. [ 復元するバックアップ セットの選択 ] セクションで、復元するバックアップ ファイルを選択します。

    14. [ ページの選択 ] 領域で、[ ファイル] を選択します。

    15. [ データベース ファイルの復元] 領域で、これら 2 つのファイルの場所を Live データベースからテスト データベースの.mdfファイルと .ldf ファイルに変更する必要があります。 既定では、Live データベースの .mdf ファイルと .ldf ファイルで選択されます。

      注:

      論理ファイル名には、ライブ データベースの名前が反映されます。 論理ファイル名は変更しないでください。

    16. これらの場所を変更するには、ファイルの場所フィールドの横にある 省略記号 (...) を選択します。

    17. テスト データベースが作成された手順 1 で示したパスに移動します。

    18. それぞれの.mdfファイルを強調表示し、[OK] を選択 します

    19. 手順 16 ~ 18 を繰り返し、.ldf ファイルを選択し、[ OK] を選択します

    20. [オプション] タブを選択して、[既存のデータベース チェックを上書きする] ボックスを選択します。

    21. [ OK] を 選択して [データベースの復元] ウィンドウに戻ります

    Microsoft Dynamics GP 10.0 以降を使用している場合は、次の手順に従って、ライブ会社からテスト会社にセキュリティアクセス許可をコピーします。

    1. sa ユーザーとして Microsoft Dynamics GP にサインインします。

    2. [ Microsoft Dynamics GP] を選択し、[ ツール] をポイントし、[ セットアップ] をポイントし、[ システム] をポイントして、[ ユーザー アクセス] を選択します。

    3. 適切なユーザーを選択し、新しいテスト会社の [チェック] ボックスが選択されていることを確認して、アクセス権が付与されていることを示します。

      注:

      会社を選択したときにエラー メッセージが表示された場合は、SQL Server Management Studioの新しいテスト データベースの下にある Users フォルダーからユーザーを削除します。

    4. [Microsoft Dynamics GP] を選択し、[ツール] をポイントし、[セットアップ] をポイントし、[システム] をポイントして、[ユーザー セキュリティ] を選択します。

    5. [セキュリティ タスクのセットアップ] ウィンドウで、テスト会社にアクセスするユーザーを選択します。

    6. [ 会社 ] の一覧で、ライブ会社を選択します。

    7. [コピー] を選択し、テスト会社の横にある [チェック] ボックスを選択し、[OK] を選択します

      ライブ会社のユーザーのアクセス許可は、テスト会社にコピーされます。

  6. ライブ企業データベースがテスト会社データベースの上部に復元されると、テスト会社には、ライブ会社と同じ COMPANYID と INTERID 情報を持つ参照が含まれます。 テスト会社の情報を正しく反映するには、次のスクリプトをクエリ アナライザーまたはSQL Server Management Studioのテスト会社に対して実行します。 このスクリプトは、テスト データベースの COMPANYID と INTERID を、このテスト会社のシステム データベース SY01500テーブルに一覧表示されている情報で更新します。

    if exists (select 1 from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'SY00100') begin
      declare @Statement varchar(850)
      select @Statement = 'declare @cStatement varchar(255)
    declare G_cursor CURSOR for
    select case when UPPER(a.COLUMN_NAME) in (''COMPANYID'',''CMPANYID'')
      then ''update ''+a.TABLE_NAME+'' set ''+a.COLUMN_NAME+'' = ''+ cast(b.CMPANYID as char(3)) 
      else ''update ''+a.TABLE_NAME+'' set ''+a.COLUMN_NAME+'' = ''''''+ db_name()+'''''''' end
    from INFORMATION_SCHEMA.COLUMNS a, '+rtrim(DBNAME)+'.dbo.SY01500 b
      where UPPER(a.COLUMN_NAME) in (''COMPANYID'',''CMPANYID'',''INTERID'',''DB_NAME'',''DBNAME'')
        and b.INTERID = db_name() and COLUMN_DEFAULT is not null
     and rtrim(a.TABLE_NAME)+''-''+rtrim(a.COLUMN_NAME) <> ''SY00100-DBNAME''
      order by a.TABLE_NAME
    set nocount on
    OPEN G_cursor
    FETCH NEXT FROM G_cursor INTO @cStatement
    WHILE (@@FETCH_STATUS <> -1)
    begin
      exec (@cStatement)
      FETCH NEXT FROM G_cursor INTO @cStatement
    end
    close G_cursor
    DEALLOCATE G_cursor
    set nocount off'
      from SY00100
      exec (@Statement)
    end
    else begin
      declare @cStatement varchar(255)
      declare G_cursor CURSOR for
      select case when UPPER(a.COLUMN_NAME) in ('COMPANYID','CMPANYID')
        then 'update '+a.TABLE_NAME+' set '+a.COLUMN_NAME+' = '+ cast(b.CMPANYID as char(3)) 
        else 'update '+a.TABLE_NAME+' set '+a.COLUMN_NAME+' = '''+ db_name()+'''' end
      from INFORMATION_SCHEMA.COLUMNS a, DYNAMICS.dbo.SY01500 b
        where UPPER(a.COLUMN_NAME) in ('COMPANYID','CMPANYID','INTERID','DB_NAME','DBNAME')
          and b.INTERID = db_name() and COLUMN_DEFAULT is not null
        order by a.TABLE_NAME
      set nocount on
      OPEN G_cursor
      FETCH NEXT FROM G_cursor INTO @cStatement
      WHILE (@@FETCH_STATUS <> -1)
      begin
        exec (@cStatement)
        FETCH NEXT FROM G_cursor INTO @cStatement
      end
      close G_cursor
      DEALLOCATE G_cursor
      set nocount off
    end
    

    注:

    このスクリプトが重複キー エラーで失敗した場合は、テスト会社で主キー エラーが発生しているテーブル内の INTERID 列と COMPANYID 列を手動で変更する必要があります。

    たとえば、PKRVLPD033の主キー制約エラーです。 テーブルを適切に検索するために、プレフィックス PK は主キーを参照し、テーブル名の一部ではありません。 この例では、検証するテーブルがそのデータベースにRVLPD033されています。

    注:

    人事管理を使用している場合は、TAST0130 テーブルのCOMPANYCODE_I値も変更する必要があります。 詳細については、この記事の上部にある「NOTES」セクションを参照してください。

  7. テスト データベースのデータベース所有者が DYNSA であることを確認します。 これを行うには、Query Analyzer または SQL Server Management Studio でテスト会社に対して次のスクリプトを実行します。

    sp_changedbowner 'DYNSA'
    
  8. SQL Server Reporting Servicesまたは Excel 統合レポートでドリルダウン機能を使用する場合は、データベース変更後にドリルダウンが機能するようにサーバー リンクを更新するには、次の操作を行う必要があります。

    • すべてのユーザーが Microsoft Dynamics GP からログアウトしていることを確認し、SQL Server Management Studioのすべてのインスタンスを閉じます
    • Dynamics GP がインストールされているコンピューターで、[ スタート] を選択し、[ すべてのプログラム] をポイントします。 [Microsoft Dynamics]、[GP] の順に選択し、[データベース メンテナンス] を選択します。
    • ユーティリティが開いたら、Dynamics GP データベースが格納されているSQL Server インスタンスを選択または入力します。 このSQL Server インスタンスに対する権限を持つドメイン アカウントとしてサインインしている場合は、そのオプションを選択できます。 それ以外の場合は、[SQL 認証] を選択し、適切なユーザー名とパスワードを入力します。 次に、[次へ] を選択 します >>
    • [ すべてマーク ] を選択して各 Dynamics GP データベースを選択し、[次へ] を選択 します >>
    • Microsoft Dynamics GP 製品を選択し、[次へ>>] を選択します
    • [関数とストアド プロシージャとビュー] を選択し、[次へ>>] を選択します。
    • 確認ウィンドウを確認し、[ 次へ >> ] を選択してプロセスを開始します。

    テスト会社は、ライブ企業データのコピーを作成し、使用する準備が整いました。

関連情報

詳細については、「Microsoft Dynamics GP on MSDE 2000、SQL Server 2005 Express、SQL Server 2008 Express、または SQL Server 2012 Express を使用して、ライブ企業データのコピーを持つテスト会社を設定する」を参照してください。