Nach löschen von einer Variable im Archive Handler!

Hallo,
habe nach dem löschen einer Variable im Archive Handler,
einen Eintrag Objekt #12345 existiert nicht.
Verwundert mich nicht, aber wollte bei dieser Variable,
die geloggten Daten bei einer neuen noch nicht geloggten
Variable zusammenführen ( überführen ).
Geht aber leider nicht -> nach der Auswahl der neuen Variable im Archive Handler
Fehlermeldung „Variable #12345 existiert nicht“.
Liegt der Grund bei der Löschung der Variable ( existiert nicht ),
bevor der Datensatz überführt wird?
Kann ich die Daten jetzt nicht mehr überführen?:eek:

:confused:
Mit so vielen Antworten und Anregungen habe ich nicht gerechnet.
Wenn es anscheinend schon nicht in der 3.4er geht,
dann hoffentlich in der 4er bei der Umwandlung der Datenbank.
Auch wenn die Variable nur mehr als ID im Archive besteht.
Oder auch hier, Pech gehabt :o

Ich habe dieses Thema leider übersehen. Es ist nicht vorgesehen, dass man die Daten überführt nachdem man die Variable gelöst hat…

Nach der Konvertierung zur 4.0 kannst du die CSV-Dateien per Hand umbenennen, wenn du mangst. Zur Zeit könntest du nur mit einem SQLite Tool in den korrekten Tabellen die VariablenID von der alten auf die neue Ändern lassen.

paresy

Ok, danke paresy.

Da ja höchstwahrscheinlich noch heuer die 4.0 Stable kommen wird,
werde ich warten. :slight_smile:
Und nach der Datenbankumwandlung, die Zuordnung machen.

Moin paresy!

Wir hatten letztens in einem anderen Thread das Thema, dass man diese ganzen „Objekt #12345 existiert nicht“ Variablen löschen will per Skript. Zu diesem Zeitpunkt dachte ich noch, dass diese Objekte einen Sinn machen, z.B. für den Fall, dass man die geloggten Werte noch in eine andere Variable überführen will.
>> Dieses Skript kam dabei raus >> IP-Symcon - Wie kann ich… 2.0 - Seite 7

Aber jetzt sagst du, dass man die geloggten Daten einer Variable nicht in eine andere Variable überführen kann…

…nur wo ist dann der Sinn darin, dass Archiveinträge von gelöschten Variablen im Archiv verbleiben und nicht mit dem Löschen der Variable gelöscht werden??? :confused: Der einzige Sinn wäre doch gewesen, dass man die geloggten Daten noch überführen möchte. Aber wenn man das nicht kann, dann ist es doch „für die Füße“ und man hat doppelte Lösch-Arbeit für nichts!!! :confused:

Bitte um Aufklärung :slight_smile: Oder falls es keine plausible Erklärung gibt, dann ändert es im IPS doch bitte so ab, dass die Archiveinträge direkt mit dem Löschen der Variable mit gelöscht werden, wenn die danach eh zu nichts mehr zu gebrauchen sind! Dann spart man sich die Arbeit mit dem zusätzlichen löschen…

Grüße,
Chris

Ist eigentlich eine gute Idee, dass wir beim Löschen der Variable direkt die Archivdaten mitlöschen :slight_smile:

paresy

Joa :smiley: Wenn man mit den Daten eh nichts mehr anfangen kann… Oder ihr ändert es so, dass man die Daten von gelöschten Variablen doch noch überführen kann, falls man sich ausversehen eine Variable gelöscht hat :slight_smile:

Grüße,
Chris

Dann wäre ich für letzteres.
Oder der Warnhinweis dass auch Archiv Daten gelöscht werden, beim löschen der Variable in 70pt :smiley:
Michael

Hatte die falsche Vermutung, vorher die Variable löschen und
dann in die noch nicht geloggte zu überführen.
Bitte mit Hinweisen bestücken, dann sind Missverständnisse kaum möglich.

Wie ist es eigentlich ab der 4er geplant?
Bleibt die CSV erhalten oder wird diese Umbenannt?

Hallo,

nun versuche ich den Müll im Archiv per Script zu löschen nur scheinbar gibt es keine Funktion die wie im Archiv Controll einfach die Daten im Archiv einer Variable löscht.

Vielleicht kann mir jemand einen Tip geben wie das gehen könnte, hier mal mein Script das alle im Archiv vorhandenen ID’s überprüft ob diese in IPS noch existieren und wenn nicht löschen sollte…

$id_archiv = 32289 /*[Archive]*/;
$ar = AC_GetAggregationVariables($id_archiv, true);

foreach ($ar as $key){
   if(!IPS_ObjectExists($key["VariableID"])){
      print $key["VariableID"]." Existiert nicht --> Lösche dessen Archiv Daten!
";
      AC_DeleteVariableData($id_archiv, $key["VariableID"], 0, time());
   }
}

Moin Paul, das hier könnte evtl. helfen:

RS DB Analyzer | Raketenschnecke.net

allerdings nur bis IPS 3.4…

Moin,

wow Danke für die schnelle Rückmeldung, aber leider setze ich aktuell IPS 4.0 ein…

So macht es die Konsole auch. Es gibt dafür bisher keine kürzere Funktion.

paresy

Hallo Paresy,

Nur leider sind die Archiveinträge nachbdem Ausführen noch immer da…


$id_archiv = 32289 /*[Archive]*/;
$ar = AC_GetAggregationVariables($id_archiv, true);

foreach ($ar as $key){
   if(!IPS_ObjectExists($key["VariableID"])){
      print $key["VariableID"]." Existiert nicht --> Lösche dessen Archiv Daten!
";
      AC_DeleteVariableData($id_archiv, $key["VariableID"], 0, 0);
   }
}

Ich hab noch mal nachgesehen. Du musst beide Parameter auf 0 setzen. Damit wird nicht selektiv gelöscht, sondern es wird alles gelöscht und das Logging für die ID deaktiviert. Wir werden die Doku mal mit einem Hinweis versehen :slight_smile:

paresy

Danke für die Info!

Danke fuer die Info.