Проблемы
При попытке отправить или вернуть Project времени и расходов на портале Microsoft Dynamics GP вы получаете следующее сообщение об ошибке:
Microsoft.Dynamics.Pma.PmaEntity.CostCategory [Причина]Транзакция базы данных прервана из-за несогласованной работы базы данных. [Коррекция] Исправлять в введеные данные и повторить транзакцию.
Причина
Причина 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, SQL Server группу, а затем раз развернуть экземпляр Microsoft SQL Server, на котором хранится база данных Audit.
-
Разойдите в списокБезопасность и нажмите кнопку Вход.
-
Щелкните пользователя бизнес-портала правой кнопкой мыши и выберите свойства.
-
На вкладке Доступ к базе данных выберите базу данных Аудит.
-
Щелкните, чтобы выбрать для базы данных аудита поле Разрешить.
-
В списке Разрешить роль базы данных щелкните, чтобы выбрать поле DYNGRP.
-
Нажмите кнопкуОК, а затем зайдите Enterprise Manager.
Разрешение 2
Чтобы устранить эту проблему, создайте шаблон нового таблицы. При этом существующий будет переописываться. Для этого выполните следующие действия:
-
На бизнес-портале щелкните Сотрудник, выберите Project время, а затем нажмите кнопку Новый.
-
Создайте новое таблицу и нажмите кнопку Сохранить как шаблон.
-
Когда вам будет предложено заменить существующий шаблон, нажмите кнопку ОК.
Если вам не удается воссоздать новый шаблон, чтобы существующий шаблон был переопределен, удалите существующий шаблон из PDK00300 и PDK00301 с помощью SQL, чтобы удалить его из ИД затронутых сотрудников.
Разрешение 3
Чтобы устранить эту проблему, обратитесь в службу технической поддержки Microsoft Dynamics и связанных с ней продуктов. Специалист службы поддержки может помочь вам удалить поврежденные или повторяющиеся записи в таблице PDK10000 и в таблице PDK10001. Сведения о технической поддержке Microsoft Dynamics и связанных с ней продуктах можно получить на следующем веб-сайте Корпорации Майкрософт:
Разрешение 4
Несмотря на то что вы, возможно, используете canadian Payroll (Заработная оплата), поля Position (and Department) на карточке сотрудника в США необходимо заполнить. Чтобы устранить эту проблему, добавьте поле "Положение" в карточку сотрудника. Для этого выполните следующие действия:
-
В 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
on
a.PAPROJNUMBER = b.PAPROJNUMBER
and a.PACOSTCATID = b.PACOSTCATID where
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
where b.PASTAT not in (1, 5)
3. Проверьте значение в поле "Общее количество" (PDK_Total_Quantity) в таблице заготавличек (PDK10000) в соответствии с суммой количества строк (PDK_Quantity) в строковом таблице (PDK10001) для этого таблицы. Если они не совпадают, это не повредилось, и его необходимо удалить из таблицы с помощью SQL. При необходимости обратитесь в службу технической поддержки.