Записать коды структуры с помощью mpxj в xml-файл и импортировать его в MS Project 2003/2007. - PullRequest
0 голосов
/ 26 марта 2012

Кто-нибудь получал коды mpxj и outlince для работы с 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 Ответ

1 голос
/ 26 марта 2012

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

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

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

...