Ankündigung

Einklappen
Keine Ankündigung bisher.

AppProps in Velocity auslesen

Einklappen
X

AppProps in Velocity auslesen

Einklappen
  • Filter
  • Zeit
Alles löschen
neue Beiträge

  • AppProps in Velocity auslesen

    Hallo zusammen,

    ich habe grade eine alte Applikation auf 19.03. hoch gezogen und habe festgestellt, das ich in Velocity die AppProps nicht mehr Laden kann.

    Bisher habe ich das immer so gemacht:
    Code:
    $Loader.getDataCollection().getProperties()
    Ich könnte jetzt natürlich die Datenbank direkt abfragen, aber da gibt es doch sicher eine Möglichkeit das anders zu lösen.

    edit.
    Ich habe jetzt mal versucht über rtCache an die Properties zu kommen. Leider liefert das auch nur null.

    Code:
    $rtCache.getApplication("GUID der Applikation").getProperties()

  • #2
    Eine sehr liebe Kollegin aus unserer Entwicklung hat sich mal auf die Suche nach der Methode getProperties gemacht und folgendes herausgefunden:

    Erste gute/schlechte Nachricht(je nach Interpretation):
    Die Methode getProperties() war schon seit IX 4 deprecated(wie man bspw. in der Doku der 18.03 sehen kann http://docs.intrexx.com/intrexx/vers...ollection.html) und ist nun endgültig rausgeflogen. Es gibt aber noch die Methode getPropertiesVH(), die allerdings andere Objekte zurückliefert. D.h. man muss das Skript etwas anpassen.

    Nächste gute Nachricht:
    Seit IX 19.03 gibt es ein tolles cooles Kontextobjekt $Binding, über das man auf Bindings zugreifen kann. Also eben auf alle Bindings, die zum Zeitpunkt des Zugriffs zur Verfügung stehen. Der Aufruf, mit dem man also in Zukunft arbeiten sollte, sieht so aus:
    $Binding.getValue("systemDataGroup.dataField['SYSDGFIELD_GUID']", "defaultvalue").asString()
    Weiterer Vorteil hier: Man kann auch auf Systemdatengruppen anderer Applikationen zugreifen. Dafür einfach nach systemDataGroup noch die APP_GUID angeben:
    $Binding.getValue("systemDataGroup['APP_GUID'].dataField['SYSDGFIELD_GUID']", "defaultvalue").asString()

    Die Dokumentation der
    IIxValue-Objekte, die von $Binding.getValue() zurückkommen, findet man hier: http://docs.intrexx.com/intrexx/vers.../IIxValue.html
    Die Namen/Formeln der Bindings selbst findet man hier: https://onlinehelp.unitedplanet.com/....html#Bindings

    (Die Doku des Kontextobjekts $Binding kommt noch)

    Bindings sind alles in allem ein sehr cooler und vor allem einheitlicher Weg wie man in der Zukunft an diverse Werte rankommt.
    Dritte gute Nachricht: Sowohl in Velocity, Groovy als auch in Kontrollen und Parametern funktioniert dieser Zugriff gleich.

    Ich hoffe unsere Entwicklerin konnte dir weiterhelfen ;-)

    Kommentar


    • #3
      Hallo Martin,

      danke für die Antwort.
      Ich hab jetzt versucht die Daten auszulesen einmal über getPropertiesVH() und auch über $Binding.getValue("systemDataGroup.dataField['SYSDGFIELD_GUID']", "defaultvalue").asString()

      Aus irgendeinem Grund kriege ich aber immer null für die Werte.
      Ich weiß nicht ob es vll. daran liegt, dass die AppProps in meiner Applikation aussehen wie eine normale Datengruppe.

      Kommentar

      Lädt...
      X