< назад

CHANGE LOG

Change Log - список изменений, которые вносятся пользователем в различные области системы YuniquePLM.

На скриншоте ниже рассматривается функциональность Change Log-а в стилях (Style Header).

Как только пользователь нажимает "change log" в Style Header, открывается список всех внесенных изменений в текущий стиль. Меню слева фильтрует список по истории. Change Folder содержит колонки:

  • Session
  • Snapshot
  • Action - тип действия (Add, Update, Replace)
  • Workflow - рабочий процесс/"бабл", в который были внесены изменения
  • Field Name - номер поля
  • Before - до
  • After - после
  • User - имя пользователя, который произвел изменение
  • Date - дата внесенного изменения

Кнопки сверху:

  • Send To (1) - отправка выбранных изменений на почту определенного пользователя
    • выделить элемент списка можно нажатием на любую колонку (кроме Session/Snapshot); выбранное изменение выделяется красным
  • Clear Selection (2) - сбрасывает все выбранные изменения
  • Select All (3) - выбор/выделение всего списка




XML - схема



Private strChangeManagementEnabled As String = Yunique.Core.Library.ConfigHandler.GetAppSettings(Yunique.Core.Library.ConfigHandler.AppSettings("SYSTEM"))("ChangeManagementEnabled")            "Конфиг глобально включающий/отключающий функциональность логирования
 




 "функция вызываемая для инициализации хендлера, большинство параметров подбирается под определенную страницу

Private Function InitChangeLog(ByVal objChange As ChangeLogHandler) As ChangeLogHandler
With objChange
.strChangePKID = _StyleID
.ChangeSessionID = Me.ChangeSessionID
.ChangeTransactionID = Me.ChangeTransactionID
.ChangeUserID = Me.UserProperties.TeamID
.ChangeUserName = Me.UserProperties.Fullname
.TrackChange = .GetStyleChangeManagementEnabled(_StyleID)
.ChangeTableId = .GetStyleWorkflowChangeTableId(_WorkflowID)
.ChangeTransTableID = .ChangeTableId
.PreferredLanguage = Me.UserProperties.PrefLang
.ChangeLogNotificationSubject = String.Format("Style {0} changed", Me.StyleNo)
.ChangeLogNotificationRecepients = .GetStyleWorkflowNotificationRecipients(_StyleID, StyleSet, WorkflowID)
.ChangeLogUrl = String.Format("/Change/Change_Folder.aspx?CLTID={0}&CTTPKID={1}&SID={2}&SN={3}", .ChangeTransTableID, .strChangePKID, StyleID, StyleSet)
End With
Return objChange
End Function




Using oCnn As New SqlConnection(strConnection), objChange As New ChangeLogHandler(oCnn)
InitChangeLog(objChange)

ChangeLogHandler "класс ответсвенный за логирование If Not strBeforeChange = strAfterChange Then
If strBeforeChange = String.Empty Then strBeforeChange = "NULL"

If objXmlHandler.ControlType() = "dropdownlist" Then
If strBeforeChange = "NULL" Then strBeforeChange = "00000000-0000-0000-0000-000000000000
objChange.CreateListArray(objXmlHandler.EnableTrackChange, objXmlHandler.ControlName.Substring(3), objXmlHandler.LabelName, _
objXmlHandler.LookupQuery, objXmlHandler.ValueField, objXmlHandler.TextField, _
strBeforeChange, strAfterChange, strBeforeChange, strAfterChange, ChangeLogHandler.ChangeType.UPDATE)
Else
objChange.CreateListArray(objXmlHandler.EnableTrackChange, objXmlHandler.ControlName.Substring(3), objXmlHandler.LabelName, _ "", "", "", strBeforeChange, strAfterChange, strBeforeChange, strAfterChange, ChangeLogHandler.ChangeType.UPDATE)
End If
If objXmlHandler.EnableTrackChange Then
strChangeType = "UPDATE"
End If
End If

"пример добавления записи в лог
If strChangeType = "UPDATE" Then
objChange.blnChanged = True
End If

"обязательно установить свойство blnChanged в true, если были изменения
ChangeTransactionID = objChange.SaveChangeLog(Page.ToString)
"Сохранение лога в БД




#Region "Change Management Properties"

Private ReadOnly Property ChangeSessionID() As String
Get
If Session.Item("ChangeSessionID") Is Nothing Then
Session.Item("ChangeSessionID") = Guid.NewGuid.ToString
End If

Return Session.Item("ChangeSessionID")
End Get
End Property

Private Property ChangeTransactionID() As String
Get
Return Session("ChangeTransactionID-" + _WorkflowID)
End Get
Set(ByVal value As String)
Session("ChangeTransactionID-" + _WorkflowID) = value
End Set
End Property
#End Region

"обязательные свойства необходимые хэндлеру