在使用pa_project_pub.add_task创建项目任务时,返回错误消息:任务编号不是唯一的(Task Number Is Not Unique)。
在项目模块中,如果启用了版本控制,则当我们在删除一个任务时,必须先考虑将来是否需要重建相同名字的任务,因为系统记录了所有的版本历史。在创建任务的过程中,系统会校验PA_TASKS和PA_PROJ_ELEMENTS中的数据,尤其的,PA_PROJ_ELEMENTS会记录所有已发布版本的任务信息。尽管在当前版本中删除了该任务,但是对于项目模块而言,由于历史版本中依旧存在同名的任务,因而限制同名重建。
当然,这也可能是由于数据完整性被破坏造成的,可以用下面两个sql来检查是否因为数据错误造成的:
SELECT COUNT(task_id)
FROM pa_tasks
WHERE task_id NOT IN (SELECT proj_element_id FROM pa_proj_elements);
SELECT project_id,
proj_element_id
FROM pa_proj_elements pe1
WHERE object_type = 'PA_TASKS'
AND proj_element_id NOT IN
(SELECT task_id FROM pa_tasks WHERE project_id = pe1.project_id)
AND EXISTS (SELECT *
FROM pa_proj_elements pe,
pa_proj_structure_types ppst
WHERE ppst.proj_element_id = pe.proj_element_id
AND pe.project_id = pe1.project_id
AND ppst.structure_type_id = 6)
AND NOT EXISTS (SELECT *
FROM pa_proj_elements pe,
pa_proj_structure_types ppst
WHERE ppst.proj_element_id = pe.proj_element_id
AND pe.project_id = pe1.project_id
AND ppst.structure_type_id = 1);