xml - 如何正确地将任务持续时间从 xml 导入到 MS Project 2013?
问题描述
有人可以给我一个可以导入到 MS Project 的 XML 文件的示例,该文件将包含在一段时间内计划的一项任务和一项资源?我目前有以下 XML,MS Project 导入它没有任何错误,但日程安排变得一团糟。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Project xmlns="http://schemas.microsoft.com/project">
<SaveVersion>14</SaveVersion>
<Name>Projekt1.xml</Name>
<ScheduleFromStart>1</ScheduleFromStart>
<Tasks>
<Task>
<UID>1</UID>
<ID>1</ID>
<Name>Test task</Name>
<Active>1</Active>
<Manual>0</Manual>
<Type>0</Type>
<Start>2018-06-21T09:00:00</Start>
<Finish>2018-07-06T18:00:00</Finish>
</Task>
</Tasks>
<Resources>
<Resource>
<UID>0</UID>
<ID>0</ID>
<Type>1</Type>
</Resource>
<Resource>
<UID>1</UID>
<ID>1</ID>
<Name>Test resource</Name>
<Type>1</Type>
</Resource>
</Resources>
<Assignments>
<Assignment>
<UID>2</UID>
<TaskUID>1</TaskUID>
<ResourceUID>1</ResourceUID>
</Assignment>
</Assignments>
</Project>
当我将此导入 MS Project 时,它不会从任务中导入开始和完成日期,并将持续时间设置为“0 天?”。
这是为什么?是否缺少某些内容(可能是日历的定义或任务或资源分配的一些附加属性?)
非常感谢您的帮助!
解决方案
这是适合您的最小工作文件:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Project xmlns="http://schemas.microsoft.com/project">
<ScheduleFromStart>1</ScheduleFromStart>
<StartDate>2018-06-21T08:00:00</StartDate>
<ProjectExternallyEdited>0</ProjectExternallyEdited>
<Tasks>
<Task>
<UID>1</UID>
<ID>1</ID>
<Name>Test task</Name>
<IsNull>0</IsNull>
<OutlineLevel>1</OutlineLevel>
<Start>2018-06-21T08:00:00</Start>
<Finish>2018-07-06T17:00:00</Finish>
<Duration>PT96H0M0S</Duration>
<DurationFormat>7</DurationFormat>
<Work>PT96H0M0S</Work>
<RemainingWork>PT96H0M0S</RemainingWork>
</Task>
</Tasks>
<Resources>
<Resource>
<UID>1</UID>
<ID>1</ID>
<Name>Test Resource</Name>
<Type>1</Type>
</Resource>
</Resources>
<Assignments>
<Assignment>
<TaskUID>1</TaskUID>
<ResourceUID>1</ResourceUID>
<RemainingWork>PT96H0M0S</RemainingWork>
<Work>PT96H0M0S</Work>
</Assignment>
</Assignments>
</Project>
MS Project 可以非常具体地说明它希望在 XML 文件中看到什么以获得您想要的结果。需要一些奇怪的设置(例如,ProjectExternallyEdited
等IsNull
),但主要区别在于我已经指定了任务和资源分配的工作量。
如果您以编程方式生成此文件,您可能会发现MPXJ很有帮助。
推荐阅读
- jquery - youtube 自动播放 - 在 iframe 在 DOM 内移动后防止再次启动视频
- android - Android 日历:使用股票日历或为自己的应用创建另一个日历的最佳实践?
- java - 检查字符串是否包含所有唯一字符
- php - 设置会话 Cookie 过期
- unit-testing - 如何模拟脚本中使用的 groovy 类?
- go - 在 Go 中应该如何设置单例状态?(或者,为什么这不起作用?)
- mysql - 在 Laravel 的查询构建器中使用复杂的 whereIn
- html - 有没有办法自动生成目录或从网页中提取“名称”标签列表
- python - PyQt5 立即显示 QMessageBox 和 QInputDialog
- vba - 通过增加数字顺序对数组进行排序