none
SharePoint Online - Unable to access Site columns RRS feed

  • Frage

  • Hi all,

    on a SharePoint Online SiteCollection, we added a SiteColumn using PNP PowerShell Add-PnPFieldFromXml function. 

    By mistake, we provided the xml without Type-property, e.g. Type="Text".

    Now, we have a corrupt column in our site collection which prevents
    - access Site Columns overview page
    - using a contenttype which includes this column as fieldlink
    - web.Fields in C# code- using rest {sitecollurl}/_api/web/fields 

    ErrorMessage:
    Key cannot be null. Parameter name: key.

    I am unable to Remove CT-Fieldlink or delete the column from the sitecollection - therefor right now, the sitecollection fields and contenttypes cannot be modified. 

    What i tried so far:
    - Adding column with Type Property with same ID/InternalName as XML + Overwrite="TRUE" and DisplaceOnUpgrade="TRUE"
    --> Error Local device name is already in use
    - Tried to update existing Column SchemaXML with Type property --> Error Key cannot be null
    - Tried to "redeploy" Column with SPFx Solution --> Elements-XML (same ID, InternalName + a provided type + Overwrite and DisplaceOnUpgrade --> Adding App resulted in an error
    - Tried to remove it via CSOM and REST --> Error Key cannot be null

    Any ideas/suggestions what i can do to fix this?
    I dont really want to recreate the whole site collection and move all its content.

    Any help is appreciated.

    Thanks
    Markus


    Freitag, 19. März 2021 15:02

Alle Antworten

  • Hi Markus,
    hast du mal versucht, dir alle SiteColumns zu holen, dann durch diese Liste zu iterieren und die betreffende SiteColumn einfach zu löschen? Damit brauchst du die SiteColumn nicht über einen Key anzusprechen.

    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Freitag, 19. März 2021 15:35
  • Ja hab ich versucht. Direkt bei web.Fields knallt es. Er kann die Fields gar nicht mehr auflisten. 

    Thanks
    Markus

    Freitag, 19. März 2021 15:56
  • Hi Markus,
    wenn eine Spalte (Feld) "defekt" ist, dann wirst du auch nicht auf die Felder zugreifen können. Ich würde den internen XML zur Spalte holen, diesen dann prüfen und, wenn die zu löschende Spalte gefunden wurde, diese dann löschen. Damit kannst du den Aufruf von Feldern umgehen.

    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Samstag, 20. März 2021 09:17
  • Hallo Peter,

    soweit war/bin ich schon. Die Spalte hab ich entsprechend identifiziert und versucht zu löschen (über REST und C#). Das geht aber auch beides über den Fields Endpoint (der leider knallt). Oder gibt es eine Möglichkeit, das Feld zu löschen ohne über Fields zu gehen?

    ~siteCollection/_api/web/fields/getById('ID')/deleteObject oder halt web.Fields[].DeleteObject. 

    Zusätzlich: Das Feld hängt noch in einem ContentType. D.h. ich müsste hier auch den FieldLink löschen/entfernen, das funktioniert aber leider auch nicht).

    Gruß
    Markus

    Montag, 22. März 2021 07:21