#ibm-doors
#ibm-двери
Вопрос:
Есть ли какой-нибудь способ получить автора oldValue, используя history в dxl?
Я хочу извлечь имя автора, который написал старое значение (предшествующее текущей записи истории) для объекта в DOORS.
Ответ №1:
Старое значение какого атрибута? Я предполагаю «Текст объекта» или «Заголовок объекта». Общая идея такова: перебирайте все записи истории (например History h
, ) рассматриваемого объекта (в обратном направлении во времени), пока не найдете запись истории с h.type
modifyObject
надписью h.attrName
«Текст объекта» (или «Заголовок объекта», или любой другой интересующий вас атрибут). Это запись , которая была изменена h.oldValue
на h.newValue
. Если вы нашли запись , в которой вы видите старое значение h.oldValue
. Затем вы будете двигаться дальше назад во времени, пока не найдете следующую запись с h.type == modifyObject
и h.attrName == "Object Text"
, которая будет той записью, которую вы ищете, которая изменила «очень старое значение» на «старое значение». Из этого одного вы захотите получить h.author
.
Если в текущем модуле нет двух таких записей истории, возможно, либо объект только что был создан (тогда вы ищете запись истории с h.type == createObject
помощью), либо объект был изменен / создан в предыдущей базовой линии. В этом случае вам нужно выполнить итерацию по всем базовым линиям модуля (в обратном направлении во времени), загрузить каждую базовую линию и повторить процесс.
На http://www.smartdxl.com/content/?page_id=125 есть хороший сценарий Тони Гудмана «Умный просмотрщик истории», который делает именно это. В этом скрипте вы найдете все фрагменты кода, которые вам нужны.