文章
Qiao Peng · 五月 25 阅读大约需 1 分钟

如何通过Journal日志文件查询谁对特定数据做了什么操作

%SYS.Journal.Record 类有一个查询(query), List, 可以列出Journal文件中记录的数据修改历史。例如,要查询谁对global节点^QP(1,2)做过修改,可以使用如下代码。它查询Journal文件(输入参数pFilePath)中的global节点(输入参数pSearchGlobal)的操作:

ClassMethod SearchGlobal(pSearchGlobal = "^QP(1,2)", pFilePath = "C:\InterSystems\IRISHealth\mgr\journal\20220525.003")
{
	Set tRS = ##class(%ResultSet).%New("%SYS.Journal.Record:List")
	Set tSC = tRS.Execute(pFilePath)

	While (tRS.Next()) 
	{
		Set address = tRS.Data("Address")
		Set globalNode = tRS.Data("GlobalNode")
		Set newValue = tRS.Data("NewValue")
		Set type = tRS.Data("TypeName")
		Set processid = tRS.Data("ProcessID")
		Set time = tRS.Data("TimeStamp")
		Set globalRef = tRS.Data("GlobalReference")
		
		If globalNode=pSearchGlobal
		{
			W !
			W time,!
			W processid,!
			W address,!
			W type," ",globalRef,"=",newValue,!
		}

	}
}
2
2 151
讨论 (0)1
登录或注册以继续