現象
Microsoft Dynamics GP で重複またはクロスリンクされたノートがあります。この記事では、特定の会社で割り当てられた最も高いノート インデックスを決定するために使用できるスクリプトを提供します。 これを使用して、次のノート インデックス値を次の大きい数値にリセットすることもできます。 これにより、今後のノート インデックスが相互にリンクされたり、間違ったりするのを防ぐことができます。これにより、既に正しくないノート インデックスは修正されません。
原因
会社マスター (SY01500) テーブルの次のノート インデックスが設定されすぎて、新しいレコードが他のレコードと同じノート インデックスを受け取る原因となっています。解決 1. DYNAMICS とすべての会社データベースのバックアップを作成します。2. 重複または相互リンクされたメモがある会社データベースに対して、次のステートメントを実行します。メモ クエリ アナライザーを使用している場合は、SQL Query Analyzer で ステートメントを実行します。 クエリ アナライザーを開くには、[スタート] をクリックし、[プログラム] をポイントし、[Microsoft SQL Server] をポイントし、[クエリ アナライザー] をクリックします。 Microsoft SQL Server Management Studioを使用している場合は、Microsoft SQL Server Management Studio で ステートメントを実行します。 Management Studio を開くには、[スタート] をクリックし、[プログラム] をポイントし、[Microsoft SQL Server 2005/2008/2012] をポイントし、[SQL Server Management Studio] をクリックします。 スクリプトを実行するには、[ 新しいクエリ ] をクリックします。
--------------------------------------------- /*** FindMaxNoteIndex.SQL ** ** 目的: ** ** プロジェクト アカウンティングを含むすべてのテーブルから NOTEINDX の最大値を検索します。 ** ** このスクリプトは、メモが正しくない会社に対して実行する必要があります。**それは自動的に正しい次のノートインデックスにあなたのSY01500を更新します。** */ 存在する場合 (tempdb.から * を選択します)。sysobjects where name = '##GPSMaxNote') drop table dbo.##GPSMaxNote nocount をオンに設定します create table ##GPSMaxNote (MaxNoteIndex numeric(19,5) null) go ----------------------- @cStatement t_cursor */ から varchar(255) /* 値を宣言する numeric(19,5)@noteidx宣言する @databaseを varchar(5) として宣言する set @database = cast(db_name() as varchar(5))/* NOTEINDX の列名を持つテーブルを取得します。*/カーソルT_cursor宣言します 'declare @NoteIndex numeric(19,5) select @NoteIndex = max(' +c.name+ ') from ' + o.name + ' insert ##GPSMaxNote values(@NoteIndex)' sysobjects o から、syscolumns c ここで、o.id = c.id および o.type = 'U' と (c.name = 'NOTEINDX' または '%noteidx%' のような c.name、または '%niteidx%' や c.name ='NOTEINDX2' のような c.name)/* Ok,テーブルの一覧があります。次に、各テーブルから NOTEINDX の最大値を取得します。*/T_cursorを開く 次にT_cursorから@cStatementにフェッチする while (@@fetch_status <> -1) begin exec (@cStatement) 次にT_cursorから@cStatementにフェッチする end T_cursor/* 表示の最大ノート インデックスの割り当てを解除 */ MaxNoteIndex が null ではない ##GPSMaxNote から 'Max Note Index:',max(MaxNoteIndex) を選択します/* 次のノート インデックスを更新 */ DYNAMICS を使用します set @noteidx = (MaxNoteIndex が null ではない ##GPSMaxNote から max(MaxNoteIndex) を選択) 更新SY01500設定注INDX = (@noteidx + 1.0) interID=@database nocount をオフに設定します -------------------------------------------------------------------------- これにより、すべての会社の最大ノート インデックスが検索され、今後ノートが相互にリンクされないようにSY01500 テーブルが更新されます。3. 相互リンクされたノート インデックスを持つ会社データベースごとに手順 2 を繰り返します。 この記事は TechKnowledge ドキュメント ID: 4837 でした
適用対象
|
• |
Microsoft Dynamics GP 9.0 |
|
• |
Microsoft Business Solutions-Great Plains 8.0 |
|
• |
Microsoft Business Solutions-Great Plains 7.5 |
|
• |
Microsoft グレート プレーンズ eEnterprise 7.0 |
|
• |
Microsoft Great Plains Dynamics 7.0 |
|
• |
グレートプレーンズeEnterprise 6.0 |
|
• |
グレート プレーンズ Dynamics 6.0 |
|
• |
System Manager |