问题描述
有什么办法可以使用 dxl 中的历史记录获取 oldValue 的作者吗?
我想提取为 DOORS 中的对象编写 oldValue(在当前历史记录之前)的作者姓名。
解决方法
哪个属性的旧值?我假设“对象文本”或“对象标题”。
总体思路是:迭代所讨论对象的所有历史条目(例如 History h
)(时间向后),直到找到 h.type
为 modifyObject
的历史条目,并且h.attrName
是“对象文本”(或“对象标题”或您感兴趣的任何属性)。这是将 h.oldValue
更改为 h.newValue
的条目。如果您找到该条目,您会在 h.oldValue
中看到旧值。然后,您将在时间上进一步倒退,直到找到下一个带有 h.type == modifyObject
和 h.attrName == "Object Text"
的条目,这将是您要查找的条目,将“非常旧的值”更改为“旧值”。其中您会想要获得 h.author
。
如果当前 Module 中没有两个这样的历史条目,则可能是该对象刚刚创建(然后您正在查找带有 h.type == createObject
的历史条目),或者该对象已被创建在以前的基线中修改/创建。在这种情况下,您必须遍历模块的所有基线(时间向后),加载每个基线并重复该过程。
在 http://www.smartdxl.com/content/?page_id=125 上,托尼·古德曼 (Tony Goodman) 编写了一个很好的脚本“智能历史查看器”,它正是这样做的。在该脚本中,您将找到所需的所有代码片段。