Ознаки
Під час спроби надіслати або повернути табель на порталі Project Time and Expense in Business Portal у Microsoft Dynamics GP з'являється таке повідомлення про помилку:
Microsoft.Dynamics.Pma.PmaEntity.CostCategory [Cause]Транзакція бази даних перервана через неузгоджену операцію бази даних. [Виправлення] Виправте введені дані та повторіть операцію.
Причина
Причина 1
Ця проблема може виникнути, якщо виконуються такі умови:
-
Інсталюється контрольний журнал у Microsoft Dynamics GP.
-
Для таблиці PDK налаштовано аудит.
-
Користувач порталу бізнес-порталу не має доступу до бази даних аудиту.
Див. роздільну здатність 1.
Причина 2
Ця проблема може виникнути, якщо створити шаблон табеля з ідентифікатором проекту, а потім видалити його ідентифікатор у Project Accounting у Microsoft Dynamics GP. Див. роздільну здатність 2.
Причина 3
Ця проблема може виникнути, якщо проект у шаблоні табеля має закритий стан. Див. роздільну здатність 2.
Причина 4
Ця проблема може виникнути, якщо пошкоджені або повторювані записи є в таблиці PDK10000 або таблиці PDK10001. Див. роздільну здатність 3.
Причина 5
Ця проблема може виникнути, якщо в записі працівника не заповнено поле Розташування. Це може статися, якщо ви використовуєте canadian Payroll. Див. роздільну здатність 4.
Причина 6
Ця проблема може виникнути, якщо в таблиці PDK10000, PDK10001, PDK10500 або PDK10501 виникає неправильний тригер. Див. роздільну здатність 5.
Причина 7
Ця проблема може виникнути, якщо до документа вкладено індекси приміток, яких немає в таблиці "Зразок виставлення рахунків" або приміток у таблиці "Зразок виставлення рахунків", яких немає в табелі. Див. роздільну здатність 6.
Причина 8
Ця проблема може виникнути для табелів, якщо звітні періоди було змінено в настройках табелів, коли є непрочитані табелі. Коли ви створюєте табель у BP, який містить такі самі комбінації ідентифікаторів працівників, рік і звітних періодів, що й раніше, у кінці номера документа автоматично додається –2. Якщо в настройках табеля перший день звітного періоду або самі періоди звітування було змінено з моменту введення табелів і раніше використовувалася комбінація ідентифікаторів працівників, рік і звітних періодів, ми пропустимо звичайний номер документа – 1 і натомість використовувати його з цифрою -2 у кінці.
Номер документа табеля побудовано за методологією "Ідентифікаційний номер працівника-TS-Date" (наприклад, 1018-TS-011609).
Зверніть увагу на відмінність між повторюваним табелем у абзаці вище.
Тому, якщо ввести табель для періоду #2 (але був інший період до внесення змін у табелі), Бізнес-портал не "бачать" його як дублікат, тому –2 не було введено після нього. У результаті сталася помилка, тому що табель уже був у таблиці PDK10000.
Див. роздільну здатність 7.
Спосіб вирішення
Роздільна здатність 1
Щоб вирішити цю проблему, надайте доступ до бази даних перевірки. Для цього виконайте описані нижче дії.
-
Натисніть кнопку Пуск, наведіть вказівник миші напункт Усі програми, наведіть Microsoft SQL Serverа потім клацніть Microsoft SQL Server Management Studio.
-
Розгорніть розділ Microsoft SQL Servers(Сервери Microsoft) , розгорніть SQL Server Group(Група), а потім розгорніть екземпляр Microsoft SQL Server, у якому зберігається база даних Audit (Перевірка).
-
Розгорнітьрозділ Безпека та натисніть кнопку Вхід.
-
Клацніть правою кнопкою миші користувача Порталу бізнесу та виберіть пункт Властивості.
-
Перейдіть на вкладку Доступ до бази даних і клацніть елемент Контрольна база даних.
-
Установіть прапорець Дозволити для бази даних audit.
-
У списку Дозволити в ролі бази даних установіть прапорець DYNGRP.
-
Натисніть кнопку OK,а потім вийдіть із диспетчера підприємства.
Роздільна здатність 2
Щоб вирішити цю проблему, створіть новий шаблон табеля. Наявну наявну буде перезаписано. Для цього виконайте описані нижче дії.
-
На порталі бізнесу клацніть елемент Працівник,а потім Project часі натисніть кнопку Створити.
-
Створіть табель і натисніть кнопку Зберегти як шаблон.
-
Коли буде запропоновано замінити наявний шаблон, натисніть кнопку OK.
Якщо ви не можете повторно створити новий шаблон, щоб змінити наявний, скористайтеся SQL, щоб видалити наявний шаблон із PDK00300 і PDK00301 для відповідного ідентифікатора працівника.
Вирішення 3
Щоб вирішити цю проблему, зверніться до служби технічної підтримки Microsoft Dynamics і пов'язаних продуктів. Фахівці служби підтримки можуть допомогти вам видалити пошкоджені або повторювані записи в таблиці PDK10000 та таблиці PDK10001. Щоб отримати відомості про технічну підтримку для Microsoft Dynamics і пов'язаних продуктів, відвідайте веб-сайт Корпорації Майкрософт:
Роздільна здатність 4
Навіть якщо ви використовуєте поля "Канадський заробітна плата", поля "Положення" (і "Відділ") на картці працівника в США потрібно заповнити. Щоб вирішити цю проблему, додайте поле Розташування на картці працівника. Для цього виконайте описані нижче дії.
-
У Microsoft Dynamics GP клацніть Картки, наведіть вказівник миші на Пункт Заробітнаплата , а потім клацніть Працівник.
-
Введіть ідентифікатор працівника, для якого з'являється повідомлення про помилку.
-
У полі Розташування введіть припустиму позицію.
-
Натисніть кнопку Зберегти.
Роздільна здатність 5
За замовчуванням у таблицях PDK10000 PDK10001, PDK10500 і PDK10501 немає тригерів. Запустіть цей сценарій (замінюйте ім'я таблиці) Microsoft SQL Server Management Studio, щоб дізнатися, чи є тригер у таблиці. Цей тригер може знадобитися видалити.
sp_helptrigger файл PDK10000 Якщо тригер існує, видаліть його за допомогою цього сценарію, а потім повторіть
спробу. У цьому прикладі ім'я тригера – PDK10000Update.
ALTER TABLE PDK10000 DISABLE TRIGGER PDK10000Update
Роздільна здатність 6
За Microsoft SQL Server Management Studio сценарію виконайте цей сценарій у базі даних компанії, щоб визначити, чи призначено для документа нотатки для виставлення рахунків, яких немає в головній таблиці нотаток для виставлення рахунків PDK.
виберіть * у PDK10001, де PDK_Billing_Note_ID в (виберіть PDK_Billing_Note_ID з PDK01601) і PDK_Billing_Note_ID <> ''. Потім виконайте цей сценарій, щоб дізнатися, чи є нотатки в таблиці Зразок виставлення рахунків нотаток, яких немає в
документі.
виберіть * у PDK01601, де PDK_Billing_Note_ID не в (виберіть PDK_Billing_Note_ID з PDK10001) і PDK_Billing_Note_ID не в (виберіть PDK_Billing_Note_ID з PDK10501) Якщо один із цих сценаріїв повертає результати, імовірно, запис знадобиться видалити з таблиці за допомогою оператора
видалення SQL. За потреби зверніться до служби технічної підтримки.
Роздільна здатність 7
Перегляньте документи табеля в таблиці PDK10000, щоб дізнатися, чи не використовувався номер документа, який зараз використовується зараз. Попередній табель може знадобитися видалити з таблиць PDK10000 та PDK10001, перш ніж цю нову транзакцію можна ввести, якщо потрібно використати наявне настроювання звітного періоду. Інший варіант – відновити попередні значення звітного періоду, а потім створити табель.
Додаткове виправлення неполадок –
1. Виконайте наведений нижче сценарій у Microsoft SQL Server Management Studio, щоб перевірити, чи в табелі є категорії витрат, які мають інший стан, ніж "Відкрити" або "Завершено". Транзакції для категорій витрат не можна вводити в стані Орієнтовна, Закрито або Утримання.
select a.PDK_TS_No, a.PAPROJNUMBER, a.PACOSTCATID from PDK10001 a
join PA01301 b
на
a.PAPROJNUMBER = b.PAPROJNUMBER
and a.PACOSTCATID = b.PACOSTCATID, де
b.PASTAT not in (1, 5)
2. Запустіть цей сценарій у Microsoft SQL Server Management Studio, щоб перевірити, чи є проекти в табелі зі станом, відмінним від "Відкрити" або "Завершено". Транзакції для проектів не можна вводити в стан "Оцінюваний", "Закрито" або "Утримання".
select a.PDK_TS_No, a.PAPROJNUMBER from PDK10001 a
join PA01201 b
on
a.PAPROJNUMBER = b.PAPROJNUMBER,
де b.PASTAT not in (1, 5)
3. Перевірте значення в полі загальної кількості (PDK_Total_Quantity) у таблиці заголовка (PDK10000) відповідно до суми кількості рядків (PDK_Quantity) у лінійній таблиці (PDK10001) для табеля. Якщо вони не збігаються, табель пошкоджено й його потрібно видалити з таблиці за допомогою SQL. За потреби зверніться до служби технічної підтримки.