Mit der neuesten Version des TaxViewers, V. 3.5.4, steht nun das Objekt zur Kommunikation mit der Middleware direkt in IronPython-Events zur Verfügung. Dadurch ist es möglich, beispielsweise das ausgewählte Dokument mit nur einem Klick zur Dauerakte zu machen (entsprechendes Backend vorausgesetzt):
import time
import clr
clr.AddReference("ECMind.Solution.TaxViewer.DTOs")
from ECMind.Solution.TaxViewer.DTOs import DocumentUpdate
def main():
if not active_document_window:
toast(
"Kein Dokumentfenster",
"Es ist kein Dokumentfenster ausgewählt bzw. geöffnet.",
10
)
return
doc = active_document_window.CurrentDocument
person_type = get_person_type(active_document_window.TaxSubject)
doc.Permanent = not doc.Permanent
du = DocumentUpdate()
du.Id = doc.Id
du.Permanent = doc.Permanent
logger.Info(f"Updating {du.Id} with Permanent = {du.Permanent}.")
mq.Update(f"{person_type}Document", du)
toast(
"Daueraktenstatus geändert",
"Dokument ist nun eine Dauerakte." if doc.Permanent else "Dokument ist nun keine Dauerakte mehr.",
5
)
time.sleep(3)
navigation_window.RefreshData(True)
main()
Wie Ihr hier seht, importiere ich zunächst die DTOs
, Data Transfer Objects, des TaxViewers, um später ein neues DocumentUpdate
-Objekt instanzieren zu können.
Einbinden lässt sich dies dann über die IronPython.xml
wie bekannt:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Scripts>
<Script>
<MenuGroup>Hilfsmittel</MenuGroup>
<File>toggle_permanent_file.py</File>
<Title>Daueraktenstatus ändern</Title>
<Icon>star</Icon>
<Filter>EDIT</Filter>
<Keys>Control, Shift, D</Keys>
</Script>
</Scripts>
Nebenbei spannend an dieser Konfiguration: Neu steht hier im Customizing die Option zur Verfügung, Skripte mit Tastenkombinationen zu versehen (Keys
). Dies kann nur funktionieren, wenn es auch eine MenuGroup
gibt, da dies Tastenkombinationen im Hauptmenü erzeugt: