So kopieren Sie die neu hinzugefügten Dokument mit Metadaten zu einem Dokument Bibliothek?
- Ich kopieren muss das Element, das der Benutzer einfach Hinzugefügt (zum Beispiel. myresume.doc oder financial.xls) mit den Metadaten (doc lib erhält die Spalten vom Typ des Inhalts, der ct erhält der Spalten von Seite colum) und kopieren Sie das Element mit Metadaten in einem Ordner namens "NativeFile". Jedes doc-Bibliothek hat diesen Ordner.
- Ich weiß itemadded können verwendet werden, aber dann hörte ich itemadded feuert, bevor der Benutzer eine chance haben, vervollständigen Sie die Metadaten für das Element Sie gerade Hinzugefügt haben.
Was sind meine Optionen? (neu, sp, also einige Beispiel-code würde sehr helfen. oder ein paar gute link ähnlich diesem Heft)
Sharepoint 2007, itemadded oder itemadding oder itemupdating oder itemupdated....
InformationsquelleAutor James | 2010-04-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
ccomet korrekt ist. Mit Element-event-Empfänger allein gibt es keine gute Möglichkeit zum duplizieren der Metadaten. Wenn Sie können sich mit nur kopieren Sie die Datei hier whatcha tun:
InformationsquelleAutor Repo Man
Was Sie gehört haben, ist richtig: ItemAdded ausgelöst wird, bevor die Metadaten Abschluss, weil in einem Dokument Bibliothek, ItemAdded feuert, wenn das Dokument zuerst geladen und nicht wenn das Formular ausgefüllt wird.
Ich denke, dass die glatte option ist, um einen workflow verwenden, dass Brände aus, wenn ein Element erstellt wird, in das Dokument Bibliothek. Speziell die code-basierte Visual Studio 2008 verwenden, wenn Sie es haben. Eine Allgemeine Exemplarische Anleitung für die Herstellung von workflows mit Visual Studio 2008 finden Sie hier: Gerangel SharePoint-Workflows mit Visual Studio. Artikel ist eigentlich wie ich lernte, machen Abläufe von in den ersten Platz, so dass ich hoffe es hilft dir genauso wie es mir hat. Ich würde empfehlen, diesen Ansatz über einen event-handler, weil Sie verwenden würde ItemUpdated, das heißt, Sie würde tun müssen knifflige Prüfungen nur um sicherzustellen, dass diese nur einmal ausgeführt wird. Und die andere Möglichkeit die ich mir denken kann, was Sie in einer benutzerdefinierten form, ist nicht sehr angenehm zu haben, um die ganze Zeit zu tun.
Nun, machen Sie Ihren eigenen workflow. Stellen Sie sicher, dass Sie zum initialisieren des workflowProperties wie gezeigt, in der link für die onWorkflowActivated_Invoked. Dies ist eine sehr einfache workflow wenn Sie alle erforderlichen Felder Benötigt, in der form. In der designer-Ansicht, alles, was Sie brauchen, sind 2 zusätzliche Aktivitäten neben der OnWorkflowActivated-Aktivität: eine OnWorkflowItemChanged Aktivität, und eine Code-Aktivität. Für die OnWorkflowItemChanged Aktivität, die einzige Eigenschaft, die Sie festlegen müssen, ist die CorrelationToken, die die gleiche wie die OnWorkflowActivated-Aktivität CorrelationToken. Nun, doppelklicken Sie auf die Code-Aktivität zu generieren, seine codeActivity_Executed Methode. In dieser Methode, das folgende sollte genügen:
Habe ich noch die if-Anweisung, weil der workflow wird wahrscheinlich trigger auf das neue Element, das Sie erstellt, mit CopyTo, so wird dies überprüfen, um zu sehen, ob die Datei bereits in dem Ordner, und wenn es ist, es wird nicht eine Kopie. Jetzt ordnen Sie den workflow Ihrer website, wie gezeigt, in der Verknüpfung, und verknüpfen es mit item creation. Sollte es funktionieren, dann.
Obwohl dieser workflow techinically wartet ItemUpdated, denn wenn die Felder ausgefüllt sind, indem Sie sich mit der Erstellung ein Element, stellen Sie sicher, dass es nur einmal ausgeführt wird. Ich gebe zu, dass ich nur benutzt habe
item.File.MoveTo(destination, true)
, aber dass macht bewahren Sie alle die Felder und die Metadaten, also ich bin mir ziemlich sicher, dass Sie die CopyTo soll. Wenn nicht, gib einfach ein holler.InformationsquelleAutor Grace Note
Nur das kopieren des
Properties
Sammlung von einem Quellelement zu einem Ziel-Element funktioniert nicht bei allen Datei-Typen, vor allem, wenn Sie sich in unterschiedlichen Dokument-Bibliotheken.Siehe diesen thread für mehr Informationen: https://sharepoint.stackexchange.com/questions/1151/what-is-the-best-way-to-copy-a-files-column-data-in-sharepoint
InformationsquelleAutor Jeroen Ritmeijer