使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

尝试在 Microsoft Dynamics GP Project Business Portal 中提交或返回时间表时,收到以下错误消息:

Microsoft.Dynamics.Pma.PmaEntity.CostCategory [原因]由于不一致的数据库操作,数据库事务已中止。 [更正]更正输入的数据,然后重试事务。

原因

原因 1

如果满足以下条件,则可能会发生此问题:

  • Microsoft Dynamics GP 中的审核线索已安装。

  • 在 PDK 表中设置审核。

  • 业务门户用户无法访问审核数据库。

请参阅解决方法 1。

原因 2

如果创建包含项目 ID 的时间表模板,然后在 Microsoft Dynamics GP Project Accounting 中删除项目 ID,则可能会出现此问题。 请参阅解决方法 2。

原因 3

如果时间表模板中的项目状态为"已关闭",则可能会出现此问题。 请参阅解决方法 2。

原因 4

如果 PDK10000 表或 PDK10001 表中存在损坏或重复的记录,则可能会出现此问题。 请参阅解决方法 3。

原因 5

如果未在员工记录上填充 "位置"字段,则可能会出现此问题。 如果使用加拿大工资单,则可能会发生这种情况。 请参阅解决方法 4。

原因 6

如果 PDK10000、PDK10001、PDK10500 或 PDK10501 表上未正确触发,则可能会出现此问题。 请参阅解决方法 5。

原因 7

如果将笔记索引附加到文档,而计费注释主表或时间表上不存在的计费注释主表中的注释中不存在,则可能会出现此问题。 请参阅解决方法 6。

原因 8

如果报告周期在"时间表设置"中发生更改(如果存在未处理的时间表)时,则时间表可能会出现此问题。 在 BP 中创建与以前使用的员工 ID、年份和报告周期组合相同的时间表时,文档编号末尾会自动添加 -2。 如果自输入时间表以来更改了"报告期"的第一天或"时间表设置中的报告周期"本身,并且以前使用过"员工 ID"、"年份"和"报告期"组合,我们将跳过常规文档编号 -1,改为使用末尾为 -2 的常规文档编号。 

时间表文档编号是使用"员工 ID-TS-Date" (即 1018-TS-011609) 生成。 

请注意上面段落中重复时间表所查看内容的差异。

因此,当为现在时间段 #2 (输入时间表时,在) 进行"时间表设置"更改之前是一个不同的时间段,业务门户不会"看到"它作为重复项,因此不会将 -2 放在它之后。 因此,由于时间表编号已在 PDK10000 表中,因此发生错误。
请参阅解决方案 7。

解决方法

解决方法 1

若要解决此问题,请授予对 Audit 数据库的访问权限。 为此,请按照下列步骤操作:

  1. 单击"开始",指向"所有程序",Microsoft SQL Server,然后单击"Microsoft SQL Server Management Studio"。

  2. 展开"Microsoft SQL 服务器",展开"SQL Server组",然后展开"审核Microsoft SQL Server存储于其中的实例。

  3. 展开"安全性",并单击"登录名"。

  4. 右键单击业务门户用户,并单击"属性"。

  5. 单击" 数据库访问" 选项卡,然后单击" 审核数据库 "。

  6. 单击以选中"审核 " 数据库的"允许"复选框。

  7. 在" 数据库角色中的允许"列表中 ,单击以选中 "DYNGRP" 复选框。

  8. 单击"确定",然后退出Enterprise管理器"。

解决方法 2

若要解决此问题,请创建新的时间表模板。 这会覆盖现有帐户。 为此,请按照下列步骤操作:

  1. 在业务门户中,单击"员工",Project"时间",然后单击"新建"。

  2. 创建新的时间表,然后单击"另存为模板"。

  3. 当系统提示替换现有模板时,请单击"确定"。

如果无法重新创建新模板以便覆盖现有模板,请使用 SQL 从 PDK00300 和 PDK00301 中删除受影响的员工 ID 的现有模板。

解决方法 3

若要解决此问题,请联系 Microsoft Dynamics 和相关产品的技术支持。 支持专业人员可以帮助删除 PDK10000 表和 PDK10001 表中的损坏或重复记录。 有关 Microsoft Dynamics 和相关产品的技术支持的信息,请访问以下 Microsoft 网站:

http://www.microsoft.com/dynamics/support/default.mspx

解决方法 4

即使可能使用的是加拿大工资单, (") 员工卡片上的"职位"和"部门"字段也需要填充。 若要解决此问题,请添加员工 卡片 上的"职位"字段。 为此,请按照下列步骤操作:

  1. 在 Microsoft Dynamics GP 中,单击"卡",指向"工资单",然后单击"员工"。

  2. 输入收到错误消息的员工 ID。

  3. 在"位置"字段中 输入有效 位置。

  4. 单击" 保存" 按钮。


解决方法 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 不在 (则从 PDK01601) 中选择 PDK_Billing_Note_ID,然后选择 PDK_Billing_Note_ID <> ''",然后查看"帐单备注母版"表中是否存在不在文档中的注释,请运行此

脚本。

从 PDK01601 中选择 *,其中 PDK_Billing_Note_ID 不在 (中选择 PDK_Billing_Note_ID,从 PDK10001) 中选择 PDK_Billing_Note_ID 不在 (中选择 PDK_Billing_Note_ID 从 PDK10501) 如果其中任一脚本返回结果,可能需要使用 SQL delete 语句从表中删除该记录。

如果需要,请联系技术支持人员寻求进一步帮助。

解决方法 7

查看 PDK10000 表中的时间表文档,查看当前使用的文档编号是否以前使用过。 如果需要使用现有报告周期设置,可能需要从 PDK10000 和 PDK10001 表中删除以前的时间表,然后才能输入此新事务。 另一个选项是将报告周期信息重置回之前的信息,然后创建新的时间表。

其他故障排除 -

1. 在 Microsoft SQL Server Management Studio中运行以下脚本,查看时间表上是否有任何状态为"打开"或"已完成"的成本类别。 无法在"估计、已关闭"或"保留"状态中输入成本类别的事务。

从 PDK10001 中选择 a.PDK_TS_No、a.PAPROJNUMBER、a.PACOSTCATID,在


a.PAPROJNUMBER = b.PAPROJNUMBER 和 a.PACOSTCATID = b.PACOSTCATID 上联接 PA01301 b,其中

b.PASTAT 不在 (1,5)

2 中。 在"打开Microsoft SQL Server Management Studio运行以下脚本,查看时间表上是否有状态不是"打开"或"已完成"的项目。 不能以"估计、关闭"或"保留"状态输入项目的事务。




a.PAPROJNUMBER = b.PAPROJNUMBER = b.PAPROJNUMBER 中,其中
b.PASTAT 不在 (1,5)

3 中,从 PDK10001 中选择"a.PAPROJNUMBER"联接 PA01201 b。 a.PDK_TS_No 验证页眉 (PDK10000) 表中"总数量"字段 (PDK_Total_Quantity) 中的值是否与时间表的行表 (PDK10001) 中的行数量 (PDK_Quantity) 之和匹配。 如果它们不匹配,则时间表已损坏,并且将需要使用SQL。 如果需要,请联系技术支持人员寻求进一步帮助。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×