Symptomen
U hebt notities die zijn gedupliceerd of gekoppeld in Microsoft Dynamics GP.Dit artikel bevat een script dat kan worden gebruikt om de hoogste notitie-index te bepalen die in een bepaald bedrijf is toegewezen. U kunt deze ook gebruiken om de indexwaarde van de volgende notitie opnieuw in te stellen op het volgende hogere getal. Dit voorkomt dat verdere notitie-indexen in de toekomst kruislings of onjuist zijn.Hiermee worden indexen die al onjuist zijn, niet gecorrigeerd.
Oorzaak
De volgende notitie-index in de tabel bedrijfshoofd (SY01500) is te laag ingesteld, waardoor nieuwe records notitie-indexen ontvangen die hetzelfde zijn als andere.Resolutie 1. Maak een back-up van de DYNAMICS- en alle bedrijfsdatabases.2. Voer de volgende instructie uit op de bedrijfsdatabase met de gedupliceerde of gekoppelde notities.Opmerking Als u Query Analyzer gebruikt, voert u de instructie uit in SQL Query Analyzer. Als u Query Analyzer wilt openen, klikt u op Start, wijst u Programma's aan, wijst u Microsoft SQL Server aan en klikt u vervolgens op Query analyzer. Als u Microsoft SQL Server Management Studio gebruikt, voert u de instructie uit in Microsoft SQL Server Management Studio. Als u Management Studio wilt openen, klikt u op Start, wijst u Programma's aan, wijst u Microsoft SQL Server 2005/2008/2012 aan en klikt u op SQL Server Management Studio . Als u een script wilt uitvoeren, klikt u op Nieuwe query .
--------------------------------------------- /*** FindMaxNoteIndex.SQL ** **Purpose: ** ** Zoek de maximale waarde van NOTEINDX uit alle tabellen, inclusief Project Accounting. ** ** Dit script moet worden uitgevoerd voor het bedrijf waarin de notities onjuist zijn.** wordt uw SY01500 automatisch bijgewerkt naar de juiste volgende notitie-index.** */ indien bestaat (selecteer * in tempdb.. sysobjecten waarbij naam = '##GPSMaxNote') drop table dbo.##GPSMaxNote nocount instellen op tabel maken ##GPSMaxNote (MaxNoteIndex numeriek(19,5) null) Gaan----------------------- declareren @cStatement varchar(255) /* value from the t_cursor */ declareren @noteidx numeriek(19,5) declareren @database als varchar(5) set @database = cast(db_name() as varchar(5))/* Haal de tabellen op met de kolomnaam NOTEINDX. */T_cursor-cursor declareren voor selecteer 'declare @NoteIndex numeric(19,5) select @NoteIndex = max(' +c.name+ ') from ' + o.name + ' insert ##GPSMaxNote values(@NoteIndex)' van sysobjects o, syscolumns c waarbij o.id = c.id en o.type = 'U' en (c.name = 'NOTEINDX' of c.name zoals '%noteidx%' of c.name als '%niteidx%' of c.name ='NOTEINDX2')/* Ok, we hebben de lijst met tabellen. Haal nu de maximale waarde van NOTEINDX op uit elke tabel. */T_cursor openen volgende ophalen van T_cursor naar @cStatement terwijl (@@fetch_status <> -1) Beginnen exec (@cStatement) volgende ophalen van T_cursor in @cStatement Einde de toewijzing van T_cursorongedaan maken/* Maximumnotitieindex weergeven */ selecteer 'Max Note Index:', max(MaxNoteIndex) in ##GPSMaxNote waarbij MaxNoteIndex niet null is/* Volgende notitieindex bijwerken */ DYNAMICS gebruiken set @noteidx = (selecteer max(MaxNoteIndex) in ##GPSMaxNote waarbij MaxNoteIndex niet null is) update SY01500 set NOTEINDX = (@noteidx + 1.0) waarbij INTERID=@database nocount uitschakelen-------------------------------------------------------------------------- Hiermee wordt de maximale notitie-index voor alle bedrijven gevonden en wordt vervolgens de SY01500 tabel bijgewerkt om ervoor te zorgen dat de notities in de toekomst niet kruislings worden gekoppeld.3. Herhaal stap 2 voor elke bedrijfsdatabase met cross-linked notitie-indexen. Dit artikel was TechKnowledge-document-id: 4837
VAN TOEPASSING OP
|
• |
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 |
|
• |
Systeembeheerder |