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;
};