ActiveMQ-Messages aus TaxViewer-Skripten auslösen ab Version 3.5.4

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:

1 „Gefällt mir“