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

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Dateinamen von Listenelementen automatisch erzeugen

Dieser Beitrag hat 16 Antworten

Ohne Rang
51 Beiträge
Carsten erstellt 2 Juli 2010 13:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Juli 2010 14:06
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 2 Juli 2010 14:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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

Ohne Rang
51 Beiträge
Carsten Als Antwort am 2 Juli 2010 15:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]

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

[/quote]

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?

 

[quote user="niceoldlady"]

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

[/quote]

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.

 

 

 

Ohne Rang
168 Beiträge
niceoldlady Als Antwort am 2 Juli 2010 15:42
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Juli 2010 16:13
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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
Ohne Rang
302 Beiträge
Ardenda Als Antwort am 3 Juli 2010 08:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

 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.

Ohne Rang
51 Beiträge
Carsten Als Antwort am 4 Aug. 2010 11:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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.

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Aug. 2010 11:32
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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
Ohne Rang
51 Beiträge
Carsten Als Antwort am 4 Aug. 2010 11:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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).

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Aug. 2010 13:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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
Ohne Rang
51 Beiträge
Carsten Als Antwort am 9 Aug. 2010 16:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Andi Fandrich"]Ansonsten gibt es als eindeutigen Zähler in jeder Liste und Bibliothek die Spalte ID...[/quote]

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.

Ohne Rang
51 Beiträge
Carsten Als Antwort am 9 Aug. 2010 16:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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
Iroc_F Als Antwort am 5 Dez. 2013 16:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Dez. 2013 08:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

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
Ohne Rang
2 Beiträge
Iroc_F Als Antwort am 6 Dez. 2013 13:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Achso, hatte gedacht in diesem Beitrag geht es um das Thema, dass man den Dateinamen automatisch ändern kann.

Aktuell sieht jetzt mein Workflow so aus:

Bedingung: Wenn Aktuelles Elemnt:Dateiname ist nicht leer

Aktion: Name (zur Verwendung in Formularen) auf Aktuelles Element:Dateiname festlegen

Ein anderes Feld "Name" kann ich nicht auswählen.

Im Sharepoint entshet eine neue Spalte die den Workflow Namen hat,darin steht: Wird gestartet.

Mehr passiert nicht.

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 6 Dez. 2013 13:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Iroc_F"]Im Sharepoint entshet eine neue Spalte die den Workflow Namen hat,darin steht: Wird gestartet[/quote]

Das passiert bei jedem Workflow und hat nichts damit zu tun, was der Workflow macht (oder machen soll). Klicke mal auf das "Wird gestartet". Du gelangst zum Workflowverlauf und erfährst vielleicht mehr. Mit der Aktion "Für die Verlaufsliste protokollieren" kannst Du auch selbst dort Ausgaben erzeugen.

Viele Grüße
Andi
af @ evocom de
Blog