【问题标题】:Baseline dates not getting exported in PMXML file using MPXJ library基线日期未使用 MPXJ 库导出到 PMXML 文件中
【发布时间】:2021-10-04 10:45:32
【问题描述】:

我正在尝试使用 MPXJ 9.3.1 库编写 PMXML 文件。 在生成 PMXML 文件时,我正在使用 MPXJ Task 类的 setBaselineStartsetBaselineFinish 方法为所有任务设置基线日期。 但是生成的 PMXML 文件使用每个任务的开始和完成日期作为其对应的基线日期(PlannedStartDate 和 PlannedFinishDate)。

 ProjectFile file = new ProjectFile();
      :
      :
 file.setBaseline(file, Task::getCanonicalActivityID);
      :
      :
 Task t = file.addTask()
 t.setBaselineStart(1, BASELINE_START_DATE)
 t.setBaselineFinish(1, BASELINE_FINISH_DATE)
     :
     :
 ProjectFile baseline = file.getBaselines().get(0);
 if(baseline != null) {
       ProjectProperties prop = file.getProjectProperties();   
        prop.setBaselineProjectUniqueID(baseline.getProjectProperties().getUniqueID()); 
      file.setBaseline(baseline, 1, t -> t.getCanonicalActivityID());
        
 }

writer.write(file,"path to file")

上面的代码没有帮助在 PMXML 文件中获取正确的基线日期。如何让它工作?

【问题讨论】:

    标签: mpxj primavera


    【解决方案1】:

    MPXJ 以 Microsoft Project 表示计划的方式为模型。对于 MS Project,基线是使用一组“平行”属性在计划本身内捕获的(例如,成本属性可能还具有基线 1 成本、基线 2 成本属性,代表两个不同的基线)。 P6 采用不同的方法,允许拍摄整个计划的快照并将其链接为基线。

    目前 MPXJ 在读取 P6 时间表时可以理解这一点:您可以分别阅读主要时间表和基线时间表,然后使用ProjectFile.setBaseline() 方法将基线时间表附加到主要时间表。这将自动为您在主要计划中填充基准属性(例如,现在将填充主要计划中的基准 1 成本)。 MPXJ 在读取 PMXML 文件时也会为您自动执行此操作:如果在导出 PMXML 文件时选择了相关选项,以便基线计划包含在文件中,MPXJ 将识别这一点并在主文件中为您设置基线属性时间表。

    编写 PMXML 文件时情况更复杂。如果您有一个作为ProjectFile 对象的主要计划文件,并且您还有一个表示为另一个ProjectFile 对象的基准计划,您可以使用ProjectFile.setBaseline() 方法附加基准,然后编写PMXML 文件。 MPXJ 将适当地解释这一点并将主要计划和基线写入 PMXML 文件。不幸的是,MPXJ 目前不支持将包含上述“平行”基线属性集(例如基线成本 1、基线成本 2)的单个时间表转换为适合写入 PMXML 文件的主要时间表和基线时间表.

    您可以自己执行此操作,但需要注意确保生成的基线计划在导入时有效且为 P6 可接受。这不是我投入任何时间调查的领域。

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 1970-01-01
      • 2020-07-22
      • 1970-01-01
      • 2010-09-15
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多