Automatisieren von Arbeitsabläufen

Im Alltag gibt es Arbeiten, die immer wieder anfallen. Solche Arbeiten sind oft lästig und zeitraubend.
Anhand meines Workflows für Blogartikel will ich zeigen, wie sich mit etwas Automatisierung das Leben erleichtern lässt. Dieser Workflow ist recht einfach und leicht nachvollziehbar. Die Vorgehensweise ist natürlich auf andere, auch komplexere Abläufe übertragbar.

Mein Workflow

Ein Artikel entsteht in drei Phasen. In der ersten Phase schreibe ich den Text in einem Editor. Bin ich mit dem Inhalt soweit zufrieden, übertrage ich ihn nach WordPress. Dort kümmere ich mich um das Layout und ergänze Bilder sowie links. Die letzte Phase ist dann das posten des Artikels.
Wenn ich einen Artikel plane, lege ich mir in Things für jede dieser Phasen eine Task an. Zusätzlich erzeuge ich in einem Ordner meiner Dropbox eine leere Datei für den Rohtext.
Habe ich mich schon für ein konkretes Datum für das Posting entschieden, werden die Fälligkeitsdaten der Tasks entsprechend gesetzt.

Die Automatisierung

Um diese vorbereitenden Arbeiten einfacher zu machen, habe ich ein kleines Script geschrieben (siehe Anhang). Dieses rufe ich mit dem Arbeitstitel des Artikels auf. Das Script erzeugt als erstes die leere Datei mit dem Titel als Dateinamen. Dann legt es in Things ein Projekt mit eben diesem Namen an, in dem anschließend drei Tasks für die Phasen erzeugt werden. In der Task für das schreiben des Rohtextes wird ein link auf die neue Datei erzeugt. So kann ich direkt aus Things heraus den Editor starten und anfangen zu schreiben.

Bild 1 zeigt das Projekt in Things, Bild 2 die Task mit dem erzeugten link. Der link auf das script sowie der Text wurden manuell ergänzt.

Bild 1 - Das erzeugte Projekt mit den Tasks

Bild 2 - Hier ist der erzeugte link auf die Textdatei zu sehen

Das Script

Am einfachsten lässt sich auf dem Mac solch eine Aufgabe mit AppleScript lösen. Es ermöglicht den einfachen Zugriff auf das Betriebssystem und wird von vielen Anwendungen gut unterstützt, so auch von Things.

Das vollständige Script ist im Anhang zu finden.

Das Script besteht aus mehreren Blöcken. Es beginnt mit zwei Parametern, die eine Anpassung an die eigene Umgebung ermöglichen.

theArea kann auf den Bereich in Things gesetzt werden, dem das neue Projekt zugeordnet sein soll. Dazu muss einfach der Name des Bereichs zugewiesen werden. Für einen Bereich namens Arbeit würde dies so aussehen:

set theArea to “Blog Denkenswert”

Der zweite Parameter, thePath, gibt an, wo die neue Textdatei erzeugt werden soll.

Im ersten Programmblock wird jetzt mit display dialog der Titel des Artikels vom Anwender erfragt. Der Titel ist anschließend in der Variablen theTitle zu finden.

Als nächstes wird die Textdatei erzeugt. Dies geschieht in dem Block, der mit tell application “SystemEvents” geklammert ist. Hier bereiten wir auch schon den link für das einbinden in unsere Task vor (linkToFile).

Jetzt folgt die Erzeugung des Projektes und der Tasks in Things. Welche Tasks erzeugt werden, wird über die Variable steps gesteuert. Momentan sind das die Tasks für schreiben, fertig machen und posten des Artikels. Jede Task wird durch ein Objekt mit mehreren Attributen definiert.

  • id enthält den Namen der Task (dieser wird später noch um den Titel erweitert!).
  • todayList kann auf den Wert “true” gesetzt werden, um die Task in Things der Liste “Heute” hinzuzufügen. Ansonsten wird sie in der Liste “Nächste” auftauchen.
  • notes erlaubt die Konfiguration eines Textes für die Notiz der Task. In der Task für schreiben wird hiermit der link auf die Textdatei eingefügt.

Das Projekt selbst wird im vorgegebenen Bereich innerhalb der Liste “Irgendwann” erzeugt. Wurde für eine Task allerdings todayList mit true konfiguriert, erscheint das Projekt in der Liste der aktiven Projekte, da bereits mit der Arbeit angefangen werden kann.

Zum guten Schluss wird im letzten Block noch eine Erfolgsmeldung per Growl ausgegeben. Dies ist natürlich optional. Ist kein Growl installiert, oder stört die Meldung, kann dieser komplette Block einfach gelöscht werden.

Fazit

Mit wenigen Zeilen AppleScript lassen sich lästige Aufgaben oft wesentlich angenehmer gestalten.
Das hier beschriebene Script lässt sich als Vorlage zur Erzeugung beliebiger Projekte in Things verwenden, die immer wieder gebraucht werden. Auch eine Verknüpfung mit DEVONthink lässt sich so recht einfach erreichen.
Vielleicht hilft dieser Artikel dem ein oder anderen, sich das Leben etwas leichter zu machen.

Über Anmerkungen, Anregungen und Verbesserungsvorschläge würde ich mich – wie immer – freuen!

Anhang

Hier noch einmal das komplette script. Zum Herunterladen bitte diesen link benutzen.

(* Start workflow for a blog article.

Creates an empty text file for the article and a project containing some configurable tasks for the required steps.
The project will be moved to list "Someday". In case one of the tasks is configured to show up in "Today", the project will be moved to "Next".
If you don't have Growl or you dont't want notifications please remove the block 'tell application "Growl"'.

The script allows for / needs some configuration.
  theArea: specify the Things area your tasks shall be assigned to.
  thePath: specify the path where the initial file for your text shall be created.
  steps: the tasks that shall be created. See section 'tell application "Things"' for more details.

Known issues:
- The link generated using filepath does not use the specified label, but the base name of the file. No big issue for me, just a miracle :-)

2011-12-30 sbraun
sb@action.ms
https://denkenswert.wordpress.com
*)

-- specify area to assign the project to
set theArea to "Blog Denkenswert"

-- specify path for creation of article text file
set thePath to "Macintosh HD:Users:sb:Dropbox:Documents:Business:Blog denkenswert"

-- ask user for title
display dialog "Bitte Titel des Artikels eingeben" default answer ¬
	"Artikel" buttons ¬
	{"OK", "Cancel"} default button 1 ¬
	with icon note
if button returned of result = "OK" then
	set theTitle to text returned of result
end if

tell application "System Events"
	set theFile to thePath & ":" & theTitle & ".txt"
	set newArticle to open for access file theFile with write permission
	write "#" & theTitle to newArticle
	close access newArticle
	set fileInfo to properties of alias theFile
	set filePath to POSIX path of fileInfo
	set linkToFile to ("[filepath=" & filePath & "]link zur Datei[/filepath]")
end tell

-- create tasks in Things
tell application "Things"
	(* Configure the tasks to create.
        Each record consists of these fields:
           - id: name of the workflow step. Will be appended to the task identifier
           - todayList: set to true if this task shall be created in the Today list
           - notes: any string that shall go into the task's note section.
      *)
	set steps to {{id:"schreiben", todayList:false, notes:linkToFile}, {id:"fertig machen", todayList:false, notes:null}, {id:"posten", todayList:false, notes:null}}
	set newProject to make new project at beginning of area theArea
	set name of newProject to "Artikel " & theTitle
	move newProject to list "Someday"
	repeat with step in steps
		set newTask to make new to do at beginning of project (name of newProject)
		set name of newTask to "Artikel " & theTitle & " " & id of step
		if notes of step is not null then
			set notes of newTask to (notes of step)
		end if
		if todayList of step is true then
			move newProject to list "Next"
			move newTask to list "Today"
		end if
	end repeat
end tell-- notify user after completion
tell application "Growl"
	-- register once, but it's also ok to register multiple times
	register as application "Start Blog Workflow" all notifications {"Setup"} default notifications {"Setup"}
	notify with name "Setup" title "Tasks erzeugt" description "Workflow für Artikel " & theTitle & " ist aufgesetzt." application name "Start Blog Workflow"
end tell

One Response to Automatisieren von Arbeitsabläufen

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

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: