Ich versuche, den Inhaltstyp des Dokuments zu ändern. Ich muss Workflow verwenden, und der beste Weg wird durch Workflow erstellen in Sharepoint desingner. Ich weiß, wie es programmatisch in Visual Studio tun
Antworten
Zu viele Anzeigen?Ich weiß, dass dies eine alte Frage ist, aber ich habe es herausgefunden:
Sie können dies mit einem SPD-Workflow (SPD 2007 oder 2010) tun. Sie können das Feld für den Inhaltstyp auf zwei Arten aufrufen:
-
Verwenden Sie in einem Arbeitsablauf die Option "Wenn [Feld] gleich [Wert]" oder die Option "Setze [Feld] auf [Wert]".
-
Für die "Wenn"-Anweisung wird das Feld "Inhaltstyp" genannt. Das Feld der "Set"-Anweisung wird "Content Type ID" genannt. In beiden Fällen können Sie den Wert auf der Grundlage der verfügbaren Inhaltstypen zuweisen.
Sie müssen die Inhaltsarten in den Listen- oder Bibliothekseinstellungen aktivieren. Hier ein Beispiel für einen Workflow, der auf einer benutzerdefinierten Liste zur Erfassung von Kreditorenbuchungen basiert:
Listenspalte: Antragsart (Auswahlspalte mit den Optionen Erstattung, Abteilungsausgaben, Sonstige)
Inhaltsarten auflisten: Standard, Kreditorenbuchhaltung, Debitorenbuchhaltung
If [Request Type] equals [Reimbursement]
then Set [Content Type ID] to [Accounts Payable]
Wenn der Workflow ausgelöst wird, wird der Inhaltstyp nur dann auf "Kreditorenbuchhaltung" gesetzt, wenn die Spalte Antragstyp gleich "Erstattung" ist.
Ich habe gerade den Inhaltstyp eines Listenelements durch einen Workflow in SharePoint Designer 2010 geändert. Als ich "Set item from current list" hinzufügte und "Content Type ID" wählte, konnte ich aus den verschiedenen Inhaltstypen auswählen. Ich habe keine Daten verloren, wahrscheinlich weil meine Inhaltstypen einige der gleichen Felder verwenden.
Ich bin mir ziemlich sicher, dass man das nicht kann, jedenfalls nicht mit einem SP Designer-Workflow.
Sie müssen bedenken, dass SharePoint auf keinen Fall sicher sein kann, dass die beiden Inhaltstypen (vorher und nachher) die gleiche Art von Spalten haben, und selbst wenn dies der Fall wäre, könnten die Werte des alten Inhaltstyps nicht einfach dem neuen zugeordnet werden.
Da Sie erwähnt haben, dass Sie in Visual Studio programmieren können, habe ich Ihre Optionen in Bezug auf das SharePoint-Objektmodell überprüft. Es gibt weder bei SPListItem noch bei SPFile eine Methode, mit der man den zugehörigen Inhaltstyp ändern kann. Soweit ich weiß, müssten Sie also die Werte aus dem alten Listeneintrag lesen und einen neuen erstellen (mit der neuen Contenttype-Zuordnung), wobei Sie benutzerdefinierten Code verwenden müssten.
Ich bin mir nicht sicher, ob das etwas ist, was ich tun möchte, abgesehen von der Tatsache, dass Sie die Informationen "Erstellt" und "Geändert" des alten Listeneintrags verlieren würden.
Aber ja, das ist Ihre einzige Möglichkeit, denke ich...
Natürlich können Sie den SPD-Workflow verwenden, um den Inhaltstyp eines Artikels zu ändern. Natürlich muss die Bibliothek, in der sich das Element befindet, so konfiguriert sein, dass sie beide Typen akzeptiert. Hier ist ein Link zu einer Anwendung, die davon Gebrauch macht: http://www.sharepoint911.com/blogs/laura/Lists/Posts/Post.aspx?List=daba3a3b-c338-41d8-bf52-cd897d000cf3&ID=43&Web=dbb90e85-b54c-49f4-8e97-6d8258116ca0