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.




Metadaten in ein Office Dokument überführen

Unbeantwortet Dieser Beitrag hat 4 Antworten

Ohne Rang
54 Beiträge
DDG erstellt 2 Okt. 2012 09:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen,

Ich habe folgendes Problem. Ich nehme bestimmte Metadaten über ein Formular auf. Diese Metadaten müssen dann automatisiert in mehrere Office-Dokumente, insbesondere Word, geschrieben werden. Leider weiß ich nicht wie ich dort anfangen soll. Gibt es für diese Problemstellung schon bewährte Methoden oder Vorgehensweisen? Ich wäre euch sehr dankbar, wenn ihr mir ein paar Infos zukommen lassen könntet. Achso ich benutze SharePoint 2010 und Office 2010.

Viele Grüße

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 2 Okt. 2012 10:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich würde die Metadaten gleich über Word pflegen lassen. Man kann bei einer Bibliothek (oder einem Inhaltstyp) eine Wordvorlage hinterlegen. In die Vorlage kann man Metadaten sogar direkt ins Dokument einbauen (Schnellbausteine) oder alle Metadaten am oberen Rand direkt in Word pflegen. Ein Benutzer geht dann in die Bibliothek, klickt auf "Neu" und erstellt damit direkt ein neues Dokument aus der Vorlage und inkl. aller Metadaten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
54 Beiträge
DDG Als Antwort am 16 Okt. 2012 10:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andi,

erstmals danke für deine schnelle Antwort. Ja dieser Lösungsansatz war mir schon bekannt, leider müssen mehrere Dokumente automatisiert mit den Metadaten befüllt werden und die Metadaten werden nicht in der Dokumentenbibliothek gepflegt sondern in einer anderen Liste. Also vielleicht sollte ich mein Problem nochmals genauer schildern.

Ich habe eine Liste in der die Metadaten in Websitespalten gepfelgt werden. Jeweils eine Teilmenge der Websitespalten sind einem Inhaltstypen zugeordnet. In einer Dokumentbibliothek werden die Dokumente auf Basis eines Inhaltstypen (mit der Word-Vorlage) erstellt und die Felder der Schnellbausteine im Text markiert, die die Werte der Metadaten annehmen sollen. Nun lege ich ein neues Element in der Metadatenliste an und gebe die Metadaten ein. Sobald das Element angelegt wurde startet ein Event-Receiver und holt sich die benötigten Dokumente aus der Dokumentenbibliothek in eine Collection. Danach werden die Dokumente einzeln durchlaufen. Nun muss für jedes Dokument geprüft werden, welche Websitespalten als Dokumenteigenschaften verwendet werden. Sobald die benötigten Daten identifiziert sind, sollen die Werte aus der Metadatenliste geholt werden und in das Dokument (Eigenschaften) eingefügt werden. Mein Problem tritt bei dem Identifizieren welche Websitespalten das Worddokument beinhaltet auf. Ich habe alles soweit modelliert, dass ich ein einzelnes Dokument zur Verfügung habe. Jedoch weiß ich jetzt nicht wie ich programmatisch (in c#) auf die Dokumenteigenschaften zugreifen kann und herausfinden kann welche Metadaten benötigt werden. Gibt es da eine Möglichkeit wenn man das Listenelement der Dokumentbibliothek hat (oder die File Datei), zu identifizieren auf welchem Inhaltstypen das Dokument erstellt wurde und dann Collection der Websitespalten des Inhaltstypen zu bekommen? Und wie kann ich Werte in die Dokumenteigenschaften eines Worddokuments einfügen, ich denke das hat nichts mehr mit SharePoint Programmierung zu tun sondern eher mit Word. Leider habe ich bis jetzt keine gute Lösung im Internet gefunden. Ich würde mich über Lösungen oder Hinweise sehr freuen. Vielen Dank schon einmal für eure Bemühungen.

Viele Grüße,

Dennis

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Okt. 2012 10:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich halte die Vorgehensweise mit den zwei Listen zumindest für "seltsam". Aber sei's drum...

Du hast das Dokument als SPListItem. Oder als SPFile, dann hat das eine Eigenschaft ListItem (umgekehrt hat das SPListItem eine File-Eigenschaft). Über SPListItem.ContentType bekommst Du den Inhaltstyp des Elements. SPContentType wiederum hat eine Eigenschaft Fields, über die Du an alle Felder (=Metadaten) des jeweiligen Inhaltstyps kommst. Und Du kannst prüfen, ob der Inhaltstyp ein bestimmtes Feld enthält.

In jedem Fall brauchst Du keinerlei Interaktion mit dem eigentlichen Dokument. Wenn Du die Felder des Listenelements füllst, erscheinen die Werte automatisch auch in Word (wenn sie als Schnellbausteine verwendet werden). Auf die Feldwerte kannst Du mit SPListItem["Feldname"] lesend und schreibend zugreifen (Datentyp beachten).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
54 Beiträge
DDG Als Antwort am 22 Okt. 2012 16:03
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für deinen Beitrag. Ja um die zwei Listen komm ich nicht herum aber es hängt noch mit weiteren Sachen zusammen. Auf jeden Fall hat mir deine Antwort weitergeholfen und ich habe die Überführung mit Inhaltstypen umgesetzt.