DMS Datenraum

Hotline Blog: Office Manager DMS

Dokumentenmanagement und digitale Archivierung

Juni
26
2025

Kopieren eines Datums aus anderem Datenfeld

Kategorie: Systempflege
Support-Recherche: SQL-Abfrage


Ich benötige ein kleines OMApi-Script, finde im Handbuch aber nur Einzelbefehle. Mir geht es um eine Programmschleife, die alle Datensätze durchläuft. Falls das von mir hinzugefügte Datenfeld „scandate“ befüllt ist, dann setzte „newdate“ gleich „scandate“.
Für Skripte mit Schleifen können Sie den integrierten Pascal-Interpreter verwenden. Die Office Manager API ist eher für Einzeiler gedacht. Beispiele finden Sie im OMDN.

SQL ist hier besser geeignet

Für die genannte Anforderung ist aber eine SQL-Anweisung besser, einfacher und schneller.

Bevor Sie SQL-Befehle senden, insbesondere wenn Sie diese nicht vollständig verstehen, legen Sie unbedingt eine Sicherungskopie der Datenbank an.

In diesem Beispiel werden massenhaft Daten geändert. Falls Sie ein revisionssicheres GoBD-Archiv nutzen, dann führen Sie dies nicht für die Standardfelder, wie z. B. das Belegdatum aus. Es würde bei einer Prüfung zu vielen Meldungen „Verstoß gegen die revisionssichere Aufbewahrung“ führen.

Für SQL sind die datenbankinternen Feldnamen erforderlich. Für das neue Zielfeld ist dies „newdate“ für das Scandatum „scandate“. Unter Datei | Datenbank | Anpassen | Felder definieren finden Sie die Liste mit den Feldnamen.

1. Wählen Sie in Office Manager DMS den Menü Datei | Optionen | Administrator. Das neue Hauptmenü Administrator wird sichtbar.

Zur Kontrolle die betroffenen Dokumente suchen

2. Öffnen Sie den SQL-Editor mit dem Menübefehl Administrator | SQL-Abfrage | SQL-Editor.

3. Geben Sie Folgendes in den Editor ein:

SELECT * FROM document
WHERE scandate IS NOT NULL

Dies sucht alle Datensätze in der Tabelle document, bei denen das Feld scandate „gefüllt“ ist, also Daten ungleich „nichts“ enthält.

4. Wählen Sie im Editor den Menübefehl Abfrage | Ausführen, die Dokumentdatensätze mit Scandatum werden gesucht.

5. Schließen Sie den Editor und überprüfen Sie die gefundenen Dokumente in der Tabelle. Ändern Sie die WHERE-Klausel bei Bedarf so, dass nur noch die Dokumente in der Tabelle gelistet werden, die Sie ändern möchten.

Daten kopieren

Jetzt wird es ernst – führen Sie den Befehl nur aus, wenn Sie sich sicher sind.

6. Öffnen Sie erneut den SQL-Editor (Administrator | SQL-Abfrage | SQL-Editor).

7. Geben Sie folgenden Code in den Editor ein. Ersetzen Sie aber bei Bedarf die dritte Zeile durch dieselbe WHERE-Klausel, mit der Sie zuvor gesucht haben.

UPDATE document
SET newdate=scandate
WHERE scandate IS NOT NULL

8. Wenn Sie sich sicher sind und Sie eine aktuelle Sicherungskopie der Datenbank haben, dann führen Sie den Befehl mit Abfrage | Temporäre Ergebnismenge verwenden aus. „Temporäre Ergebnismenge“, weil dieser Befehl keine Ergebnismenge (kein SELECT) liefert.

9. Schließen Sie den Editor und laden Sie die Daten neu aus der Datenbank, indem Sie auf Suchen klicken.




Noch keine Kommentare

Eigenen Kommentar schreiben oder eine Rückfrage stellen

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Sie können folgende HTML-Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>