• Guten Tag!

    Da natürlich auch unsere Installation über die Jahre immer weiter gewachsen ist, haben doch schon eine etliche Anzahl an Reports ihren Weg in den Navigationsbaum gefunden.
    Ich würde hier gerne wieder einmal aufräumen und wollte fragen, ob es eine Möglichkeit gibt, die "Report-Verwendung" auszuwerten?
    So dass ich die schon länger nicht mehr verwendeten Reports/Ordner erkennen und löschen kann?

    Ein paar Gedanken dazu:

    • Gibt es ein Logfile, aus dem ich solche Informationen extrahieren könnte?
    • Gibt es einen Report-Hitcounter?
    • Könnte ich so einen Hitcounter und evtl. ein "Last Access Timestamp" selber implementieren?

    Vielleicht gibt es ja auch sonst noch ein paar "manuelle Best Practices" und Erkenntnisse aus vergangenen Aufräumaktionen :)


    Mfg David

    • Offizieller Beitrag

    Hallo David,

    eingebaut haben wir eine solche Funktionalität nicht. Wenn Pythoncode ausgeführt wird (zum Beispiel bei Office-Berichten im before_report oder bei Listen mit List Controller im initialize) könnte man sich natürlich mit vtcapp.log behelfen und die Logdateien (oder Loggly) analysieren oder sonst eine Funktionalität implementieren, die einen Counter hochzählt oder die Verwendung loggt.

    Wenn solche möglichen Einsprungpunkte nicht vorliegen wird es denke ich schwierig.

    Beste Grüsse Tobias

  • Danke schon mal für die raschen Antworten!

    Meine Benennung war nicht ganz ideal, primär geht es uns tatsächlich "nur" um klassische Ordner.

    Somit müsste man vermutlich mit ListControllern arbeiten... dann habe ich ja jetzt einen Grund, mich mehr in die Thematik einzulesen - auch wenn es eher ein Zweckentfremden ist 😅

  • Ich würde gerne den Ansatz mit einem "HitCountListController" ausprobieren, jedoch fehlt mir auf Ordner die entsprechende Python-Funktion setkeyvalue.

    Hier einmal mein Python-Console-Output, zuerst auf einem Ordner, dann auf einem Planungsbearbeiter:

    Code
    >>> dir(vtcapp.getobjectbyid(2964858))
    ['Eval', 'IsTypeOf', '__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'checkright', 'delete', 'eval', 'evalocl', 'getmemfootprint', 'getmlvalue', 'istypeof', 'linkto', 'popsubscriber', 'pushsubscriber', 'setmemberoutofdate', 'setmlvalue', 'subscribetomember', 'unlink', 'unload']
    >>> dir(vtcapp.getobjectbyid(2972560))
    ['Eval', 'IsTypeOf', '__class__', '__delattr__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'addtag', 'checkright', 'delete', 'eval', 'evalocl', 'getkeybool', 'getkeycurr', 'getkeydate', 'getkeyint', 'getkeystring', 'getmemfootprint', 'getmlvalue', 'hastag', 'istypeof', 'linkto', 'popsubscriber', 'pushsubscriber', 'removetag', 'setkeyvalue', 'setmemberoutofdate', 'setmlvalue', 'setresourceplanvalue', 'subscribetomember', 'unlink', 'unload']

    Ist es technisch möglich, keys auf einem Ordner über Python zu setzen?

    • Offizieller Beitrag

    Sie können unseren neuen Online Model Browser konsultieren ;) https://www.vertec.com/ch/kb/der-vertec-model-browser/. Da sieht man zwar die Python Funktionen nicht, aber dafür die Members: keys wird auf Usereintrag eingeführt:

    Ordner erben nicht von UserEintrag, das sieht man auch im Modelbrowser im Superclass Feld, oder auch, grafisch aufbereitet, in https://www.vertec.com/ch/kb/modellordner/.

    Sie können aber freeReference oder auch bemerkung verwenden, die werden in Eintrag eingeführt.

  • Danke für die Info, das erklärt einiges.

    Somit muss ich die Informationen wohl in einer Zusatzklasse abspeichern.

    Hier mal mein aktueller Stand, vielleicht mag das ja mal jemand in ein Plugin giessen :)

    Bedingungen:

    • Zusatzklasse9 muss frei sein (ansonsten den Code + Konfiguration entsprechend anpassen)
    • Es wird noch in der Benutzergruppe Standardbenutzer die Berechtigung Alle auf Zusatzklasse9 benötigt. Ansonsten funktionieren die Reports für Nicht-Admin-User nicht mehr
    • Python-Script (siehe unten) registrieren
    • bei den entsprechenden Ordnern, die man registrieren will, den ListController <DeinGewaehlterPythonModulName>.HitCountController setzen. Habe es nur bei Ordnern getestet, noch nicht bei Links!
    • Früher oder später benötigt man noch einen Expression-Ordner auf Zusatzklasse9.allInstances, um die Daten auch anzuzeigen.
      • Einfachheitshalber in den Listeneinstellungen einfach eine Spalte mit der Expression keys einfügen.
      • Wer es aufgegliedert haben will, braucht zB keyint('total')
    • Sinnvolle Klasseneinstellungen für Zusatzklasse9:
      • Anzeige Klassenname: 'Hitcount'
      • Standardanzeige: bemerkung


    Wünsche viel Freude beim Aufräumen ;)

    • Offizieller Beitrag

    Sehr schön, danke auch fürs Teilen! Mein Input dazu:

    • In dem Fall können Sie gut Zusatzfelder nehmen auf der Zusatzklasse: da wird es ja nur eine limitierte Anzahl davon geben, höchstens so viele wie es Ordner gibt. Das wird von der Performance her auf das Gleiche rauskommen. So haben Sie die Zahl auch einfach auf dem UI ohne weiteres Customizing. Dito für den Namen des Ordners. So haben Sie auch einfach eine Liste erstellt mit diesen Objekten. Also auch den Usernamen, Monat etc.
    • Sie können die Objekte auch gut via OCL suchen, bei der Datenmenge.