Beiträge von Amadeo Vergés (Zühlke Engineering AG)

    Wir nutzen vermehrt die Python-library openpyxl um Daten aus Excel mittels Script direkt nach Vertec zu importieren.
    Dazu muss man selber die für die aktuelle Python-Version von Vertec gültige Version von openpyxl ins Vertec-Verzeichnis kopieren.


    Könnte Vertec diese (die jeweils gültige Version) openpyxl-lib in Vertec vorinstallieren?


    Für Interessierte hier ein sehr einfaches Script mit openpyxl das ich genutzt habe ein Feld (member) auf allen Mitarbeitern unserer Firma zu aktualisieren. In diesem Fall wusste, ich in welcher Excel-Spalte (nummer) sich die Daten befinden. Man kann aber auch über den Spaltennamen zugreifen und vieles mehr.


    Die Möglichkeit Zellen in Listen Expression-gesteuert einzufärben ist nützlich und hilfreich. Bei uns hilft dies Listenwerte die kontrolliert werden müssen, benutzerfreundlich zu gestalten (z.B. mit rot/grün-Hintergrundfarbe, etc.)


    Wenn die Zellenwerte an sich eine (komplexe) OCL-Expression sind, muss man jedoch diese 1:1 die die "Farbbedingung" übernehmen, wenn diese die Einfärbung steuern sollen.


    Gibt es es die Möglichkeit, über eine vordefinierte Variable einfacher auf den Wert der Zelle zuzugreifen, statt die OCL-Expression nochmals hier einzufügen?


    Wenn nein, wäre das eine Anregung für die Zukunft, hilft dies doch bei der "Wartung" von Listen, da nicht die gleiche Expression an mehreren Orten angepasst werden muss.
    Beispiel was ich meine (Expression an sich ist nicht von Bedeutung):

    OCL-Espression für die Liste sei:


    (planWertExt+planAuslagenWert+planSpesenWert).round


    Wenn ich nun die Hintergrundfarbe abängig von diesem Werte definiere, könnt das z.B.so aussehen:



    Was ich mir wünsche, wäre z.B. eine Variable "cellValue" mit der man dann die "Einfärbeexpression" so formulieren kann.
    cellValue enthält das Ergenis der Spalten expression.


    Ich habe ein Excel-Import-Script geschrieben, mit dem Vertec Objekte in einen jeweils neu angelegten "Importordner" (mit der entsprechenden OCL-Klasse) abgelegt werden.

    (im wesentlichen wird die boldID aus dem File gelesen und dann dass entsprechende Objekt in den Ordner gelegt. Über weitere im gleichen Excel mitgelieferte Werte kann ich dann die Objekte automatisiert in Vertec aktualisieren).

    Soweit so gut. Als Zugabe fürs Auge wollte ich das Icon der neu angelegten Ordner gleich mit dem entsprechenden Icon versehen. Der scheint nicht möglich zu sein. Ich kann den IconIndex eines Ordners wohl mit Python auslesen, nicht aber setzen.
    Habe ich was übersehen oder weshalb geht das nicht als einzige Ordnereigenschaft?

    Als Pojektleiter muss man beispielsweise die Leistungen eines MA auf seinem Projekt einsehen/prüfen können. Soll aber dessen Abwesenheiten (<> Leistungen) nicht einsehen dürfen. Darum haben wir diese entsprechend auf "deny" gesetzt. Darum überrascht es uns, das die Info trotzdem zugänglich ist.

    Wie gesagt. Lösung ist möglich (Ausblenden Leistungs-Liste und Wochen Liste), erschiesst sich aber nicht direkt. Darum wollte ich darauf hinweisen.

    Aus Datenschutzgründen in gewissen Ländern, darf/sollen die Abwesenheitsdaten eines Mitarbeiters nur für Ihn selber, den Vorgesetzten und die Personalabteilung einsehbar sein.


    Wir haben das mit den "Benutzer Gruppen" / Zugriffsrechten entsprechend gelöst, haben nun aber noch folgendes festgestellt:

    Sind beispielsweise für den Projektleiter die Abwesenheitsdaten eines Mitarbeiters gesperrt, sind diese trotzdem über die Wochen- und Leistungsübersicht und das i-Icon einsehbar.



    Dies als Hinweis, das man in diesem Fall den Zugriff auf die entsprechenden Listen auch unterbinden muss.

    Danke für die Bestätigung.
    Ja, wir führen den sogenannten "Employee Lifecylce" wo wir auf dem Bearbeiter die historisierte Liste alle Beförderungen und Mutationen führen.
    Ich muss schauen ob man da mittelfristig auch die UserRechte "loggen" kann.

    Vermutlich ist in dem Fall ein Eventscript, das uns ein Email sendet, wenn ein sensitives Recht erteilt wird, die einfachste Lösung.

    Bei Zühlke definieren die verschiedenen Personalabteilungen die Benutzerrechte von (neuen) Mitarbeitern.
    Nun möchten wir Admins gerne überwachen können oder infromiert werden, wenn gewisse Benutzergruppen zugewiesen wurden.


    Am liebsten wäre mir eine Liste welche z.B. die Zuweisung gewisser Benutzergruppen (z.B.) der letzten 24 h zeigt. Wir könnten die Daten dann per MailMonkey per Email versenden oder manuell prüfen.

    Es scheint jedoch keine Möglichkeit zu geben, das Änderungsdatum eines Links (Bearbeiter <-> Benutzergruppe) abzufragen.Irre ich mich oder hat jemand einen Tipp?


    Die Alternative ist ein Eventscript dass dann irgendwas macht, aber eben: Wir hätten gerne eine Liste.

    Hier das Script das ich erstellt habe.
    Anwendungszweck:

    • Man benötigt die Daten einer oder mehrerer Vertec-Listes (Ordner) automatisiert als CSV-Datei exportiert in einem definierten Verzeichnis
    • Mittels "Geplante Aufgaben" kann das Script nach Belieben automatisch ausgeführt werden (z.B. "jeden Tag morgen um 6 Uhr")
    • Im Script muss man einzig das Export-Verzeichnis und die ObjID (BoldID) der gewünschten Ordner eintragen.

    Das Scritp erzeugt automatisch die Spaltenüberschriften wie sie auch im Vertec-Ordner definiert sind.


    Hinweise:

    • Was man im Script noch optimieren kann: Die Fehlermeldungen des Scripts werden aktuell nur auf der Konsole ausgegeben. Aber das ist ein Script, dass man nach dem Aufsetzen sicher zuerst einmal testet.
    • Alternative zum Script: Man öffnet Vertec manuell, wählt den/die Ordner aus und drückt den "Export als Excel"-Knopf und speichert die Datei wo man sie haben möchte. Ich automatisiere eben gerne Routinetätigkeiten :)

    Bevor ich das Rad nochmals neu erfinde die Frage an die Runde:


    Ich weiss wie man mit einem Python-Script Vertec-Daten in ein CSV exportiert. Was ich nun gerne möchte ist ein generisches Python-Script, dass die Daten einer beliebigen Liste (z.B. definiert über die ObjID) als CSV exportiert. Im Prinzip dasselbe wie der Vertec-Button "Export to Excel" das tun, nur eben als Script.


    So könnte man einen Job definieren, der eine oder mehrere Listen als CSV in ein definiertes Verzeichnis exportiert, ohne dass man für jede Liste vorher noch die Abfrage und die Felder definieren müsste. Hat jemand eine Idee oder ev. schon Code zum Teilen?

    Performance bei Vertec ist etwas, um das man sich aktiv kümmern muss. Es ist einfach, mit eigenen Konfiguration etc. Vertec langsam zu machen.
    Bei uns ist das ein ständiges "Dranbleiben" (wie beim Unkraujäten :)). Wenn wir ein Performance-Issue haben, schauen wir uns das im Detail an, analysieren die Ursache und versuchen Optimierungen durchzuführen. Neben einer performanten Server-Umgebung (für unsere > 2000 User) gibt es eben einige von uns gewünschten Listen, bei dem man Queries optimieren konnte.
    Bei uns hat es sich gelohnt, gewisse Listen auf SQL umzustellen. Und man bezahlt eben mit Performance wenn man in Listen umfangreichere Bewegungsdaten jedesmal und für jeden Eintrag "rechnen" lässt.
    In einem unserer Anwendungsfälle stellen wir den Usern zwei Listen zur Verfügung:

    1. "schnell" mit etwas weniger Detail. Details bekommt man dann schnell, wenn man einen Eintrag öffnet.
    2. "langsamer" mit (sehr) vielen Details wenn man wirklich alles auf einen Blick braucht

    Die user haben die Wahl: Und wenn man eben die "langsame" List in diesem Fall braucht, startet man die Liste und holt sich parallel zum Aufbau einen Kaffee.