我正在使用ReadStatusTimephasedData方法来读取所有任务的每日实际和计划时数。我通过循环遍历所有资源及其所有分配并使用模拟来实现此目的。对于某些分配,生成的StatusingTimephasedActualsDataSet数据集包含与作为参数传递的ASSN_UID不匹配的TaskUID,并且我无法在数据库中找到此TaskUID。由于此问题,我无法将结果与Tasks表链接。 我找不到方法返回正确数据的赋值与不返回正确数据的赋值之间的任何差异。 请告诉我,如果我做错了什么,或者是否有另一种方法可以使用PSI获得每天的实际和计划时数。
答案 0 :(得分:0)
我弄清楚导致该方法返回错误的Task_UID的原因。此问题仅发生在项目经理尚未批准的预订时间内。当赋值所有者或资源对赋值进行更改时,更改将保留在已保存的赋值表中。在此表(MSP_ASSIGNMENTS_SAVED)中,Task_UID字段具有与(MSP_ASSIGNMENTS)中不同的值,这是ReadStatusTimephasedData返回的字段值。仅当赋值所有者或资源发布更改时,更新的赋值才会复制到更新的赋值表,ReadStatusTimephasedData将返回实际的Task_UID。 以下是状态更新生命周期的链接: http://msdn.microsoft.com/en-us/library/office/websvcstatusing.statusing_di_pj14mref%28v=office.14%29.aspx