# Creating report from alarm data - getting user who acknowlegded alarm and when?

**URL:** <https://forum.inductiveautomation.com/t/creating-report-from-alarm-data-getting-user-who-acknowlegded-alarm-and-when/60450>\
**Category:** Ignition\
**Tags:** ignition81\
**Created:** [June 7, 2022, 2:18pm UTC](https://forum.inductiveautomation.com/t/creating-report-from-alarm-data-getting-user-who-acknowlegded-alarm-and-when/60450 "2022-06-07T14:18:09Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [June 8, 2022, 8:54pm UTC](https://forum.inductiveautomation.com/t/creating-report-from-alarm-data-getting-user-who-acknowlegded-alarm-and-when/60450/7 "2022-06-08T20:54:59Z")

</div>

You need to take the UUID into account.

```python
from com.inductiveautomation.ignition.common.alarming.config import CommonAlarmProperties 

start = '2022-06-04 00:00:00'
end = '2022-06-06 00:00:00'

beginningOfDay = system.date.parse(start)
endOfDay = system.date.parse(end)

allAlarmData = system.alarm.queryJournal(journalName='BypassJournal', startDate=beginningOfDay, endDate=endOfDay, includeSystem=False)

dictOut = {}

# Set key names for datapoints associated with each UUID
keys = ['active', 'cleared', 'name']

for alarmRecord in allAlarmData:
	# Get Data points
	eventTime = alarmRecord.get(CommonAlarmProperties.EventTime)
	alarmActive = alarmRecord.get(CommonAlarmProperties.ActiveTime)
	alarmCleared = alarmRecord.get(CommonAlarmProperties.ClearTime)
	# Note that I use displaypath instead of name. To each their own. ;)
	# alarmName = alarmRecord.getName()
	alarmName = alarmRecord.get(CommonAlarmProperties.DisplayPath)
	# The UUID is what ties it all together.
	uuid = alarmRecord.id
	
	# Chech if the UUID exists. Make an entry for it if it does not.
	if uuid not in dictOut.keys():
		# Keys full of Nones.  
		dictOut[uuid] = {key:None for key in keys}
	# Set the alarm name, if it doesn't exist
	if not dictOut[uuid]['name']:
		dictOut[uuid]['name'] = alarmName	
	# Set the alarm active time, if it doesn't exist
	if alarmActive and not dictOut[uuid]['active']:
		dictOut[uuid]['active'] = alarmActive
	# Set the alarm cleared time, if it doesn't exist
	if alarmCleared and not dictOut[uuid]['cleared']:
		dictOut[uuid]['cleared'] = alarmCleared

headers = ['Alarm Occured At', 'Alarm Cleared At', 'Alarm Name']
rows = []
for values in dictOut.values():
	rows.append([values[key] for key in keys])

# Create the dataset
dataset = system.dataset.sort(system.dataset.toDataSet(headers, rows), 'Alarm Occured At')

util.printDataSet(dataset)

```

output from my own journal:

```nohighlight
row | Alarm Occured At | Alarm Cleared At | Alarm Name                 
-----------------------------------------------------------------------------------------------
0 | Sat Jun 04 00:31:26 EDT 2022 | Sat Jun 04 01:12:09 EDT 2022 | 3427/140/pvc_tape          
1 | Sat Jun 04 05:59:54 EDT 2022 | Sat Jun 04 06:32:39 EDT 2022 | 3425/160/tension           
2 | Sat Jun 04 06:36:22 EDT 2022 | Sat Jun 04 07:05:38 EDT 2022 | 3425/160/tension           
3 | Sat Jun 04 07:00:15 EDT 2022 | Sat Jun 04 07:26:12 EDT 2022 | 3426/140/coax_tape         
4 | Sat Jun 04 07:02:29 EDT 2022 | Sat Jun 04 07:31:13 EDT 2022 | 3426/160/tension           
5 | Sat Jun 04 07:21:47 EDT 2022 | Sat Jun 04 07:31:13 EDT 2022 | 3426/160/handle_pull_effort
6 | Sat Jun 04 07:32:55 EDT 2022 | Sat Jun 04 07:38:14 EDT 2022 | 3426/160/handle_pull_effort
7 | Sat Jun 04 07:32:56 EDT 2022 | Sat Jun 04 07:38:14 EDT 2022 | 3426/160/tension           
8 | Sat Jun 04 07:42:04 EDT 2022 | Sat Jun 04 09:13:50 EDT 2022 | 3426/160/handle_pull_effort
9 | Sat Jun 04 07:42:05 EDT 2022 | Sat Jun 04 09:13:50 EDT 2022 | 3426/160/tension           

```

---

_[View the full topic](https://forum.inductiveautomation.com/t/creating-report-from-alarm-data-getting-user-who-acknowlegded-alarm-and-when/60450)._
