SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Dateinamen von Listenelementen automatisch erzeugen

bewertet von 0 Usern
Beantwortet (ungeprüft) Dieser Beitrag hat 0 Geprüfte Antworten | 16 Antworten | 3 Followers

Top-500-Beitragsschreiber
51 Beiträge
Carsten erstellt in 2 Jul 2010 13:56

Hallo SharePoint Gemeinde!

Wie kann man einem Listenelement nach der Erstellung automatisch einen Speichernamen (Titel) zuweisen?

Bei einer ganz normalen Liste gibt der Anwender den Namen selbst an. Ich möchte jedoch nicht den Anwender die Namensvergabe übernehmen lassen, sondern einen automatisch erzeugten Dateinamen verwenden wie etwa:

Datum + Anwendername + einem Zähler (0001, 0002 u.s.w)

Geht das in einer Liste überhaupt?

Gruß Carsten

Alle Antworten

Top-10-Beitragsschreiber
19.111 Beiträge

Du könntest höchstens den Namen durch einen Workflow erzeugen lassen.

Viele Grüße
Andi
af @ evocom de
Blog
Top-75-Beitragsschreiber
168 Beiträge

Oder, mir persönlich lieber, durch einen EventReceiver!

Top-500-Beitragsschreiber
51 Beiträge

Andi Fandrich:

Du könntest höchstens den Namen durch einen Workflow erzeugen lassen.

Mmmmh? Ein Workflow, der den Dateinamen erzeugt und sofort nach dem absenden des Listenformular angestoßen wird.

Ok, hat jemand einen gern auch tief durchdeklinierten Ansatz?

 

niceoldlady:

Oder, mir persönlich lieber, durch einen EventReceiver!

Da würde dann wohl Visual Basic ins Spiel kommen. Habe gerade mal nach SharePoint und Eventreceiver gegoogelt und hatte den Eindruck, das hier von irgendwelchen fertigen Lösungen nicht auszugehen ist.

 

 

 

Top-75-Beitragsschreiber
168 Beiträge

Nein, so einen handler musst du dann komplett selber schreiben, ist aber nicht weiter schwer ;) Der vorteil ist aber das so ein handler synchron arbeitet. und somit kommt es niemals zu verzögerungen. das heißt deine datei ist sofort, sobald das listitem erstellt ist, da.

Top-10-Beitragsschreiber
19.111 Beiträge

Grundsätzlich gebe ich der netten alten Dame Recht und für einen erfahrenen SharePoint Entwickler ist das auch nur eine kleine Fingerübung. Ohne diese Erfahrung ist ein schnell zusammengeklickter Workflow wohl eher interessant...

Viele Grüße
Andi
af @ evocom de
Blog
Top-25-Beitragsschreiber
302 Beiträge

 Empfehle dir auch einen Workflow zu machen. Mit dem Sharepointdesigner geht das sogar recht einfach. Du musst dir nur deinen Workflow logisch zusammenklicken.

Der Workflow soll dann starten, nachdem ein Datensatz erstellt wurde. Binnen weniger Sekunden hast du dann den Namen aus dem Workflow in deinem Datensatz.

Top-500-Beitragsschreiber
51 Beiträge

Update:

Habe die Dateinamenerstellung erstmal mit einem Workflow gelöst. Den beschriebenen Nachteil, das der Dateiname nach dem Speichern nicht sekundengenau zur Verfügung steht, empfinde ich als nicht so schlimm. Trotzdem werde ich das mit dem EventHandler mal irgendwann ausprobieren.

Habe hier eine Workflow-Beschreibung gefunden, mit der die Dateinamenvergabe ergänzt um ein Datum super und schnell funktioniert hat:

1.       Create a column in the target library, name it “Text Date” (or whatever you prefer), set it as single line of text, and calculate the value using the following expression:

=Text([Today], “yyyymmdd”) 

2.       Create a workflow.

3.       Give it a name and select the checkbox for “Automatically start this workflow when a new item is created.”

4.       Click Next.

5.       Add the Action to “Set Field in Current Item.”

6.       Click Field and select “Title.”

7.       Click Value, click the function button, and in the Field drop-down select “Name (for use in forms)”.  This will set the title as the current filename without the file extension.

8.       Add the Action to “Build Dynamic String.”

9.       Click “Dynamic String” and create it as follows using “Add Lookup” (Documents is the name of my target library):

     [%Documents:Title%]_[%Documents:Text Date%].[%Documents:Type%]

10.   Click “Variable: variable1″, “Create a new variable.” and give it a name.  I called mine “FileName”.

11.   Add the Action to “Set Field in Current Item” again.

12.   Click Field and select “Name (for use in forms).”

13.   Click Value, click the Function button, change the source to “Workflow Data”, and change the field to “Variable: FileName”.

14.   Click Finish.

 

Top-10-Beitragsschreiber
19.111 Beiträge

Der Workflow scheitert aber, wenn am selben Tag zwei Dateien gleichen Namens und gleichen Typs angelegt werden :-)

Viele Grüße
Andi
af @ evocom de
Blog
Top-500-Beitragsschreiber
51 Beiträge

Das mit dem Datum kann man ja wahlweise durch etwas anderes ersetzen. Ich habe z.B. erstmal testweise die Uhrzeit inkl. Sekunden mit in den Dateinamen aufgenommen. So geht´s schon etwas besser.

Luxus wäre an dieser Stelle natürlich sowas wie ein "interner SharePoint Zähler" für Dateinamen. Also die Möglichkeit, eine eindeutige Nummer generieren zu lassen, die dann jedes Element mit in den Dateinamen bekommt. Keine Ahnung wie man sowas lösen könnte? So ein Zähler sollte dann evtl. für alle Listen und Bibliotheken gleichermaßen verwendet werden können (EINER für ALLE).

Top-10-Beitragsschreiber
19.111 Beiträge

Meine Anmerkung war ja nicht ganz ernst gemeint (obwohl natürlich wahr). Ich hätte eben einfach Datum und Uhrzeit genommen... Oder die ID, s.u.

Ansonsten gibt es als eindeutigen Zähler in jeder Liste und Bibliothek die Spalte ID...

Viele Grüße
Andi
af @ evocom de
Blog
Top-500-Beitragsschreiber
51 Beiträge

Andi Fandrich:
Ansonsten gibt es als eindeutigen Zähler in jeder Liste und Bibliothek die Spalte ID...

Habe mal die ID als Dateinamenszusatz in den Workflow gesetzt. Dabei ist mir folgendes aufgefallen

Die ID wird automatisch in den Dateinamen eingesetzt, auch wenn ich das Feld ID garnicht im Workflow hinzufüge. Ist ja im Prinzip das was ich brauche. Nur wird die ID in diesem Fall jedesmal so dargestellt:

1_.000 (1 ist die ID des Listendokumentes). Das _.000 sollte nach möglichkeit nicht erscheinen.

Kann man das noch irgendwie bearbeiten bzw. dafür sorgen, das die ID nicht automatisch angehängt wird, sondern nur wenn ich die ID im Workflow auch benutze?

Sowas wie Teilzeichenkette als Alternative gibt´s ja nicht im Workflow.

Top-500-Beitragsschreiber
51 Beiträge

Update:

Fehler gefunden. Bei der Anleitung muß man für den Workflow dann folgendes weglassen:

9.       Click “Dynamic String” and create it as follows using “Add Lookup” (Documents is the name of my target library):

     [%Documents:Title%]_[%Documents:Text Date%].[%Documents:Type%]

 

Ohne   [%Documents:Title%]_ gehts! Dann wird die ID nicht automatisch mit 1_.000 ausgegeben.

Ohne Rang
2 Beiträge

Hallo,

Mit Hilfe von diesem Beitrag hatte ich heute vergeblich versucht ein Workflow einzurichten. Bin aber kläglich gescheitert.

Was möchte ich tun?

Ich habe eine Bildbibliothek angelegt.

Mit den Spalten Produkt, Funktion und Sprache. Diese lasse ich zusammen mit der ID in eine neue Spalte "Dateiname" zusammenfügen, so dass automatisch ein Eintrag erstellt wird: ID_Produkt_Funktion_Sprache. Das funktioniert soweit!

Jetzt möchte ich, dass die Bilder oder Grafik Dateien genauso auf dem Laufwerk benannt werden.

Im Sharepoint Designer 2010 habe ich versucht einen Workflow anzulegen.

An folgendem Punkt bin ich nicht weiter gekommen.

Schritt 1: Wenn "Aktuelles Element:Dateiname ist nicht leer"

Schritt 2: .... dann soll er mir die Datei umbenennen oder anlegen.

 

Könnt Ihr mir einen Tip geben wie es weiter geht?

Top-10-Beitragsschreiber
19.111 Beiträge

Ich weiß ehrlich gesagt im Moment nicht, ob man auch den Dateinamen per Workflow ändern kann, aber grundsätzlich müßte es mit der Aktion "Feld im aktuellen Element festlegen" gehen. Dort wählst Du als Feld "Name" und als Wert das Feld "Dateiname" des aktuellen Elements.

Viele Grüße
Andi
af @ evocom de
Blog
Seite 1 von 2 (17 Elemente) 1 2 Weiter > | RSS