Xml Sparx EA模板片段脚本不输出任何数据

Xml Sparx EA模板片段脚本不输出任何数据,xml,jscript,enterprise-architect,Xml,Jscript,Enterprise Architect,按照这个指示 创建了我自己的文档模板片段,其中包含自定义字段。 将自定义脚本绑定到它(代码如下) 创建了文档模板,其中包含我的文档模板片段(在自定义标记内的模板片段中,我添加了自定义字段,如作者和TimeGen) 使用文档生成,但我得到的是一个空文档! 为什么会发生这种情况 我有Sparx Ea 12版本 脚本代码(从示例中复制) 函数MyRtfData(objectID){ var i; var xmlDOM=新的ActiveXObject(“Microsoft.xmlDOM”); xmlDO

按照这个指示

创建了我自己的
文档模板片段
,其中包含自定义字段。 将自定义脚本绑定到它(代码如下)

创建了
文档
模板,其中包含我的
文档模板片段
(在
自定义
标记内的模板片段中,我添加了自定义字段,如
作者
TimeGen

使用文档生成,但我得到的是一个空文档! 为什么会发生这种情况

我有Sparx Ea 12版本

脚本代码(从示例中复制)

函数MyRtfData(objectID){
var i;
var xmlDOM=新的ActiveXObject(“Microsoft.xmlDOM”);
xmlDOM.validateOnParse=false;
xmlDOM.async=false;
var node=xmlDOM.createProcessingInstruction(“xml”,“version='1.0'encoding='ISO-8859-1'”);
appendChild(节点);
var xmlRoot=xmlDOM.createElement(“EADATA”);
appendChild(xmlRoot);
var xmlDataSet=xmlDOM.createElement(“数据集0”);
appendChild(xmlDataSet);
var xmlData=xmlDOM.createElement(“数据”);
appendChild(xmlData);
var xmlRow=xmlDOM.createElement(“行”);
appendChild(xmlRow);
var xmlName=xmlDOM.createElement(“DateGen”);
var today=新日期();
var dd=today.getDate();
var mm=today.getMonth()+1;//一月是0!
var yyyy=today.getFullYear();
如果(dd<10){
dd='0'+dd
}
如果(毫米<10){
毫米='0'+毫米
}
今天=mm+'/'+dd+'/'+yyyy;
xmlName.text=今天;
appendChild(xmlName);
var xmlName=xmlDOM.createElement(“TimeGen”);
var currentTime=新日期()
var hours=currentTime.getHours()
var minutes=currentTime.getMinutes()
如果(分钟<10){
分钟数=“0”+分钟数
}
xmlName.text=hours+“:“+minutes+”;
appendChild(xmlName);
var xmlName=xmlDOM.createElement(“作者”);
xmlName.text=Session.UserName;
appendChild(xmlName);
var xmlName=xmlDOM.createElement(“EA_REPOS”);
xmlName.text=Repository.ConnectionString;
appendChild(xmlName);
返回xmlDOM.xml;
};
当我在调试模式下运行它时,它似乎还可以输出一些xml结构,但当我生成文档时,我得到的只是emtpy表

UPD:

现在我得到了rtf错误,系统输出为空

错误如下所示:

UPD2:


当我调试它时,它输出有效的XML问题就解决了!这意味着我可以使用
模板框架+脚本
机制生成带有自定义字段的文档

我所做的(长话短说——一切从头开始):

  • 创建新脚本组
  • 在那里创建了新的
    JScript
    文件(一个 上面的代码包含在
    Javascript
    文件中,可能是 (理由)
  • 创建新的
    片段模板
    ,自定义
    Autor
    字段 那里
  • 创建了
    模板
    ,在那里添加了我的
    片段模板

  • 如果系统告诉你系统输出中的错误,而该错误为空,你应该向Sparx报告一个错误。@ThomasKilian哦,好吧,我突然解决了这个问题!奇怪的方式,但是,我会发布一个答案
    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;
    };