Workflows für wiederkehrende Aufgaben

Einfacher Workflow für Rechnungen

Es gibt Vorgänge, die uns immer wieder beschäftigen: Rechnungen bezahlen zu müssen gehört dazu. Geht es nur um eine schnelle Überweisung, wird dies möglichst gleich erledigt und ist somit vom Tisch. In einigen Fällen ist aber mehr zu tun; eine Rechnung muss zum Beispiel geprüft, bezahlt und archiviert werden.

Wenn ich meine Post durchgehe, erledige ich Kleinigkeiten sofort – für aufwändigere Dinge lege ich lediglich eine oder mehrere Tasks in Things an.

Für häufige Vorgänge, die in mehreren Schritten erledigt werden müssen, lohnt es, einen Workflow festzulegen. Unter Workflow soll hier einfach eine definierte Sequenz von Schritten verstanden werden. Einen solchen einfachen Workflow will ich hier vorstellen.

Als Beispiel benutze ich Arztrechnungen – aus Kundensicht. Die durchzuführenden Schritte sind einfach und anschaulich, und sicher auch den meisten vertraut. Natürlich lässt sich die Vorgehensweise auf komplexere Vorgänge übertragen.

Für jeden Schritt wird eine Task in Things angelegt. Wahlweise ließen sich diese Tasks auch in einem Projekt bündeln; dies ist für größere und langwierigere Vorgänge zu empfehlen. Für unser einfaches Beispiel sollen die isolierten Tasks genügen.

Der Workflow

Die durchzuführenden Schritte:
1. Rechnung prüfen
2. Rechnung überweisen
3. Rechnung archivieren
4. Prüfen, ob die Rechnung bei der Krankenkasse eingereicht werden sollte.

Da es lästig ist, für jede Rechnung vier Tasks anzulegen, wollen wir dies automatisieren. Dazu bietet sich AppleScript an.

Das Script

Im Anhang ist ein entsprechendes Script zu finden. Für die Verwendung werden einige kleine Anpassungen nötig sein; deshalb hier eine kurze Führung durch den Code. Das Script gliedert sich in vier Teile:
* Konstanten zur Konfiguration.
* Abfrage einer Bezeichnung für die Rechnung.
* Erzeugen der Tasks in Things.
* Benachrichtigung über das erfolgreiche Anlegen der Tasks via Growl.

Konstanten

dueDate erlaubt die Festlegung eines Zieldatums für den Vorgang. Es wird auf das aktuelle Datum gesetzt – die Task wäre also am gleichen Tag zu erledigen. Es mag sinnvoll sein, dieses Datum einige Tage in die Zukunft zu setzen. Falls kein Zieldatum gebraucht wird, kann die Konstante entfernt werden; die Verwendung der Konstante bei der Taskerzeugung wird dann ebenfalls nicht mehr benötigt.

Mit der Konstante theArea lässt sich festlegen, in welchem Bereich die Tasks angelegt werden sollen.

Die Eingabe

Der Dialog erwartet die Eingabe eines kurze Textes, der dann in den Titel jeder Task übernommen wird und so den konkreten Kontext liefert.

Anlegen der Tasks

Nach Eingabe dieses Idents werden endlich die Tasks angelegt. Die Tasks für die ersten drei Schritte werden in einer Schleife erzeugt; sie bestehen lediglich aus einem Titel und dem Zieldatum. Sollen weitere Tasks erzeugt werden, reicht ein entsprechender Eintrag in der Variablen tasks.

Die vierte Task zur Entscheidung, ob die Rechnung eingereicht werden soll, ist etwas aufwändiger zu erzeugen. Ausser Titel und Zielatum erhält sie einen link auf eine Tabelle, die in DEVONthink archiviert ist. In dieser Tabelle wird der Rechnungsbetrag eingetragen. Ein dort hinterlegter einfacher Algorithmus berechnet dann, ob eine Einreichung bei der Krankenkasse Sinn macht.

Der link auf die Tabelle ist hier direkt in die Variable URL eingetragen. Diese URL erhält man über das Kontextmenü in DEVONthink (Verweis kopieren). Dies lässt sich sicher  eleganter lösen, zeigt aber die Möglichkeiten, die sich durch die Verknüpfung von Things und DEVONthink ergeben.

Bei der Bearbeitung dieser Task reicht jetzt ein Klick auf diesen link, um die Tabelle in DEVONthink zu öffnen.

Nachricht via Growl

Der letzte Block des Scripts gibt eine Meldung via Growl aus. Wird diese nicht gewünscht, kann dieser Block einfach komplett gelöscht werden.

Fazit

Durch die Verwendung eines Workflows werden häufig wiederkehrende Arbeiten effizienter und weniger fehleranfällig erledigt. Das automatische Erzeugen und Anstoßen dieses Workflows erleichtert das Leben noch ein bißchen mehr – und Spaß macht es auch, wenn erst mal alles läuft.


(* Start workflow for processing of health care invoices
2011-12-30 sbraun
*)

-- we assume that the tasks shall be performed during the current day
set dueDate to current date

-- add tasks to project "Finanzen"
set theArea to "Finanzen"

-- URL of the spread sheet
set theURL to "x-devonthink-item://25303449-E61A-491C-AF46-BB157383E8CD"

-- ask user for Release
display dialog "Bitte Namen / Ident für Rechnung eingeben" default answer ¬
	"Rechnung" buttons ¬
	{"OK", "Cancel"} default button 1 ¬
	with icon note
if button returned of result = "OK" then
	set theIdentifier to "Rechnung " & text returned of result
end if
-- create tasks in Things
tell application "Things"
	set tasks to {"Rechnung überweisen: " & theIdentifier, "Scannen und taggen: " & theIdentifier}
	repeat with task in tasks
		set newTask to make new to do with properties {name:task, due date:dueDate} at beginning of area theArea
		move newTask to list "Today"
	end repeat
	-- this task gets some specific properties
	set newTask to make new to do with properties {name:"Tabelle updaten: " & theIdentifier, due date:dueDate} at beginning of area theArea
	set URLString to "[url=" & theURL & "]Tabelle[/url]"
	set notes of newTask to "Link zur Tabelle" & linefeed & URLString
	move newTask to list "Today"
end tell
-- send completion message per growl
tell application "Growl"
	-- register once, but it's also ok to register multiple times
	register as application "Start Rechnungs Workflow" all notifications {"workflow"} default notifications {"workflow"}
	notify with name "workflow" title "Tasks erzeugt" description "Tasks für Rechnungs Workflow wurden erzeugt" application name "Start Rechnungs Workflow"
end tell

5 Responses to Workflows für wiederkehrende Aufgaben

  1. Pingback: Projektvorlagen mit Things anlegen und nutzen « Denkenswert

  2. derueDirk sagt:

    Sehr interessanter Ansatz🙂.
    Wenn ich blos nicht so eine AppleScript-Abneigung hätte … Ich vermisse auch in Things2 so etwas wie Aufgabensequenzen und Sub-Projekte. Danke für die Anregung für den Workaround.

    • sbraun58 sagt:

      AppleScript ist sicher auch nicht meine Lieblings-Programmiersprache😉 Aber für solche Dinge kommt man damit eben am schnellsten zu einem Ergebnis.

      Richtige Sequenzen würde ich mir auch wünschen. Andererseits kommt man dann schon wieder in die Gefilde von Projektmanagement-Software. Die Definition der Abhängigkeiten kann schnell eine gewisse Komplexität bekommen, wenn man nicht aufpasst. So gesehen ist mir eine schlanke Lösung dann wieder lieber.

      Ist halt ein stetiger Balanceakt, was man an features in ein Produkt rein nimmt und was nicht. Generell schätze ich das Produktmanagement von Cultured Code – sie konzentrieren sich auf die Kernfunktionalität und die machen sie dann gut.

      • derueDirk sagt:

        Ja, das stimmt mit der schwierigen Abwägung zwischen möglicher Komplexität der Prozesse und Einfachheit der Bedienoberfläche. So bin ich von Things zu OmniFocus und wieder zurück gewechselt. Inkl. Warten auf ein zeitgemäßes Syncing. Vielleicht freunde ich mich ja doch noch etwas mit Applescript an, mein Leben mit DEVONthink profitiert davon ja auch schon.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: