none
Problem mit dem Uploadformular einer Dokumentenbibliothek RRS feed

  • Frage

  • Ich habe eine Dokumentenbibliothek, in dieser habe ich einige zusätzliche Spalten erstellt (diese Felder sind Erforderlich).

    Wenn man nun in diese Bibliothek ein Dokument hinzufügt, wählt man normal zuerst das Dokument aus und im folgenden Fenster/Formular konnte man bisher die vorhandenen Spalten befüllen. Nun sind hier aber die zusätzlich erstellten nicht mehr sichtbar, sondern nur noch die Felder "Name" und "Titel".

    Bei einer anderen Dokumentenbibliothek welche gleich aufgebaut ist, funktioniert das Ganze einwandfrei.
    Ich habe schon die Bibliothekseinstellung gegengeprüft, konnte aber nichts finden...

    Hat jemand evtl. eine Idee was oder wo das Problem ist?

    Danke & Gruss

    Daniel

    Donnerstag, 14. Juni 2012 08:44

Alle Antworten

  • Hast du verschiedene inhaltstypen? Ist vielleicht ein inhaltstyp ohne diese Felder vorausgewählt?
    Freitag, 15. Juni 2012 13:17
  • Hi

    Nein, es gibt keine unterschiedlichen Inhaltstypen...

    Hast du evtl. noch eine andere Idee wo das Problem liegen könnte?

    Danke und Gruss
    Daniel

    Montag, 18. Juni 2012 13:54
  • Hallo Daniel,

    du kannst folgende Eigenschaft der Spalte über das OM mithilfe von PS überprüfen:

    http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfield.showinnewform

    Der Code wurde so etwa aussehen:

    $web = Get-SPWeb "<URL deiner Website>"
    $list = $web.Lists.TryGetList("<Name deiner Bibliothek>")
    if($list)
    {
       $field = $list.Fields.GetField("<Anzeigename der Spalte>")
       if($field)
       {
          $field.ShowInEditForm
       }
       else { Write-Host "Spalte nicht gefunden" }
    }
    else { Write-Host "Liste nicht gefunden" }
    $web.Dispose()

    Wenn False oder nichts zurück kommen sollte, kannst folgende Zeilen im Skript integrieren um den Wert zu setzen

    $field.ShowInEditForm = $true
    $field.Update()

    VG,
    Andrei
    Dienstag, 19. Juni 2012 18:58
  • Hallo Andrei

    Danke für den PS-Code.
    Hab diesen für mein Anliegen umgeschrieben und das Ganze getestet, aber ich kriege bei beiden Spalten ein True zurück. 

    Anbei noch ein Printscreen wie das Ganze bei mir ausschaut.
    Wenn ich in der Bibliothek ein neues Dokument hochlade, bzw. bei einem bestehenden die Eigenschaften anpassen möchte fehlt bei mir beim Edit-Formular die beiden bestehenden Spalten "Rubrik" und "Thema". (Die müssten unter "Titel" liegen...)

    Mittwoch, 20. Juni 2012 08:51
  • Hi,

    habe gerade in meiner Testumgebung nachgeschaut. Ich hatte im meinem PS Code NewForm eingetragen, wobei es eigentlich das EditForm auch für neue Elemente ist.. Also du müsstest die $field.ShowInEditForm Eigenschaft abrufen

    Ich aktualisiere den Skript.

    Gruß,
    Andrei

    Mittwoch, 20. Juni 2012 09:32
  • Ich erhalte ebenfalls im EditForm auf beide gesuchten Spalten den Wert True zurück...

    Hab die den Output von $list.Fields.GetField("<Anzeigename der Spalte>") der beiden Listen miteinander verglichen.

    Bis auf einige Unterschiede im "SchemaXML" und "SchemaXMLWhithResourceTokens" sind die Werte identisch...

    • Bearbeitet DanZu_CH Mittwoch, 20. Juni 2012 14:39
    Mittwoch, 20. Juni 2012 14:05
  • dann würde ich den SharePoint Designer bemühen und eine neue Standardansicht für den Bearbeitungsmodus erstellen:

    http://office.microsoft.com/de-de/sharepoint-designer-help/erstellen-eines-benutzerdefinierten-listenformulars-mit-sharepoint-designer-HA010378258.aspx#BM2

    Mittwoch, 20. Juni 2012 14:55
  • Hi!

    schreib doch mal das komplette List-SchemaXML... $list.schemaxml im PowerShell.

    Gruß

    Ingo

    Mittwoch, 20. Juni 2012 15:10
  • Hier der Inhalt des SchemaXMLs:

    <Field 
    Description="bitte Thema auswählen (Pflichtfeld)"
    DisplayName="Thema" 
    Format="Dropdown" 
    Hidden="FALSE" 
    ID="{d367a5dc-a44d-40d1-82fb-84cbb1558adc}" 
    Name="Thema" 
    Required="TRUE" 
    ShowInDisplayForm="TRUE" 
    ShowInEditForm="TRUE" 
    ShowInNewForm="TRUE" 
    SourceID="{AA7FAAF5-71C5-4224-8206-D45BA8C5395A}"
    Type="Choice" 
    Version="9" 
    StaticName="Thema" 
    ColName="nvarchar11" 
    RowOrdinal="0" 
    ReadOnly="FALSE" 
    EnforceUniqueValues="FALSE" 
    Indexed="FALSE" 
    FillInChoice="FALSE">
    <Default>00 zu definieren</Default>
    <CHOICES><CHOICE>00 zu definieren</CHOICE><CHOICE>Auszeichnungen</CHOICE><CHOICE>Sonstiges</CHOICE></CHOICES></Field>
    @Andrei Danke für den Hinweis, ich werde das einmal versuchen mit dem SharePoint Designer...

    Donnerstag, 21. Juni 2012 05:36
  • Hallo!

    Kannst Du das SchemaXML von der gesamten Liste schicken? Nicht nur vom Field.

     $list.schemaxml 

    Gruß
    Ingo

    Donnerstag, 21. Juni 2012 11:59
  • Hab leider keine Chance das komplette schemaXML hier zu posten. Bekomme eine Fehlermeldung...
    Dienstag, 26. Juni 2012 09:18
  • Habe die schemaXML nun als TXT-File auf Skydrive hochgeladen.

    http://sdrv.ms/M5pQcC

    gruss Daniel

    Mittwoch, 4. Juli 2012 07:04
  • Eine Idee hätte ich noch unabhängig davon. Spalten werden immer dann angezeigt, wenn sie mit dem entsprechenden ContentType auch referenziert werden. Bei dem ContentType Document sind dies die Felder 'Name' und 'Titel'. Demzufolge ist dies vollkommen korrekt. Wenn du tatsächlich eine weitere Dokumentenbibliothek hast, die genau so aufgebaut ist, die aber die weiteren Felder anzeigt, dann ist eher mit dieser etwas nicht in Ordnung.

    Unabhängig davon, wie etwaige andere Bibliotheken aussehen ist das Problem, weshalb die anderen Spalten nicht angezeigt werden, dass der ContentType Document diese Felder nicht referenziert. Du würdest einen anderen ContentType benötigen, der von Document erbt und diese Spalten noch hinzufügt.

    Der Schema-XML-Datei kann man auch keine ContentTypes entnehmen. Ohnehin wirkt es etwas schräg auf mich, weil es kein <MetaData> Tag enthält, das eigentlich die zu verwendenden ContentTypes, Felder, Forms und Views enthalten sollte.Um dein Problem zu lösen, müsstest du auf der Bibliothek "nur" einen neuen ContentType à la "extendedDocument" registrieren müssen und als Standard-ContentType bestätigen müssen, damit die Bibliothek immer auf diesen zurückgreift (du könntest nach dem Hinzufügen des neuen, den CT "Document" auch problemlos von der Liste werfen, wenn der sonst nicht benötigt wird.). Dein ContentType könnte so aussehen:

    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
      <!-- Parent ContentType: Document (0x0101) -->
      <ContentType ID="0x0101008ef726c0e9bf4390a86a46fe98bdfa0d"
                   Name="extendedDocument"
                   Group="Custom Content Types"
                   Description="My Content Type"
                   Inherits="TRUE"
                   Version="0">
        <FieldRefs>
    		<FieldRef ID ="" Name =""/>
    		<FieldRef ID ="" Name =""/>
    		<!-- und so weiter. Bei den ID-Attributen sind die GUIDs deiner Custom Columns anzugeben, umschlossen von geschreiften Klammern: {}, 
    		der Name ist meines Wissens nach ebenfalls anzugeben
    		weitere Optionen zur Konfiguration der Spalte, wie zB des Required-Attributes oder der Darstellung mittels Format wären zu überlegen-->
    		</FieldRefs>
      </ContentType>
    </Elements>
    

    Wenn du einen ContentType nach diesem Schema auf dem Server registrierst (ggf. kannst du ihn auch in den SiteSettings als Site Content Type zusammenklicken, wenn du die Spalten schon hast), kannst du ihn auch auf deine Dokumentenbibliothek schalten. Die View und die ContentTypes, die bestimmte in der Bibliothek verwaltete Spalten belegen oder nicht, sind erstmal getrennt voneinander zu beobachten. Die Registrierung der Spalten auf der Bibliothek hat in deinem Fall erstmal keinen Einfluss auf die Eingabemasken, da der ContentType Document, die nicht referenziert.

    Beste Grüße!

    Peter

    Freitag, 13. Juli 2012 10:58