Записать коды набросков с помощью mpxj в xml-файл и импортировать их в ms project 2003/2007

Кто-нибудь получил mpxj и коды для работы с MS Project 2003 или 2007?

Я пытался экспортировать наброски кодов с помощью следующего кода:

ProjectFile project = new ProjectFile();
Task task = project.addTask();
task.setOutlineCode1("outlineCode1");

Получившийся xml выглядел примерно так:

<Project xmlns="http://schemas.microsoft.com/project">
..
<ExtendedAttributes>
    <ExtendedAttribute>
        <FieldID>188744096</FieldID>
        <FieldName>Outline Code1</FieldName>
    </ExtendedAttribute>
</ExtendedAttributes>
..
<Tasks>
    <Task>
        ..
        <ExtendedAttribute>
            <FieldID>188744096</FieldID>
            <Value>value</Value>
        </ExtendedAttribute>
        ..
    </Task>
</Tasks>
</Project>

Но я не смог найти какие-либо наброски кодов в импортированном проекте..

Когда я вручную добавляю коды структуры в проект, результирующий xml-файл также выглядит не так, как указано выше:

<Project xmlns="http://schemas.microsoft.com/project">
..
<OutlineCodes>
    <OutlineCode>
    <FieldID>188744096</FieldID>
    <FieldName>Outline Code1</FieldName>
        <Values>
            <Value>
                <ValueID>1</ValueID>
                <ParentValueID>0</ParentValueID>
                <Value>value</Value>
            </Value>
            ..
        </Values>
        ..
</OutlineCode>
</OutlineCodes>
..
<ExtendedAttributes>
    <ExtendedAttribute>
        <FieldID>188744096</FieldID>
        <FieldName>Outline Code1</FieldName>
    </ExtendedAttribute>
</ExtendedAttributes>
..
<Tasks>
    <Task>
        ..
        <OutlineCode>
            <UID>1</UID>
            <FieldID>188744096</FieldID>
            <ValueID>1</ValueID>
        </OutlineCode>
        ..
    </Task>
</Tasks>
</Project>

Так что мне кажется, что я упускаю некоторые важные шаги в процедуре экспорта?!

1 ответ

Решение

Я просмотрел источник MPXJ и провел свой собственный быстрый тест, и не похоже, что вы делаете что-то не так. Насколько я могу судить, он просто не поддерживает OutlineCodes так, как это нужно MS Project.

Как вы обнаружили, он выводит их как обычно ExtendedAttributes, но схема MSPDI определяет набор OutlineCode элементы специально для их хранения (как вы можете видеть в xml, созданном MS Project). На самом деле, OutlineCode Элемент хранит ссылку на значение поиска, определенное в Project, а не хранит значение напрямую.

Лучше всего зарегистрировать ошибку на SourceForge и заставить Джона (создателя) взглянуть.

Другие вопросы по тегам