Menu

#105 Update Elexis 1.4 zu 2.1: DB-Feld tarmed.lastupdate fehlt

open
gweirich
None
5
2010-10-06
2010-08-23
Daniel Lutz
No

Beim Update von Elexis 1.4 zu 2.1 erschien die Fehlermeldung, dass das Feld "tarmed.lastupdate" nicht
existiere.

--------------Exception--------------
org.postgresql.util.PSQLException
ERROR: column "lastupdate" of relation "tarmed" does not exist
ch.elexis.data.PersistentObject.set(Unknown Source)
ch.elexis.data.TarmedLeistung.<clinit>(Unknown Source)
ch.elexis.data.ArzttarifFactory.createFromString(Unknown Source)
ch.elexis.data.PersistentObjectFactory.createFromString(Unknown Source)
ch.elexis.data.Verrechnet.getVerrechenbar(Unknown Source)
ch.elexis.data.Verrechnet.getBruttoPreis(Unknown Source)
ch.elexis.data.Verrechnet.getNettoPreis(Unknown Source)
ch.elexis.views.VerrechnungsDisplay.setLeistungen(Unknown Source)
ch.elexis.views.KonsDetailView.setKons(Unknown Source)
ch.elexis.views.KonsDetailView.access$000(Unknown Source)
ch.elexis.views.KonsDetailView$1.runInUi(Unknown Source)
ch.elexis.actions.ElexisEventListenerImpl$1.run(Unknown Source)
ch.elexis.Desk.start(Unknown Source)
-----------End Exception handler-----
12.07.2010, 20:45:08 |ERROR| - PersistentObject: Fehler bei: UPDATE TARMED SET Nickname=?, lastupdate=? WHERE ID='Version'(Nick=1.1.1)

Discussion

  • Daniel Lutz

    Daniel Lutz - 2010-08-23

    Log-Datei mit obigem Fehler

     
  • Daniel Lutz

    Daniel Lutz - 2010-09-01

    In TarmedLeistung Initializer:

        TarmedLeistung tlv = TarmedLeistung.load\("Version"\);
        if \(\!tlv.exists\(\)\) \{
            tlv = new TarmedLeistung\(\);
            tlv.create\("Version"\);
            tlv.set\(FLD\_NICK, VERSION\);
        \}
        VersionInfo vi = new VersionInfo\(tlv.get\(FLD\_NICK\)\);
        if \(vi.isOlder\("1.1.0"\)\) \{
            createOrModifyTable\(upd110\);
            tlv.set\(FLD\_NICK, VERSION\);
        \}
        if \(vi.isOlder\(VERSION\)\) \{
            createOrModifyTable\("Update TARMED set gueltigbis='20993112' where id='39.0305'"\);
            tlv.set\(FLD\_NICK, VERSION\);
        \}
    

    Mit diesem Codes werden die Updates ausgelassen, falls die Zeile mit ID "Version" in alten Datenbanken (Elexis < 2.0) noch nicht existiert. Falls die Zeile nicht existiert, wird sie mit einem Wert von "1.1.1" (VERSION) angelegt.
    Danach wird "vi" geladen. In diesem Fall hat "vi" bereits den Wert 1.1.1, so dass die Updates nicht durchgeführt
    werden.

    Der beiliegende Patch korrigiert das Problem.

     
  • Daniel Lutz

    Daniel Lutz - 2010-09-01

    Patch "CorrectUpdateOrder"

     
  • gweirich

    gweirich - 2010-09-05

    thx, ist drin

     
  • gweirich

    gweirich - 2010-09-05
    • assigned_to: nobody --> rgw_ch
    • status: open --> closed-fixed
     
  • Daniel Lutz

    Daniel Lutz - 2010-10-06

    Ich hatte leider meinen Patch zu wenig gut getestet. Es gibt einen Fehler, weil beim ersten tlv.set(FLD_NICK, VERSION_000); die Spalte "lastupdate" ja noch nicht existiert.

    Der beiliegende Patch sollte das Problem nun beheben.

     
  • Daniel Lutz

    Daniel Lutz - 2010-10-06
    • status: closed-fixed --> open
     
  • Daniel Lutz

    Daniel Lutz - 2010-10-06

    Patch zum Kommentar vom 2010-10-06 22:33:41 CEST

     

Log in to post a comment.