Field with 'Date Last Changed'

189 views
Skip to first unread message

Peter Schwarz

unread,
Sep 2, 2023, 10:43:53 AM9/2/23
to mementodatabase
Hello, I would like to add a field with the content 'Date of the last change of the record' in my database. The field content should be as empty as possible if a new data record is created and this has not yet been changed. With a change, the current date should be entered in this field as automatically as possible. It would be good if there could also be a second field with the 'Date the data record was created'. There is probably already a small Java script for this. Unfortunately I couldn't find anything about it in the forum. Thanks in advance and greetings Peter

----
Hallo,
ich möchte gern ein Feld mit dem Inhalt 'Datum der letzten Änderung des Datensatzes' in meiner Datenbank ergänzen. Der Feldinhalt sollte möglichst leer sein, wenn ein neuer Datensatz angelegt wird und dieser noch nicht geändert wurde. Mit einer Änderung sollte in diesem Feld möglichst automatisch das aktuelle Tagesdatum im Feld eingetragen werden.

Gut wäre, wenn es das gleich auch explizit für ein zweites Feld mit dem 'Datum der Erstellung des Datensatzes' geben könnte.

Wahrscheinlich gibt es dafür ja bereits ein kleines Java-Script.

Leider  habe ich nichts dazu im Forum gefunden.
Danke vorab und Gruß
Peter

Bill Crews

unread,
Sep 2, 2023, 12:52:29 PM9/2/23
to Peter Schwarz, mementodatabase
Das Datum der letzten Aktualisierung könnte ein Datums- oder DateTime-Feld sein, dessen Standardwert auf „Leer“ gesetzt ist.

Das Erstellungsdatum könnte ein Datums- oder DateTime-Feld sein, dessen Standardwert auf „Leer“ gesetzt ist.

Gehen Sie im Kebab-Menü (3-Punkte) zu Skripte (Scripts) und wählen Sie Skripte aus.

Fügen Sie einen Trigger für UponUpdatingAnEntry AfterCreatingTheEntry mit dem folgenden Skript hinzu ...

entry().set("Letzte Aktualisierung", Date.now().getTime());

Fügen Sie mit dem folgenden Skript ein Triggerfeld für UponCreatingAnEntry AfterCreatingTheEntry hinzu ...

entry().set("Erstellt", entry().creationTime;

Ändern Sie die beiden Feldnamen so, dass sie mit den von Ihnen verwendeten Namen übereinstimmen.
__________

The date last updated could be a Date or DateTime field with default set to Empty.

The creation date could be a Date or DateTime field with default set to Empty.

Go to Scripts in the kebab (3-dot) menu and select Scripts.

Add a trigger for UponUpdatingAnEntry AfterCreatingTheEntry with the following script...

entry().set("Last updated", Date.now().getTime());

Add a trigger field for UponCreatingAnEntry AfterCreatingTheEntry with the following script...

entry().set("Created", entry().creationTime;

Change the 2 field names to match the names you use.


--
You received this message because you are subscribed to the Google Groups "mementodatabase" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mementodataba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/mementodatabase/7942ec79-7548-400c-ad0d-4fbed4d038bbn%40googlegroups.com.

Bill Crews

unread,
Sep 2, 2023, 1:16:09 PM9/2/23
to Peter Schwarz, mementodatabase
Add a trigger for UponUpdatingAnEntry AfterCreatingTheEntry with the following script...

...should have been...

Add a trigger for UponUpdatingAnEntry AfterUpdatingTheEntry with the following script...

Er Mo

unread,
Sep 2, 2023, 2:37:50 PM9/2/23
to mementodatabase
Hallo Peter
Bill hat schon eine Möglichkeit aufgezeigt . Du kannst für das Erstelldatum auch den Feldwert auf " Aktuelles Datum " stellen . Dann wird beim Erstelle von einen Neuen Eintrag das Feld Datum gleich mit den Aktuellen Datum ausgefült . Für die Letzte Änderung das Skript unter " Bei Änderung " vor den Speichern einstellen .

Ernst aus Österreich.
Message has been deleted

Peter Schwarz

unread,
Sep 3, 2023, 5:17:40 AM9/3/23
to mementodatabase
Danke für die zwei Antworten.

Ich hätte jedoch erwähnen sollen, dass ich die beiden von mir gewünschten Felder in bereits bestehende Datenbanken einfügen und somit auch nicht jeden Datensatz nochmals anfassen möchte. Ich dachte daher eher an ein JS-Script-Feld, dass sich analog
zum Berechnungsfeld sozusagen allein aktualisiert, wenn es Änderungen an der Datenbank-Struktur gegeben hat. Die entsprechenden Informationen müssen ja vorhanden sein, denn sonst könnte man ja nicht nach der Erstellungszeit sortieren.

Mein Versuch, dies mit
Field ("Erstellt").creationTime;
 
bzw. 
Field ("Last updated").Date.now().getTime();
  
zu lösen meldet den Fehler 'TypeError' zurück.

Die Frage ist also, ob es auf diesem Weg geht und wie die Variable für das letzte Änderungsdatum heißt.
 
Die von Bill vorgeschlagene Script-Variante für die Erstellung funktioniert zwar, jedoch nur bei der Neuanlage und hat  somit keinen wirklichen Vorteil gegenüber dem automatischen Eintrag 'Aktuelles Datum' für ein Datumsfeld.

Die zweite von Bill vorgeschlagene Script-Variante entry().set("Erstellt", entry().creationTime; für das Änderungsdatum
funktioniert auch dann nicht, wenn man im Ausdruck noch eine abschließende ')'  ergänzt ;=)

Ich hoffe daher auf eine weitere Idee von Euch beiden.

Schönen Sonntag noch und Danke vorab
Peter

Bill Crews

unread,
Sep 3, 2023, 3:21:06 PM9/3/23
to Peter Schwarz, mementodatabase
Field ("Erstellt").creationTime;

field, not Field.

 bzw. 
Field ("Last updated").Date.now().getTime();

Try field("Last Updated").Date.now();  // Another error on my part


Peter Schwarz

unread,
Sep 5, 2023, 3:38:51 AM9/5/23
to mementodatabase
Das Script meldet den Fehler 'TypeError: cannot call method "now" of undefined field.js#1" zurück ;=(

Er Mo

unread,
Sep 5, 2023, 2:31:05 PM9/5/23
to mementodatabase
Hallo
Wo hast du das Skript eingestellt ? JS Feld , Auslöser , Feldtyp Schaltfläche . Es gibt da verschiedene Schreibweisen .

Ernst

Peter Schwarz

unread,
Sep 5, 2023, 5:37:09 PM9/5/23
to mementodatabase
Ich habe ein Feld in der Datenbank als JavaScript-Feld angelegt, weil es ja bereits auch alle vorhandenen Datensätze entsprechend ergänzen soll und nicht nur neue oder einzelne geänderte ...

Bill Crews

unread,
Sep 5, 2023, 8:11:52 PM9/5/23
to Peter Schwarz, mementodatabase
Okay, großartig!  Ich schätze, es funktioniert jetzt?
__________

OK, great! I guess it works now?


Er Mo

unread,
Sep 6, 2023, 4:24:57 AM9/6/23
to mementodatabase
Hallo Peter
Mit einen JS Feld wird das nicht gehen , es Arbeitet nur wenn der Eintrag aufgerufen wird . Der einnzige Ort wo die Daten gespeichert sind ist im " Verlauf " . Ich kenne aber keinen Befehl der darauf zugreift . Ich würde die Bibliothek umbauen so das zumintest die Einträge die ab den Umbau erstellt werden Richtig eingetragen werden . Die Änderungen kommen , für Alle , wenn man änderungen macht .

Ernst

Bill Crews

unread,
Sep 6, 2023, 7:35:25 AM9/6/23
to Er Mo, mementodatabase
Bitte, Ernst, was sagst du?  Dass ein JavaScript-Feld nicht den Wert des Datums eines anderen Felds enthalten kann?  Und was hat die Geschichte damit zu tun?  Die Geschichte ist der einzige Ort, an dem aufbewahrt wird?
__________

Please, Ernst, what are you saying? That a JavaScript field can't contain the value of another field's date? And what does History have to do with it? History is the only place what is kept?


Bill Crews

unread,
Sep 6, 2023, 1:20:50 PM9/6/23
to Er Mo, memento...@googlegroups.com
In einem Skript kann man auf entry().creationTime;

Wenn Sie im Wiki über die Eingabemethoden hinaus scrollen, gibt es auch eine Reihe von Eigenschaften.

Vielen Dank für Ihre Klarstellung.
__________

In a script, one can reference entry().creationTime;

If you scroll past the Entry methods in the wiki, there are a number of properties, as well.

Thanks for your clarification.


On Wed, Sep 6, 2023, 09:26 Er Mo <ernst...@gmail.com> wrote:
Hallo Bill
Da sind viele Missverständnisse . Peter möchte das das Datum nachträglich mit Hilfe von JS Felder eingefügt wirt . Das Erstelldatum ist im "Verlauf " gespeichert . Ich kenne keinen Befehl der das Erstelldatum von Verlauf auslesen kann.

Hi Bill
There are a lot of misconceptions. Peter would like to add the date afterwards with the help of JS fields. The creation date is stored in the "History". I don't know of any command that can read the creation date of history

Ernst

Er Mo

unread,
Sep 6, 2023, 4:17:14 PM9/6/23
to mementodatabase
Hallo Bill
Mit deinen Befehl für das Erstelldatum konnt ich ein Skript machen das , Das Erstelldatum in eine Feld einträgt . Hast du noch einen Befehl für das Datum der Letzten Änderung ?

Hello Bill
Using your create date command I was able to make a script that puts the create date in a field. Do you have another command for the last modified date ?

Skript:

var e = entry()
var z =0
var lib =lib()
var ed = lib.entries()
var edl = ed.length
for(var f=0;f<edl;f++){
 var ersteld = ed[f].creationTime
 ed[f].set("Erstellt",ersteld)
 z++
}
message(z + " Einträge ")

Ernst

Bill Crews

unread,
Sep 6, 2023, 4:23:33 PM9/6/23
to Er Mo, mementodatabase
Yes, the Entry object peppery you seek is entry().lastModifiedTime. Attached is a screenshot depicting the Entry object properties, from the wiki.


Screenshot_20230906_162052_Firefox.jpg

Er Mo

unread,
Sep 6, 2023, 4:31:20 PM9/6/23
to mementodatabase
Danke Bill
Habe das Skript angepasst

Thanks Bill
I adapted the script

Skript:
var e = entry()
var z =0
var lib =lib()
var ed = lib.entries()
var edl = ed.length
for(var f=0;f<edl;f++){
 var ersteld = ed[f].creationTime
 ed[f].set("Erstellt",ersteld)

var ersteld1 = ed[f].lastModifiedTime
 ed[f].set("Geändert",ersteld1)

 z++
}
message(z + " Einträge ")


Ernst

Peter Schwarz

unread,
Sep 9, 2023, 5:33:52 AM9/9/23
to mementodatabase
Ich dachte, es sei eine Frage, die für die Experten ganz einfach zu beantworten sei. Hätte daher nicht erwartet, dass sich darüber ein so lebhafte Diskussion ergibt. Danke also für die viele Mühe. Ich werde Eure Vorschläge die nächsten Tage testen und dann berichten, ob es so funktioniert, wie ich mir das vorgestellt hatte.

Danke auf jeden Fall und schönes Wochenende
Peter

Bill Crews

unread,
Sep 9, 2023, 7:05:13 AM9/9/23
to Peter Schwarz, mementodatabase
Das Tolle an dem Forum ist, dass sich die „Experten“ gegenseitig unterrichten, während wir zusammenarbeiten, um Ihnen Antworten zu geben.
__________

What's really great about the forum is that the "experts" are teaching each other as we work together to get you your answers.

Peter Schwarz

unread,
Sep 12, 2023, 12:37:23 PM9/12/23
to mementodatabase
Also, es gibt Licht und Schatten zu berichten:
1. Das Feld "Erstellt" funktioniert wie gewünscht 
2. Das Feld "Geändert" wird mit der Ausführung des Scriptes mit dem gegenwärtig aktuellen Inhalt "Datum/ Zeit" gefüllt, also bspw: 12.09.2023/ 18:25
Das ist natürlich nicht wirklich sinnvoll. Es soll ja nicht die ggw. Zeit verwendet werden, sondern das Datum der letzten Änderung. Und das kann ja gestern oder vorige Woche gewesen sein. 
Ausserdem ändert das Script für das Feld "Geändert" den Inhalt aller Datensätze, sobald ich auch nur einen Datensatz ändere, was natürlich auch nicht gewollt ist. 
Wahrscheinlich steckt die Lösung irgendwo mittendrin in den bisherigen Ideen. Ich werde also weiter forschen, ob es eine Lösung gibt.

Er Mo

unread,
Sep 12, 2023, 2:50:53 PM9/12/23
to mementodatabase
Hallo Peter
Da haben wir ein GROßES Missverstäntnis . Das Skript ist dafür da das es die bestehenten Einträge ändert und NICHT für den " alltäglichen " gebrauch . Wenn deine Bibliothek  auf den Neuen Stand ist brauchst du das Skript nicht mehr . Für die Neuen Einträge solldest du die Struktur der Bibliothek ändern . Das Erstellungsdatum Feld Standatmäsig das Aktuelles Datum . Für die " Geändert " ein Skript das Beim Speichern das Aktuelle Datun einschreibt .

Ernst
Reply all
Reply to author
Forward
0 new messages