# Problem whith dataset using queryStatus function

**URL:** <https://forum.inductiveautomation.com/t/problem-whith-dataset-using-querystatus-function/90221>\
**Category:** Ignition\
**Tags:** perspective, scripting, ignition81\
**Created:** [May 10, 2024, 11:04am UTC](https://forum.inductiveautomation.com/t/problem-whith-dataset-using-querystatus-function/90221 "2024-05-10T11:04:08Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![sebastien\_ng](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sebastien_ng/32/55297_2.png) [@sebastien\_ng](https://forum.inductiveautomation.com/u/sebastien_ng)\
**Post date:** [May 10, 2024, 11:04am UTC](https://forum.inductiveautomation.com/t/problem-whith-dataset-using-querystatus-function/90221/1 "2024-05-10T11:04:08Z")

</div>

I'am working with alarms satus. I don't whant use `Alarm status` Component.  
I  
I'am using a `system.alarm.queryStatus` to get dataset of alarm and I put it on a power table.

This the function that I created:

```python
def queryStatus():
	 
	from collections import defaultdict
	from com.inductiveautomation.ignition.common.alarming.config import CommonAlarmProperties
	
	results = system.alarm.queryStatus(source = "*Sensor*",provider = "fonctionnalites")
	ds = results.getDataset() # gets the same columns that the function binding returns
	data = defaultdict(list)
	data_ackTime = defaultdict(list)
	for alarmEvent in range ( len(results)):

		data["Name"].append(results[alarmEvent].get(CommonAlarmProperties.Name))
		data["Notes"].append(results[alarmEvent].get(CommonAlarmProperties.Notes))
		data["Ack Notes"].append(results[alarmEvent].get(CommonAlarmProperties.AckNotes))
		data["Label"].append(results[alarmEvent].get(CommonAlarmProperties.Label))
		data["Ack User"].append(str(results[alarmEvent].get(CommonAlarmProperties.AckUser)))
	
		#MM/DD/YYYY HH:mm:ss
		AckTime = results[alarmEvent].get(CommonAlarmProperties.AckTime)
		if AckTime == None:
			data_ackTime["ACK TIME"].append(system.date.parse("Mon Apr 00 00:00:00 UTC 0000","E MMM dd HH:mm:ss Z yyyy"))
		else:
			data_ackTime["ACK TIME"].append(AckTime)
	#return data
	for column, values in data.items():
		ds1 = system.dataset.addColumn(ds, ds.columnCount, values, column, basestring)
	#return ds1	      
	
	for column, values in data_ackTime.items():
		ds2 = system.dataset.addColumn(ds1, ds1.columnCount, values, column, Date)
	return ds2

```

The problem is, when a return `ds1` it work.

but if I return ds2 I'am getting error

 ![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/5/e/5ef4373d820339ebfa7a817eed6450846ad10b69.png)

Someone can explain me why I can't return ds2 ?

---

<div class="post-metadata">

**Author:** ![Alejandro\_Alaco](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/alejandro_alaco/32/59849_2.png) [@Alejandro\_Alaco](https://forum.inductiveautomation.com/u/Alejandro_Alaco)\
**Post date:** [May 10, 2024, 12:18pm UTC](https://forum.inductiveautomation.com/t/problem-whith-dataset-using-querystatus-function/90221/2 "2024-05-10T12:18:25Z")

</div>

```python
def queryStatus():
    from collections import defaultdict
    from com.inductiveautomation.ignition.common.alarming.config import CommonAlarmProperties
    from java.util import Date
    from java.lang import String

    results = system.alarm.queryStatus(source="*Sensor*", provider="fonctionnalites")
    ds = results.getDataset() # gets the same columns that the function binding returns

    data = defaultdict(list)
    data_ackTime = defaultdict(list)

    for alarmEvent in range(len(results)):
        data["Name"].append(results[alarmEvent].get(CommonAlarmProperties.Name))
        data["Notes"].append(results[alarmEvent].get(CommonAlarmProperties.Notes))
        data["Ack Notes"].append(results[alarmEvent].get(CommonAlarmProperties.AckNotes))
        data["Label"].append(results[alarmEvent].get(CommonAlarmProperties.Label))
        data["Ack User"].append(str(results[alarmEvent].get(CommonAlarmProperties.AckUser)))

     
        AckTime = results[alarmEvent].get(CommonAlarmProperties.AckTime)
        if AckTime is None:
            defaultDate = Date(0) # Epoch time
            data_ackTime["ACK TIME"].append(defaultDate)
        else:
            data_ackTime["ACK TIME"].append(AckTime)

  
    for column, values in data.items():
        ds = system.dataset.addColumn(ds, ds.columnCount, values, column, String)

 
    for column, values in data_ackTime.items():
        ds = system.dataset.addColumn(ds, ds.columnCount, values, column, Date)

    return ds

```

using just one ds

---

<div class="post-metadata">

**Author:** ![sebastien\_ng](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sebastien_ng/32/55297_2.png) [@sebastien\_ng](https://forum.inductiveautomation.com/u/sebastien_ng)\
**Post date:** [May 10, 2024, 12:26pm UTC](https://forum.inductiveautomation.com/t/problem-whith-dataset-using-querystatus-function/90221/3 "2024-05-10T12:26:49Z")

</div>

You are my saviour @Alejandro_Alaco😅

---

<div class="post-metadata">

**Author:** ![sebastien\_ng](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sebastien_ng/32/55297_2.png) [@sebastien\_ng](https://forum.inductiveautomation.com/u/sebastien_ng)\
**Post date:** [May 10, 2024, 12:29pm UTC](https://forum.inductiveautomation.com/t/problem-whith-dataset-using-querystatus-function/90221/4 "2024-05-10T12:29:56Z")

</div>

defaut date is `1970-1-1 1:00:00`  
it is possible to set it `0000-0-0 0:00:00` ?

---

<div class="post-metadata">

**Author:** ![Alejandro\_Alaco](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/alejandro_alaco/32/59849_2.png) [@Alejandro\_Alaco](https://forum.inductiveautomation.com/u/Alejandro_Alaco)\
**Post date:** [May 10, 2024, 12:33pm UTC](https://forum.inductiveautomation.com/t/problem-whith-dataset-using-querystatus-function/90221/5 "2024-05-10T12:33:58Z")

</div>

Thats the age of Christ.

The default date 1970-01-01 00:00:00 is known as the Unix epoch time, which is the starting point for many computer-based time systems. However, it's not possible to set a date as 0000-00-00 because it's not valid according to standard date conventions.

A solution may be:

```python
from collections import defaultdict
from com.inductiveautomation.ignition.common.alarming.config import CommonAlarmProperties
from java.util import Date
from java.lang import String

custom_sentinel_date = Date(0) # Epoch time is 1970-01-01 00:00:00

def queryStatus():
    results = system.alarm.queryStatus(source="*Sensor*", provider="fonctionnalites")
    ds = results.getDataset()

    data = defaultdict(list)
    data_ackTime = defaultdict(list)

    for alarmEvent in range(len(results)):
        data["Name"].append(results[alarmEvent].get(CommonAlarmProperties.Name))
        data["Notes"].append(results[alarmEvent].get(CommonAlarmProperties.Notes))
        data["Ack Notes"].append(results[alarmEvent].get(CommonAlarmProperties.AckNotes))
        data["Label"].append(results[alarmEvent].get(CommonAlarmProperties.Label))
        data["Ack User"].append(str(results[alarmEvent].get(CommonAlarmProperties.AckUser)))

   
        AckTime = results[alarmEvent].get(CommonAlarmProperties.AckTime)
        if AckTime is None:
            data_ackTime["ACK TIME"].append(custom_sentinel_date)
        else:
            data_ackTime["ACK TIME"].append(AckTime)

 
    for column, values in data.items():
        ds = system.dataset.addColumn(ds, ds.columnCount, values, column, String)

    # Add the ACK TIME column
    for column, values in data_ackTime.items():
        ds = system.dataset.addColumn(ds, ds.columnCount, values, column, Date)

    return ds

```

By using a sentinel value like Date(0), you can consistently detect it and handle the scenario differently where necessary.

---

<div class="post-metadata">

**Author:** ![sebastien\_ng](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/sebastien_ng/32/55297_2.png) [@sebastien\_ng](https://forum.inductiveautomation.com/u/sebastien_ng)\
**Post date:** [May 10, 2024, 12:39pm UTC](https://forum.inductiveautomation.com/t/problem-whith-dataset-using-querystatus-function/90221/6 "2024-05-10T12:39:10Z")

</div>

thank you @Alejandro_Alaco
