【发布时间】:2016-12-23 08:37:33
【问题描述】:
遵循这条指令here
创建了我自己的document template fragment,里面有自定义字段。
绑定自定义脚本(代码如下)
创建了包含我的document template fragment的document模板(在custom标签内的模板片段中,我添加了自定义字段,如Author和TimeGen)
使用了文档生成,但我得到的是一个空文档! 为什么会这样?
我有 Sparx Ea 12 版本
脚本代码(复制自示例here)
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 表
UPD:
现在出现 rtf 错误,系统输出为空
UPD2:
当我调试它时,它会输出有效的 XML
【问题讨论】:
-
如果系统告诉您系统输出中有错误并且为空,您应该向 Sparx 报告错误。
-
@ThomasKilian 哦,好吧,我突然解决了这个问题!奇怪的方式,但是,我会发布一个答案
标签: xml jscript enterprise-architect