Příznaky
Při pokusu o odeslání nebo vrácení časového rozvrhu v Project time and expense in Business Portal in Microsoft Dynamics GP se zobrazí následující chybová zpráva:
Microsoft.Dynamics.Pma.PmaEntity.CostCategory [Příčina]Transakce databáze byla přerušena kvůli nekonzistentní operaci databáze. [Oprava] Opravte zadaná data a opakujte transakci.
Příčina
Příčina 1
K tomuto problému může dojít, pokud platí následující podmínky:
-
Dráhy auditování v Microsoft Dynamics GP jsou nainstalované.
-
Audit je nastavený na tabulku PDK.
-
Uživatel portálu Business Portal nemá přístup k databázi auditování.
Viz rozlišení 1.
Příčina 2
K tomuto problému může dojít, pokud vytvoříte šablonu časového rozvrhu obsahující ID projektu a odstraníte ID projektu v Project Accounting v Microsoft Dynamics GP. Viz rozlišení 2.
Příčina 3
K tomuto problému může dojít, pokud má projekt v šabloně časového rozvrhu uzavřený stav. Viz rozlišení 2.
Příčina 4
K tomuto problému může dojít, pokud v tabulce PDK10000 nebo v tabulce PDK10001 existují poškozené nebo duplicitní záznamy. Viz rozlišení 3.
Příčina 5
K tomuto problému může dojít, pokud pole Pozice není vyplněno v záznamu zaměstnance. K tomu může dojít, pokud používáte kanadský payroll. Viz rozlišení 4.
Příčina 6
K tomuto problému může dojít, pokud je v tabulce PDK10000, PDK10001, PDK10500 nebo PDK10501 nesprávná aktivační událost. Viz rozlišení 5.
Příčina 7
K tomuto problému může dojít, pokud máte k dokumentu připojené indexy poznámek, které v hlavní tabulce nebo poznámkách v hlavní tabulce fakturační poznámky neexistují v časovém rozvrhu. Viz rozlišení 6.
Příčina 8
K tomuto problému může dojít u časových rozvrhů, pokud se období vykazování změnila v nastavení časového rozvrhu, pokud existují nezpracované časové rozvrhy. Při vytváření časového rozvrhu v bp, který má stejnou kombinaci ID zaměstnance, roku a vykazovaného období, jako byl použit dříve, se na konec čísla dokumentu automaticky přidá -2. Pokud se od zadání časových rozvrhů změnil první den vykazovaného období nebo samotné období vykazování v nastavení časového rozvrhu a předtím se použila kombinace ID zaměstnance, Rok a Vykazované období, přeskočíme běžné číslo dokumentu -1 a místo toho použijeme číslo s hodnotou -2 na konci.
Číslo dokumentu časového rozvrhu je sestaveno pomocí metodologie "Employee ID-TS-Date" (tj. 1018-TS-011609).
Všimněte si rozdílu od toho, co se ve výše uvedeném odstavci nachází v duplicitním časovém rozvrhu.
Takže při zadávání časového rozvrhu pro období #2 (ale před provedením změn nastavení časového rozvrhu bylo jiné období), obchodní portál ho "neviděl" jako duplicitní, takže za něj nebylo -2. V důsledku toho došlo k chybě, protože číslo časového rozvrhu už bylo v tabulce PDK10000.
Viz rozlišení 7.
Řešení
Rozlišení 1
Tento problém vyřešíte udělením přístupu k databázi auditování. Postupujte takto:
-
Klikněte na Start,přejděte na Všechny programy,přejděte na Microsoft SQL Servera potom klikněte na Microsoft SQL Server Management Studio.
-
Rozbalte položku Microsoft SQL Servers,rozbalte SQL Server Group(Skupina) a potom rozbalte instanci Microsoft SQL Server, na kterých je databáze auditování uložená.
-
Rozbalte zabezpečenía potom klikněte na Přihlášení.
-
Klikněte pravým tlačítkem myši na uživatele portálu Business Portal a potom klikněte na Příkaz Vlastnosti.
-
Klikněte na kartu Přístup k databázi a potom klikněte na databázi auditování.
-
Kliknutím zaškrtněte políčko Povolit pro databázi auditování.
-
V seznamu Povolit v roli databáze kliknutím zaškrtněte políčko DYNGRP.
-
Klikněte na OKa potom ukončete Enterprise Manager.
Rozlišení 2
Pokud chcete tento problém vyřešit, vytvořte novou šablonu časového rozvrhu. Tím se přepíše stávající. Postupujte takto:
-
Na portálu Business Portal klikněte na Zaměstnanec,klikněte Project Čas apotom klikněte na Nový.
-
Vytvořte nový časový rozvrh a klikněte na Uložit jako šablonu.
-
Po zobrazení výzvy k nahrazení existující šablony klikněte na OK.
Pokud nemůžete znovu vytvořit novou šablonu tak, aby byla stávající šablona přepsána, odstraňte existující šablonu pomocí SQL z PDK00300 a PDK00301 pro ID ovlivněného zaměstnance.
Rozlišení 3
Pokud chcete tento problém vyřešit, obraťte se na technickou podporu pro Microsoft Dynamics a související produkty. Pracovník podpory vám může pomoct odstranit poškozené nebo duplicitní záznamy v tabulce PDK10000 a v tabulce PDK10001. Informace o technické podpoře pro Microsoft Dynamics a související produkty najdete na následujícím webu společnosti Microsoft:
Rozlišení 4
I když možná používáte kanadský payroll, je potřeba vyplnit pole Pozice (a Oddělení) na kartě zaměstnance USA. Tento problém vyřešíte přidáním pole Pozice na kartu zaměstnance. Postupujte takto:
-
V Microsoft Dynamics GP klikněte na Karty, přejděte na Mzdy apotom klikněte na Zaměstnanec.
-
Zadejte ID zaměstnance, pro které se zobrazí chybová zpráva.
-
Do pole Pozice zadejte platnou pozici.
-
Klikněte na tlačítko Uložit.
Rozlišení 5
Ve výchozím nastavení nejsou v tabulkách PDK10000 PDK10001, PDK10500 a PDK10501 žádné aktivační události. Spusťte tento skript (nahrazení názvu tabulky) v Microsoft SQL Server Management Studio, abyste viděli, jestli v tabulce existuje aktivační událost. Tato aktivační událost může být potřeba odebrat.
sp_helptrigger PDK10000 Pokud aktivační událost existuje, odeberte ji pomocí tohoto skriptu a pak
zkuste dokument obchodního portálu znovu. V tomto příkladu je název aktivační události PDK10000Update.
ALTER TABLE PDK10000 DISABLE TRIGGER PDK10000Update
Rozlišení 6
Pomocí Microsoft SQL Server Management Studio spusťte tento skript s firemní databází a zjistěte, jestli jsou k dokumentu přiřazené fakturační poznámky, které v hlavní tabulce fakturační poznámky PDK neexistují.
vyberte * z PDK10001, kde PDK_Billing_Note_ID není (vyberte PDK_Billing_Note_ID z PDK01601) a PDK_Billing_Note_ID <> '' Pak se podívejte, jestli v tabulce Hlavní stránka fakturačních poznámek nejsou poznámky, které nejsou v dokumentu, spusťte
tento skript.
vyberte * z PDK01601, kde PDK_Billing_Note_ID není (vyberte PDK_Billing_Note_ID z PDK10001) a PDK_Billing_Note_ID ne v (vyberte PDK_Billing_Note_ID z PDK10501) Pokud některý z těchto skriptů vrátí výsledky, bude pravděpodobně potřeba záznam z tabulky odebrat pomocí příkazu
SQL delete. Pokud potřebujete další pomoc, kontaktujte technickou podporu.
Rozlišení 7
Zkontrolujte dokumenty časového rozvrhu v tabulce PDK10000 a zkontrolujte, jestli se číslo dokumentu, které se právě používá, používalo dřív. Předchozí časový rozvrh může být potřeba odebrat z tabulek PDK10000 a PDK10001, aby bylo možné tuto novou transakci zadat, pokud je potřeba použít stávající nastavení období vykazování. Druhou možností by bylo obnovit informace o vykazovaném období zpátky na to, co bylo dřív, a pak vytvořit nový časový rozvrh.
Další řešení potíží –
1. Spusťte následující skript v Microsoft SQL Server Management Studio a podívejte se, jestli v časovém rozvrhu nejsou nějaké nákladové kategorie, které mají jiný stav než Otevřít nebo Dokončeno. Transakce pro nákladové kategorie nelze zadat ve stavu Odhad, Uzavřeno nebo Přidržení.
vyberte a.PDK_TS_No, a.PAPROJNUMBER, a.PACOSTCATID z PDK10001 a join
PA01301 b
on
a.PAPROJNUMBER = b.PAPROJNUMBER
and a.PACOSTCATID = b.PACOSTCATID
where b.PASTAT not in (1; 5)
2. Spusťte následující skript v Microsoft SQL Server Management Studio a podívejte se, jestli v časovém rozvrhu nejsou nějaké projekty, které mají jiný stav než Otevřít nebo Dokončeno. Transakce pro projekty nemůžete zadat ve stavu Odhad, Uzavřeno nebo Přidržet.
vyberte a.PDK_TS_No, a.PAPROJNUMBER z PDK10001 a
join PA01201 b
on
a.PAPROJNUMBER = b.PAPROJNUMBER
where b.PASTAT not in (1; 5)
3. Ověřte, že hodnota v poli celkových množství (PDK_Total_Quantity) v tabulce záhlaví (PDK10000) odpovídá součtu množství řádků (PDK_Quantity) v tabulce řádků (PDK10001) časového rozvrhu. Pokud se neshodují, časový rozvrh je poškozený a bude potřeba ho z tabulky odebrat pomocí SQL. Pokud potřebujete další pomoc, kontaktujte technickou podporu.