Seiten

Herzlich willkommen im technischen Blog der MindBusiness GmbH
In diesem Blog veröffentlichen wir praxisnahes Know-how, neue Erkenntnisse und Erfahrungen zu Microsoft SharePoint- und Office-Themen direkt aus unserer Berater-, Trainer- und Entwickler-Praxis. Hier finden Sie interessante Lösungen und neue Ideen zu den verschiedensten Anforderungen und Problemen. Unseren News-Blog finden Sie unter newsblog.mindbusiness.de/newsblog. Wir wünschen Ihnen viel Spaß beim Lesen und Stöbern und freuen uns auf den Austausch mit Ihnen.

Workflow: Dokumentname entsprechend Attributen setzen

Gerade hatten wir folgende Anforderung:

  • Beim Hochladen von Dokumenten in eine SharePoint-Dokumentbibliothek werden in einigen Zusatzspalten Informationen eingetragen (z.B. Autor, Dokumentart).
  • Aus diesen Spalten sowie aus dem Erstellungsdatum soll nun der Dateiname in der Bibliothek automatisch gesetzt werden.
  • Das Erstellungsdatum soll dabei 6-stellig sein im Format DDMMJJ.
  • Der Workflow soll auch bei nachträglichen Änderungen in diesen Attributen den Dateinamen anpassen.

Die Anforderung soll mit einem SharePoint Designer-Workflow umgesetzt werden.

Beim Umsetzen sind wir auf einige Fallen gestoßen:

  • Wie kann das 6-stellige Datum automatisch aus dem Erstelldatum ermittelt werden
  • Für Workflows gibt es zwei Startbedingungen:
    - Starten bei einem neuen Element
    - Starten bei Änderungen
  • Wird die Option "Neu" verwendet, wird der Workflow unmittelbar nach dem Hochladen ausgeführt, d.h. bevor der Anwender die Attribute setzen kann!
  • Reagiert der Workflow auf beide Startbedingungen, ändert der unmittelbar gestartete Workflow das Dokument und startet damit den Workflow neu, da ja eine Änderung eingetreten ist.
  • Zum Einen muss nun vermieden werden, dass mit jeder Änderung der Workflow sich selbst neu startet.
  • Zum Anderen muss der Workflow so lange warten, bis der Anwender tatsächlich die Attribute eingetragen und auf "Einchecken" geklickt hat.

Wir konnten diese Anforderungen in einem einzigen Workflow unterbringen mit folgenden Einstellungen:

Erstelldatum

Dies war noch die einfachere Übung. Wir verwendeten dafür eine zusätzliche berechnete Spalte in der Bibliothek mit folgender Formel:

=(TEXT(TAG(Erstellt);"00")&TEXT(MONAT(Erstellt);"00")&RECHTS(TEXT(JAHR(Erstellt);"0000");2))

Der Workflow

Wir erstellten einen neuen Workflow mit den Startoptionen:

  • … wenn ein neues Element erstellt wird
  • … wenn ein Element geändert wird

1. Workflowschritt

Hier wird die Aktion "Dynamische Zeichenfolge erstellen" verwendet, die den Dateinamen wie oben beschrieben zusammenbaut. Ansonsten keine Bedingungen oder Aktionen.

Dieser Workflow startet ja bei jeder Änderung des Dokuments, wir möchten den Workflow (mit der gleich folgenden Bedingung) jedoch sofort abbrechen, wenn sich die der Dateiname nicht ändern soll.

2. Workflowschritt

image

Zuerst wird geprüft, ob der bisher verwendete Dateiname ungleich der im vorigen Schritt erstellten Variablen ist. Wenn ja, wird der Workflow angehalten, bis im Feld Autor eine Eingabe erfolgt (diese und die weiteren für den Dateinamen benötigten Spaltes sollten als Pflichtfelder definiert sein).

Damit wird beim ersten Hochladen sicher gestellt, dass der Workflow nicht einfach "weiterrennt".

Anschließend wird eine neue dynamische Zeichenfolge mit den gleichen Eigenschaften wie in Schritt 1 beschrieben erstellt, jedoch in einer zweiten Variablen gespeichert.

Dann wird das Feld "Name" in der Dokumentbibliothek mit der gerade erstellten Variable aktualisiert (damit wird vermieden, dass beim Neu erstellen der erste Workflow schon eine "sinnlose" Änderung des Dateinamens vornimmt, da dieser ja erst mit den Attributen Sinn macht).

Zur Kontrolle werden noch entsprechende Einträge in die Verlaufsliste vorgenommen.

Bei späteren Änderungen der Attribute braucht nicht mehr auf den Autor gewartet werden, die Aktualisierung kann direkt vorgenommen werden.

Klingt verzwickt? Am besten mal selbst ausprobieren!

Übrigens ist dieser Workflow auch geeignet, wenn z.B. über die Explorer-Ansicht Dateien in die Bibliothek kopiert werden. Der Workflow wird für die einzelnen Dokumente gestartet und wartet, bis Autor (oder ein entsprechendes Feld) vom Anwender gesetzt wird. Dann wird der Dateiname automatisch vergeben.

Wir haben allerdings nicht getestet, wie die Performance sich verhält, falls ein Anwender ganze Verzeichnisse mit vielleicht hunderten von Dokumenten auf einmal über den Explorer hochlädt. Wir empfehlen, die Anwender darauf hinzuweisen, dass mit Mehrfachupload/Explorer-Ansicht vorsichtig umgegangen wird.

1 Kommentar zu Workflow: Dokumentname entsprechend Attributen setzen

  • annek

    Leider wurde die Frage “Zum Einen muss nun vermieden werden, dass mit jeder Änderung der Workflow sich selbst neu startet.” für mich nicht asgiebieg genug beantwortet. Kann man da nochmal drauf eingehen?

    Danke AnneK

Hinterlasse eine Antwort

 

 

 

Du kannst diese HTML-Tags benutzen

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">