Simptomai
Turite pastabų, kurios yra dubliuojamos arba susietos "Microsoft Dynamics GP".Šiame straipsnyje pateikiamas scenarijus, kurį galima naudoti norint nustatyti didžiausią tam tikroje įmonėje priskirtą pastabų indeksą. Ją taip pat galite naudoti norėdami iš naujo nustatyti kitą išnašos indekso reikšmę į paskesnį didesnį skaičių. Taip išvengsite tolesnių pastabų indeksų susiejimo ar neteisingų.Tai nepataisys jau neteisingų pastabų rodyklių.
Sukelti
Nustatyta per maža kitos įmonės pagrindinės (SY01500) lentelės pastabų rodyklė, todėl nauji įrašai gauna tokių pačių indeksų kaip kiti.Rezoliucija 1. Sukurkite atsarginę DYNAMICS ir visų įmonės duomenų bazių kopiją.2. Vykdyti šį sakinį su įmonės duomenų baze, kurioje yra pasikartojančių arba kryžmiškai susietų pastabų.Pastaba Jei naudojate užklausų analizatorių, paleiskite sakinį "SQL Query Analyzer". Norėdami atidaryti užklausų analizatorių, spustelėkite Pradėti , nukreipkite žymiklį į Programos , nukreipkite žymiklį į Microsoft „SQL Server“ , tada spustelėkite Užklausų analizatorius . Jei naudojate "Microsoft „SQL Server Management Studio“", paleiskite "Microsoft „SQL Server Management Studio“" sakinį. Norėdami atidaryti "Management Studio", spustelėkite Pradžia , nukreipkite žymiklį į Programos , nukreipkite žymiklį į Microsoft „SQL Server“ 2005/2008/2012 , tada spustelėkite „SQL Server Management Studio“ . Norėdami vykdyti scenarijų, spustelėkite Nauja užklausa .
--------------------------------------------- /*** FindMaxNoteIndex.SQL sąsa **Tikslas: sąsa ** Raskite didžiausią NOTEINDX reikšmę iš visų lentelių, įskaitant "Project Accounting". sąsa ** Šis scenarijus turi būti vykdomas prieš įmonę, kurioje pastabos neteisingos.** ji automatiškai atnaujins jūsų SY01500 į tinkamą kitą pastabų indeksą.sąsa */ 3/4ai jei yra (pasirinkite * iš tempdb.. sysobjects where name = '##GPSMaxNote') drop table dbo.##GPSMaxNote nustatyti bešalį skaičių create table ##GPSMaxNote (MaxNoteIndex numeric(19,5) null) Eiti----------------------- paskelbti @cStatement varchar(255) /* Vertė iš t_cursor */ paskelbti @noteidx skaitinį (19,5) paskelbti @database varchar(5) nustatyti @database = cast(db_name() as varchar(5))/* Gaukite lenteles, kurių stulpelio pavadinimas NOTEINDX. */paskelbti T_cursor žymiklį select 'declare @NoteIndex numeric(19,5) select @NoteIndex = max(' +c.name+ ') from ' + o.name + ' insert ##GPSMaxNote values(@NoteIndex)" iš sysobjects o, syscolumns c kur o.id = c.id ir o.type = "U" ir (c.name = "NOTEINDX" arba c.name pvz., "%noteidx%" arba c.name pvz., "%niteidx%" arba c.name ='NOTEINDX2')/* Gerai, turime lentelių sąrašą. Dabar gaukite maksimalią NOTEINDX reikšmę iš kiekvienos lentelės. */ 3/4aiatidaryti T_cursor iškviesti kitą iš T_cursor į @cStatement o (@@fetch_status <> -1) Pradėti exec (@cStatement) iškviesti kitą iš T_cursor į @cStatement Pabaigos deallocate T_cursor/* Rodyti maksimalią pastabų indeksą */ pasirinkite "Maks. pastabos rodyklė:", max(MaxNoteIndex) iš ##GPSMaxNote kur MaxNoteIndex nėra nulinis/* Naujinti paskesnės pastabos indeksą */ naudoti "DYNAMICS" nustatyti @noteidx = (pasirinkite max(MaxNoteIndex) iš ##GPSMaxNote kur MaxNoteIndex nėra nulis) update SY01500 set NOTEINDX = (@noteidx + 1,0), kur INTERID=@database nustatyti paskyros išjungimą-------------------------------------------------------------------------- Taip bus surastas maksimalus visų įmonių pastabų indeksas, tada atnaujinta SY01500 lentelė, kad būtų užtikrinta, kad ateityje pastabos nebus susietos tarpusavyje.3. Kartokite 2 veiksmą su kiekviena įmonės duomenų baze, kurioje yra tarpusavyje susietų pastabų indeksų. Šis straipsnis buvo "TechKnowledge" dokumento ID: 4837
TAIKOMA
|
• |
"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 |
|
• |
Sistemos tvarkytuvas |