Jelenségek
A Microsoft Dynamics GP-ben duplikált vagy keresztkapcsolódó jegyzetek találhatók.Ez a cikk egy szkriptet biztosít, amely az adott vállalathoz rendelt legmagasabb jegyzetindex meghatározására használható. Arra is használhatja, hogy visszaállítsa a következő jegyzetindex értékét a következő magasabb számra. Ez megakadályozza, hogy a további jegyzetindexek kereszt-összekapcsolás vagy helytelenek legyenek.Ez nem fogja kijavítani a már helytelen jegyzetindexeket.
Okoz
A vállalati főkiszolgáló (SY01500) tábla következő jegyzetindexe túl alacsony lett, ezért az új rekordok olyan jegyzetindexeket kapnak, amelyek megegyeznek a többivel.Felbontás 1. Készítsen biztonsági másolatot a DYNAMICS-ról és az összes vállalati adatbázisról.2. Futtassa a következő utasítást azon a vállalati adatbázison, amely a duplikált vagy kereszttáblás jegyzeteket tartalmazza.Megjegyzés Ha a Lekérdezéselemzőt használja, futtassa az utasítást az SQL Query Analyzerben. A Lekérdezéselemző megnyitásához kattintson a Start gombra, mutasson a Programok pontra, mutasson a Microsoft SQL Server , majd a Lekérdezéselemző elemre. Ha Microsoft SQL Server Management Studio használ, futtassa az utasítást a Microsoft SQL Server Management Studio. A Management Studio megnyitásához kattintson a Start gombra, mutasson a Programok pontra, mutasson a Microsoft SQL Server 2005/2008/2012 címre, majd kattintson a SQL Server Management Studio elemre. Szkript futtatásához kattintson az Új lekérdezés elemre.
--------------------------------------------- /*** FindMaxNoteIndex.SQL ** **Célja: ** ** Keresse meg a NOTEINDX maximális értékét az összes táblából, beleértve a Project Accountingot is. ** ** Ezt a szkriptet azon a vállalaton kell futtatni, amelyben a jegyzetek helytelenek.** automatikusan frissíti a SY01500 a megfelelő következő jegyzetindexre.** */ ha létezik (válassza a * lehetőséget a tempdb.-ből. sysobjects where name = '##GPSMaxNote') drop table dbo.##GPSMaxNote nocount beállítása bekapcsolva create table ##GPSMaxNote (MaxNoteIndex numeric(19,5) null) Megy----------------------- deklarálja @cStatement varchar(255) /* A t_cursor */ @noteidx numerikus deklarálása(19,5) @database deklarálása varchar(5) set @database = cast(db_name() as varchar(5))/* A NOTEINDX oszlopnevű táblák lekérése. */deklarálja T_cursor kurzort a következőhöz: select 'declare @NoteIndex numeric(19,5) select @NoteIndex = max(' +c.name+ ') from ' + o.name + ' insert ##GPSMaxNote values(@NoteIndex)" from sysobjects o, syscolumns c where o.id = c.id és o.type = 'U' és (c.name = 'NOTEINDX' vagy c.name mint '%noteidx%' vagy c.name mint '%niteidx%' vagy c.name ='NOTEINDX2')/* Ok, megvan a táblák listája. Most kérje le a NOTEINDX maximális értékét az egyes táblákból. */T_cursor megnyitása beolvasás T_cursor @cStatement while (@@fetch_status <> -1) Kezdődik exec (@cStatement) beolvasás T_cursor @cStatement Végén szabadít fel T_cursor/* Maximális jegyzetindex megjelenítése */ válassza a "Max Note Index:", max(MaxNoteIndex) lehetőséget a ##GPSMaxNote ahol a MaxNoteIndex nem null/* Következő jegyzetindex frissítése */ a DYNAMICS használata set @noteidx = (válassza a max(MaxNoteIndex) elemet a ##GPSMaxNote ahol a MaxNoteIndex nem null) update SY01500 set NOTEINDX = (@noteidx + 1.0) where INTERID=@database nocount beállítása kikapcsolva-------------------------------------------------------------------------- Ez megkeresi az összes vállalat maximális jegyzetindexét, majd frissíti a SY01500 táblát, hogy a jegyzetek ne legyenek kereszt-összekapcsolva a jövőben.3. Ismételje meg a 2. lépést minden olyan vállalati adatbázis esetében, amely kereszttáblás jegyzetindexeket tartalmaz. Ez a cikk a TechKnowledge dokumentumazonosítója: 4837
A KÖVETKEZŐKRE VONATKOZIK:
|
• |
Microsoft Dynamics GP 9.0 |
|
• |
Microsoft Business Solutions –Great Plains 8.0 |
|
• |
Microsoft Business Solutions – Great Plains 7.5 |
|
• |
Microsoft Great Plains eEnterprise 7.0 |
|
• |
Microsoft Great Plains Dynamics 7.0 |
|
• |
Great Plains eEnterprise 6.0 |
|
• |
Great Plains Dynamics 6.0 |
|
• |
System Manager |