Сценарий фрагмента шаблона Sparx EA не выводит никаких данных

Следуйте этой инструкции здесь

Создал свой собственный document template fragment с настраиваемым полем внутри. Привязал к нему пользовательский скрипт (код будет ниже)

Создан шаблон document, который содержит мой document template fragment (во фрагменте шаблона внутри тега custom я добавил настраиваемые поля, такие как Author и TimeGen)

Использовал генерацию документов на нем, но то, что я получаю, является пустым документом! Почему это происходит?

У меня версия Sparx Ea 12.

Код скрипта (скопирован из примера здесь)

function MyRtfData(objectID) {
    var i;
    var xmlDOM = new ActiveXObject("Microsoft.XMLDOM");
    xmlDOM.validateOnParse = false;
    xmlDOM.async = false;
    var node = xmlDOM.createProcessingInstruction("xml", "version='1.0' encoding='ISO-8859-1'");
    xmlDOM.appendChild(node);
    var xmlRoot = xmlDOM.createElement("EADATA");
    xmlDOM.appendChild(xmlRoot);
    var xmlDataSet = xmlDOM.createElement("Dataset_0");
    xmlRoot.appendChild(xmlDataSet);
    var xmlData = xmlDOM.createElement("Data");
    xmlDataSet.appendChild(xmlData);
    var xmlRow = xmlDOM.createElement("Row");
    xmlData.appendChild(xmlRow);
    var xmlName = xmlDOM.createElement("DateGen");
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth() + 1; //January is 0!
    var yyyy = today.getFullYear();
    if (dd < 10) {
        dd = '0' + dd
    }
    if (mm < 10) {
        mm = '0' + mm
    }
    today = mm + '/' + dd + '/' + yyyy;
    xmlName.text = today;
    xmlRow.appendChild(xmlName);
    var xmlName = xmlDOM.createElement("TimeGen");
    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()
    if (minutes < 10) {
        minutes = "0" + minutes
    }
    xmlName.text = hours + ":" + minutes + " ";
    xmlRow.appendChild(xmlName);
    var xmlName = xmlDOM.createElement("Author");
    xmlName.text = Session.UserName;
    xmlRow.appendChild(xmlName);
    var xmlName = xmlDOM.createElement("EA_REPOS");
    xmlName.text = Repository.ConnectionString;
    xmlRow.appendChild(xmlName);
    return xmlDOM.xml;
};

Когда я запускаю его в режиме отладки, кажется, что все в порядке, он выводит некоторую структуру xml, но когда я генерирую документ, я получаю просто лист emtpy

ОБНОВЛЕНИЕ:

Теперь я получаю ошибку rtf, и системный вывод просто пустой

Ошибка выглядит так: введите здесь описание изображения

UPD2:

Когда я отлаживаю его, он выводит действительный XML


person DanilGholtsman    schedule 23.12.2016    source источник
comment
Если система сообщает вам об ошибках в выводе системы, а он пуст, вы должны сообщить об ошибке в Sparx.   -  person qwerty_so    schedule 25.12.2016
comment
@ThomasKilian ну что ж, внезапно я решил проблему! странный способ, но я опубликую ответ   -  person DanilGholtsman    schedule 25.12.2016


Ответы (1)


Проблема решена! Под этим я подразумеваю, что могу генерировать документы с произвольными полями, используя механизм template framents + scripts.

Что я сделал (короче говоря - начал все с нуля):

  1. Сделал новую группу скриптов
  2. Создал там новый файл JScript (приведенный выше код содержался в файле Javascript, возможно, это и было причиной)
  3. Создал новый fragment template, сделал там настраиваемое поле Autor
  4. Создал template, добавил туда свою fragment template
person DanilGholtsman    schedule 25.12.2016