Zum Inhalt springen
>_marc-oltersdorf.de

iMedOne: Drucker-Umstellung direkt über die Datenbank

Marc Oltersdorf 2 Min. Lesezeit aktualisiert 18.10.2026

Bei einer krankenhausweiten Druckerumstellung mit neuem Printserver müssen nicht alle Druckerverknüpfungen in iMedOne von Hand geändert werden: Zwei Update-Befehle auf die Tabellen lnkreportwsprinter und TSYPRINTSETUP erledigen das direkt in der Datenbank.

$ git log --graph Der Weg zur Lösung

  1. Problem Hunderte Druckerzuordnungen, neuer Printserver

    Jeder Drucker im Haus bekommt einen neuen UNC-Pfad; der iMedOne Admin kennt nur die Einzelbearbeitung.

  2. Erkenntnis Der Pfad steht in zwei Tabellen

    lnkreportwsprinter und TSYPRINTSETUP speichern den Druckerpfad als Text – TSYPRINTDEFCONFIG braucht keine Änderung.

  3. Lösung Zwei UPDATEs je Drucker

    Alten durch neuen Pfad ersetzen, vorher per SELECT die Treffer prüfen und die Tabellen sichern.

Wir haben im kompletten Krankenhaus die Drucker ausgetauscht. In diesem Zuge wurde auch ein neuer Printserver installiert. In iMedOne hängen Druckerzuordnungen an Formularen, Arbeitsplätzen und Druck-Setups – jede einzeln im iMedOne Admin anzufassen hätte Tage gedauert. Stattdessen haben wir die Umstellung direkt in der Datenbank gemacht: zwei Update-Befehle, die den alten Druckerpfad durch den neuen ersetzen.

Das Problem

iMedOne speichert Drucker als UNC-Pfad in der Form \\printserver\druckername. Mit dem neuen Printserver und den neuen Druckern ändern sich beide Teile des Pfads, und zwar für jeden Drucker im Haus. Die Oberfläche kennt nur die Einzelbearbeitung je Zuordnung; eine Funktion „Drucker ersetzen“ gibt es dort nicht.

Die betroffenen Tabellen

Angepasst werden die Tabellen lnkreportwsprinter (Zuordnung von Berichten und Arbeitsplätzen zu Druckern) und TSYPRINTSETUP (die Druck-Setups).

Die Umstellung

Mit folgenden Update-Befehlen konnten wir die ausgetauschten Drucker schnell auf die neuen, am gleichen Standort genutzten Drucker umstellen:

UPDATE lnkreportwsprinter SET printercode = '\\neuerprintserver\drucker-neu' WHERE printercode LIKE '\\alterprintserver\drucker-alt';
UPDATE TSYPRINTSETUP SET printername = '\\neuerprintserver\drucker-neu' WHERE printername LIKE '\\alterprintserver\drucker-alt';

Je Drucker ein Paar dieser Befehle; bei vielen Druckern lohnt sich eine Zuordnungsliste alt → neu, aus der die Befehle erzeugt werden.

Und TSYPRINTDEFCONFIG?

Zusätzlich gibt es noch die Tabelle TSYPRINTDEFCONFIG. Sie verknüpft einzelne Drucker-Setups mit den einzelnen Rechnern. In der alten Formularzuordnung zu Druckern ist dort keine Änderung nötig.

Warum das funktioniert

iMedOne löst den Drucker zur Laufzeit über den gespeicherten Pfad auf; es gibt keinen zweiten Verweis, der mit dem Pfad in Einklang bleiben müsste. Steht in printercode bzw. printername der neue UNC-Pfad, druckt die Anwendung beim nächsten Druckauftrag auf den neuen Drucker – ohne dass in der Oberfläche etwas nachgezogen werden muss. Die Druck-Setups in TSYPRINTSETUP bleiben bestehen, nur ihr Ziel ändert sich.

Stolperfallen

  • Erst SELECT, dann UPDATE: Dieselbe WHERE-Bedingung zuerst als SELECT ausführen. Trifft sie mehr Zeilen als erwartet, ist der Pfad nicht eindeutig – etwa weil ein Druckername Präfix eines anderen ist.
  • Platzhalter in LIKE: _ und % sind in LIKE Platzhalter. Enthält ein Druckername einen Unterstrich, trifft LIKE auch ähnliche Namen. Wenn der Pfad exakt bekannt ist, ist = die sicherere Wahl.
  • Sicherung und Transaktion: Die beiden Tabellen vor dem Eingriff sichern und die Updates in einer Transaktion fahren, die man bei einer falschen Trefferzahl zurückrollen kann.
  • Der Drucker muss auf dem Client erreichbar sein: Der neue UNC-Pfad hilft nur, wenn der Arbeitsplatz den Drucker vom neuen Printserver auch verbinden kann – Freigabe, Rechte und Treiber vorher prüfen.
  • Außerhalb der Betriebszeit: Druckaufträge, die genau während der Umstellung laufen, können auf den alten Pfad gehen. Besser in einer ruhigen Zeit umstellen und danach ein Testformular je Standort drucken.

Hat dir das geholfen?

RSS abonnieren

$ ls ../ Passt dazu