複数のお客様が、Microsoft Dynamics GP の販売注文処理で同じマスター番号を参照するドキュメントを持っています

この記事では、複数の顧客が Microsoft Dynamics GP の販売注文処理で同じマスター番号を参照するドキュメントを持つ問題の解決策を提供します。

注:

この記事の手順に従う前に、問題が発生した場合に復元できるデータベースの完全なバックアップ コピーがあることを確認してください。

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

現象

複数のお客様が、Microsoft Dynamics GP の販売注文処理で同じマスター番号を参照するドキュメントを持っています。

解決方法

この問題を解決するには、次の手順を実行します。

  1. チェック リンクの手順を実行します。 これを行うには、次の手順に従います。

    1. [ ファイル ] メニューの [ メンテナンス] をポイントし、[ リンクの確認] を選択します。
    2. [ シリーズ ] の一覧で [Sales] を選択 します
    3. [ Sales Setup] を選択し、[ 挿入] を選択し、[ OK] を選択します
    4. エラー ログ レポートの印刷を求められたら、宛先を選択します。
  2. チェックリンクプロシージャを実行しても問題が解決しない場合は、会社データベースに対して以下のステートメントを実行して、問題のあるマスター番号を見つけます。 これを行うには、次の手順に従います。

    1. Microsoft SQL Server 2005 を使用している場合は、SQL Server Management Studioを開始します。 これを行うには、[スタート] を選択し、[プログラム] をポイントし、[Microsoft SQL Server 2005] をポイントして、[SQL Server Management Studio] を選択します。

    2. Microsoft SQL Server 2008 を使用している場合は、SQL Server Management Studioを開始します。 これを行うには、[スタート] を選択し、[プログラム] をポイントし、[Microsoft SQL Server 2008] をポイントして、[SQL Server Management Studio] を選択します。

    3. 開いているドキュメントを検索し、結果をメモするには、会社のデータベースに対して次のステートメントを実行します。

      SELECT * INTO MSTRNMBRWORK from SOP10100
      SELECT h.MSTRNUMB, h.CUSTNMBR from MSTRNMBRWORK w, SOP10100 h where
      
                        w.MSTRNUMB = h.MSTRNUMB AND
      
                        W. CUSTNMBR <> h.CUSTNMBR
      
    4. 履歴ドキュメントを検索し、結果をメモするには、会社のデータベースに対して次のステートメントを実行します。

      SELECT * INTO MSTRNMBRHIST from SOP30200
      Select h.MSTRNUMB, h.CUSTNMBR from MSTRNMBRHIST w, SOP30200 h where
      
                        w.MSTRNUMB = h.MSTRNUMB AND
      
                        w. CUSTNMBR <> h.CUSTNMBR
      
    5. 作業ドキュメントと履歴ドキュメントを検索し、結果をメモします。 この問題を解決するには、次のコマンドレットを実行します。

      SELECT h.MSTRNUMB, h.CUSTNMBR from SOP10100 w, SOP30200 h where
      
                        w.MSTRNUMB = h.MSTRNUMB AND
                        w. CUSTNMBR <> h.CUSTNMBR
      
    6. 前の手順で作成した一時テーブルを削除するには、会社データベースに対して次のステートメントを実行します。

      DROP TABLE MSTRNMBRWORK
      
      DROP TABLE MSTRNMBRHIST
      
  3. 手順 2 のステートメントの結果は、問題のあるマスター番号を提供します。 問題のあるマスター番号を修正するには、次の手順に従います。

    1. Sales Master Number Setup テーブルのマスター番号の最大値を確認するには、会社のデータベースに対して次のステートメントを実行し、結果をメモします。

      SELECT MAX(MSTRNUMB)FROM SOP40500
      
    2. 2 人の顧客間でマスター番号を共有するトランザクションを検索するには、会社データベースに対して次のステートメントを実行し、結果をメモします。 トランザクションは、作業テーブルまたは履歴テーブルに存在します。

      SELECT MSTRNUMB, DEX_ROW_ID, * FROM SOP10100 where MSTRNUMB=xx
      
      SELECT MSTRNUMB, DEX_ROW_ID, * FROM SOP30200 where MSTRNUMB=xx
      

      注:

      手順 2 で示した問題のあるマスター番号を使用して xx を置き換えます。

    3. ステートメントを実行して、1 人の顧客のトランザクションを更新し、新しい一意のマスター番号を反映します。 ステートメントを実行するときは、手順 3a および 3b の結果を使用します。 複数のレコードを更新する必要がある場合があります。 たとえば、注文と請求書を更新する必要がある場合があります。

      • トランザクションが Work の場合は、次のステートメントを実行します。

        UPDATE SOP10100 SET MSTRNUMB=XXXX WHERE DEX_ROW_ID=Y
        

        注:

        マスター番号の最大値に 1 を加えた数値を使用して、XXXX を置き換えます。 マスター番号の最大値は、手順 3a で示されました。 Y を、手順 3b で説明した正しいDEX_ROW_ID値に置き換えます。

      • トランザクションが履歴内にある場合は、次のステートメントを実行します。

        UPDATE SOP30200 SET MSTRNUMB=XXXX WHERE DEX_ROW_ID=Y
        

        注:

        マスター番号の最大値に 1 を加えた数値を使用して、XXXX を置き換えます。 マスター番号の最大値は、手順 3a で示されました。 Y を、手順 3b で説明した正しいDEX_ROW_ID値に置き換えます。

  4. 手順 3a でスクリプトをもう一度実行して、マスター番号の新しい最大値を決定します。

  5. [ ツール ] メニューの [ セットアップ] をポイントし、[ Sales] をポイントし、[ 販売注文処理] を選択します。 [ 次のマスター番号 ] フィールドに数値を入力します。 マスター番号の新しい最大値に 2 を加えた数値を入力します。 マスター番号の新しい最大値は、手順 4 で決定しました。