def get_alarms_to_shelve(self): """This function is used to perform the shelving function on single or multiple alarms. It receives an alarm data dictionary from a row in the alarm table and generates a shelving dict to trigger a tag change script on the gateway. Args: self: Reference to the component that is calling this function Returns: Executes the shelving function. Does not return any results. Raises: KeyError: Raises an exception. """ selected_rows = self.custom.alarms_to_shelve shelve_time = self.props.value alarms_to_shelve = [] messages_to_shelve = [] for i in selected_rows: # alarm_id = i.get("AlarmId") alarm_id = i.get("value",{}).get("SourceId",{}).get("value") alarm_id = alarm_id.replace(" ", "") message = i.get("value",{}).get("Alarm_id",{}).get("value") alarms_to_shelve.append(alarm_id) messages_to_shelve.append(message) duration = shelve_time self.props.value = "" return alarms_to_shelve ,messages_to_shelve, duration