JSON-Schema eines Websitedesigns

Die Websitevorlage ist eine Liste Aktionen. Für komplexere Aktionen, z. B. das Erstellen einer Liste, gibt es auch Unteraktionen. Jede Aktion wird durch einen „Verb“-Wert angegeben. Verb-Aktionen werden in der Reihenfolge ausgeführt, in der sie im JSON-Skript angezeigt werden. Nur die hier aufgeführten Verb-Aktionen können verwendet werden. Andernfalls wird ein Fehler vom Typ „Aktion kann nicht verarbeitet werden“ ausgelöst, wenn Sie versuchen, ein Websiteskript hochzuladen. Weitere Aktionen werden im Laufe der Zeit hinzugefügt.

Die allgemeine JSON-Struktur wird wie folgt angegeben:

{
  "$schema": "schema.json",
  "actions": [
    ...
    <one or more verb actions>
    ...
  ],
  "bindata": { },
  "version": 1
}

Tipp

Die neuste Schemadatei können Sie hier anzeigen und darauf zugreifen: https://developer.microsoft.com/json-schemas/sp/site-design-script-actions.schema.json

Hinweis

Aktionen können auf einer Website mehrmals ausgeführt werden. Durch das erneute Ausführen von Aktionen auf derselben Website mit den gleichen Parametern wird das vorhandene Schema aktualisiert und nicht dupliziert.

addContentTypesFromHub

Verwenden Sie das Verb addContentTypesFromHub, um Inhaltstypen von einem Inhaltstyphub mit der Site zu synchronisieren.

Hinweis

Nachdem addContentTypesFromHub auf eine Site angewendet wurde, kann die untergeordnete addContentType-Aktion in einer Liste sie der Liste anhand des Namens hinzufügen.

JSON-Wert

  • ids: Ein Array der Inhaltstyp-IDs, die synchronisiert werden müssen.

Beispiel

{
  "verb": "addContentTypesFromHub",
  "ids": ["0x01007CE30DD1206047728BAFD1C39A850120"]
}

Erstellen einer neuen SharePoint-Liste

Verwenden Sie das Verb createSPList, um eine neue SharePoint-Liste zu erstellen.

Hinweis

Sobald createSPList auf eine Website angewendet wird, fungiert die Ausführung von createSPList mit demselben Listennamen wie eine Aktualisierung der vorhandenen Liste.

JSON-Werte

  • listName: Der Name der Liste.

  • templateType: Welche Vorlage auf die Liste angewendet werden soll. In der Regel verwenden Sie den Wert 100. Die vollständige Liste der Vorlagentypwerte ist in der SPListTemplateType-Enumeration aufgeführt, unterstützt werden derzeit jedoch die folgenden:

    Name der Listenvorlage Enum
    Allgemeine Liste 100
    Dokumentbibliothek 101
    Umfrage 102
    Links 103
    Announcements 104
    Kontakte 105
    Veranstaltungen 106
    Aufgaben 107
    Diskussionsforum 108
    PictureLibrary 109
    Websiteseiten 119
    Problemverfolgung 1100

    Wenn Sie „101“ oder „119“ verwenden und auf die Standardnamen („Dokumente“ oder „Websiteseiten“) verweisen, können Sie die mit der Vorlage erstellte Bibliothek ändern. Siehe Beispiel unten.

  • subactions: Ein Array von Aktionen, die in der aufgeführten Reihenfolge ausgeführt werden, um Ihre Liste zu erstellen.

Beispiel

{
  "verb": "createSPList",
  "listName": "Customer Tracking",
  "templateType": 100,
  "subactions": [
    {
      "verb": "setDescription",
      "description": "List of Customers and Orders"
    }
  ]
},
{
  "verb": "createSPList",
  "listName": "Documents",
  "templateType": 101,
  "subactions": [
    {
      "verb": "setDescription",
      "description": "This is a modified default document library"
    }
  ]
}

Das Array mit Unteraktionen bietet zusätzliche Aktionen, um anzugeben, wie die Liste erstellt wird. Unteraktionen werden auch mithilfe eines verb-Werts angegeben.

setDescription

Legt die Beschreibung der Liste fest.

JSON-Wert

  • description: Die Beschreibung der neuen Liste.

Beispiel

{
  "verb": "setDescription",
  "description": "List of Customers and Orders"
}

addSPField

Fügt ein neues Feld hinzu.

JSON-Werte

  • fieldType: Der Feldtyp kann auf Text, Note, Number, Boolean, User oder DateTime festgelegt werden. Informationen zu anderen Datentypen finden Sie unter der addSPFieldXml-Aktion.
  • displayName: Der Anzeigename des Felds.
  • id: Ein optionales Attribut. Wenn es vorhanden ist, gibt es die ID des Felds an. Der Wert muss ein eindeutige, zufällig generierte GUID sein. Es wird empfohlen, einen Wert hierfür anzugeben, um sicherzustellen, dass das Feld bei einem erneuten Ausführen des Skripts nicht mehrfach hinzugefügt wird.
  • internalName: Ein optionales Attribut. Wenn es vorhanden ist, gibt es den internen Namen des Felds an. Wenn es nicht vorhanden ist, basiert der interne Name auf dem Anzeigenamen.
  • isRequired: True, wenn dieses Feld Informationen enthalten muss, andernfalls False.
  • addToDefaultView: True, wenn das Feld der Standardansicht hinzugefügt wird, andernfalls False.
  • enforceUnique: Ein optionales Attribut, das standardmäßig auf False festgelegt ist. Bei Festlegung auf True müssen alle Werte für dieses Feld eindeutig sein.

Beispiel

{
  "verb": "addSPField",
  "fieldType": "Text",
  "displayName": "Customer Name",
  "isRequired": false,
  "id": "c532fcb9-cdb3-45c6-8247-c784dcd58e1a",
  "addToDefaultView": true
}

deleteSPField

Löscht ein Standardfeld, das vom ausgewählten Vorlagentyp bereitgestellt wurde.

JSON-Wert

  • displayName: Der Anzeigename zum Identifizieren des zu löschenden Felds.

Beispiel

{
  "verb": "deleteSPField",
  "displayName": "Modified"
}

addSPFieldXml

Ermöglicht das Definieren von Feldern und ihren Elementen mithilfe von Collaborative Application Markup Language (CAML). Referenzinformationen finden Sie unter Field-Element (Feld). Die Bereitstellung des ID-Attributs im Feld "schemasXml" ist wichtig, um zu verhindern, dass das Feld mehrere Male erstellt wird, wenn das Skript mehrfach ausgeführt wird.

Derzeit können diese Feldkonstrukte weder als Websitespalten festgelegt noch zu Inhaltstypen hinzugefügt werden. Verwenden Sie zum Erstellen von Websitespalten mithilfe von Field XML die createSiteColumnXml-Aktion.

JSON-Wert

  • schemaXml: Der CAML-Block zum Definieren des Felds.
  • addToDefaultView: True, wenn das Feld der Standardansicht hinzugefügt wird, andernfalls False.

Beispiel

{
  "verb": "addSPFieldXml",
  "schemaXml": "<Field ID=\"{596cbd92-36e3-40cc-a910-0f53468ce5e4}\" Type=\"Choice\" DisplayName=\"Project Category\" Required=\"FALSE\" Format=\"Dropdown\" StaticName=\"ProjectCategory\" Name=\"ProjectCategory\"><Default>Operations</Default><CHOICES><CHOICE>Operations</CHOICE><CHOICE>IT</CHOICE><CHOICE>Legal</CHOICE><CHOICE>Engineering</CHOICE></CHOICES></Field>"
}

addSPLookupFieldXml

Ermöglicht das Definieren von Nachschlagefeldern und ihren abhängigen Listenelementen mithilfe von Collaborative Application Markup Language (CAML). Referenzinformationen finden Sie unter Field-Element (Feld). Die Bereitstellung des ID-Attributs im Feld "schemasXml" ist wichtig, um zu verhindern, dass das Feld mehrere Male erstellt wird, wenn das Skript mehrfach ausgeführt wird.

JSON-Wert

  • schemaXml: Der CAML-Block zum Definieren des Felds.
  • targetListName: Der Name der Liste, die dieses Nachschlagefeld referenziert. Geben Sie entweder diesen oder das targetListUrl-Objekt an.
  • targetListUrl: Eine webrelative URL der Liste, die dieses Nachschlagefeld referenziert. Geben Sie entweder diese oder das targetListName-Objekt an.
  • addToDefaultView: True, wenn das Feld der Standardansicht hinzugefügt wird, andernfalls False.

Beispiel

{
  "verb": "addSPLookupFieldXml",
  "schemaXml": "<Field Type=\"Lookup\" DisplayName=\"Contoso Project Category\" Required=\"FALSE\" EnforceUniqueValues=\"FALSE\" ShowField=\"Title\" UnlimitedLengthInDocumentLibrary=\"FALSE\" RelationshipDeleteBehavior=\"None\" ID=\"{101f1f89-d667-4c7f-9ebc-76cb5831d0a2}\" StaticName=\"ContosoProjectCategory\" Name=\"ContosoProjectCategory\" />",
  "targetListName": "Contoso Project Master"
}

addSiteColumn

Unteraktion, mit der eine zuvor definierte Websitespalte direkt zu einer Liste (vorhanden oder über das Websiteskript erstellt) hinzugefügt wird.

JSON-Wert

  • internalName: Der interne Name der hinzuzufügenden Websitespalte.
  • addToDefaultView: Optionales Attribut, das standardmäßig False ist. True gibt an, dass das neu hinzugefügte Feld auch der Standardansicht hinzugefügt wird.

Beispiel

 {
  "verb": "addSiteColumn",
  "internalName": "siteColumnUser",
  "addToDefaultView": true
 }

addSPView

Definiert eine Ansicht und fügt sie zur Liste hinzu. Verwenden Sie diese Aktion, um die gewünschten Spalten anzugeben und festzulegen, wie die Listenelemente angezeigt werden sollen (mithilfe einer CAML-Abfrage). Mit Aktionseigenschaften können Sie Zeilenlimits angeben und ob die Ansicht in Seite eingeteilt ist und Elemente in geschachtelten Ordnern rekursiv durchläuft. Außerdem können Sie die konstruierte Ansicht als Standard festlegen.

JSON-Wert

  • name: Der Name der Ansicht.
  • viewFields: Ein Array der internen Namen der Felder in der Ansicht.
  • query: Eine CAML-Abfragezeichenfolge mit der where-Klausel für die Abfrage der Ansicht. Siehe CAML-Schemas.
  • rowLimit: Das Zeilenlimit der Ansicht.
  • isPaged: Gibt an, ob es sich um eine Seitenansicht handelt.
  • makeDefault: Wenn True, wird die Ansicht als Standard für die Liste festgelegt, ansonsten False.
  • scope: Eine optionale Einstellung, um den Bereich der Ansicht anzugeben. Weitere Informationen hierzu finden Sie unter SPViewScope-Enumeration.
  • formatterJSON: Eine optionale Einstellung, um die JSON-Formatierung für die Ansicht festzulegen.

Beispiel

{
  "verb": "addSPView",
  "name": "Contoso Projects by Category",
  "viewFields":
  [
    "ID",
    "Title",
    "siteColumnUser",
    "ProjectCategory"
  ],
  "query": "<OrderBy><FieldRef Name=\"ProjectCategory\" /><FieldRef Name=\"siteColumnUser\" Ascending=\"FALSE\" /></OrderBy>",
  "rowLimit": 100,
  "isPaged": true,
  "makeDefault": true
}

removeSPView

Entfernt eine Ansicht aus einer Liste. Diese Aktion kann auch zum Entfernen einer Ansicht verwendet werden, die von der Websitevorlage angewendet wurde.

JSON-Wert

  • name: Der Name der zu entfernenden Ansicht.

Beispiel

{
  "verb": "removeSPView",
  "name": "All Items"
}

addContentType

Fügt einen Inhaltstyp zur Liste hinzu. Derzeit ist dies auf die standardmäßigen Inhaltstypen beschränkt, die in der Websitevorlage enthalten sind, bzw. auf die Typen, die mithilfe der createContentType-Aktion CreateContentType in einem Skript definiert wurden.

Hinweis

Das Hinzufügen von Enterprise-Inhaltstypen wird derzeit nicht unterstützt.

JSON-Wert

  • name: Der Name des hinzuzufügenden Inhaltstyps.

Beispiel

{
  "verb": "addContentType",
  "name": "name"
}

removeContentType

Entfernt einen Inhaltstyp, der vom ausgewählten Vorlagentyp bereitgestellt wurde.

JSON-Wert

  • name: Der Name des zu entfernenden Inhaltstyps.

Beispiel

{
  "verb": "removeContentType",
  "name": "name"
}

setSPFieldCustomFormatter

Legt die Spaltenformatierung für ein Feld fest. Weitere Informationen finden Sie unter Anpassen von SharePoint mithilfe von Spaltenformatierungen.

JSON-Werte

  • fieldDisplayName: Der Anzeigename des zu verwendenden Felds.
  • formatterJSON: Ein JSON-Objekt, das als CustomFormatter-Feld verwendet werden soll.

Beispiel

In diesem Beispiel wird eine Zahlenspalte als Datenbalken formatiert.

{
  "verb": "setSPFieldCustomFormatter",
  "fieldDisplayName": "Effort (days)",
  "formatterJSON":
  {
    "debugMode": true,
    "elmType": "div",
    "txtContent": "@currentField",
    "attributes": {
      "class": "sp-field-dataBars"
    },
    "style": {
      "width": {
        "operator": "?",
        "operands": [
          {
            "operator": ">",
            "operands": ["@currentField", "20"]
          },
          "100%",
          {
            "operator": "+",
              "operands": [
                {
                  "operator": "toString()",
                  "operands": [
                    {
                      "operator": "*",
                      "operands": ["@currentField",5]
                    }
                  ]
                },
                "%"
              ]
          }
        ]
      }
    }
  }
}

associateFieldCustomizer

Registriert eine Felderweiterung für ein Listenfeld. Weitere Informationen zu diesen clientseitigen Erweiterungen finden Sie im Lernprogramm Erstellen des Field Customizer.

JSON-Werte

  • internalName: Der interne Name des zu verwendenden Felds.
  • clientSiteComponentId: Die ID (GUID) der Erweiterung im App-Katalog. Dieser Eigenschaftswert ist in der Datei „manifest.json“ oder in der Datei "cements.xml" zu finden.
  • clientSiteComponentProperties: Dies ist ein optionaler Parameter, der verwendet werden kann, um Eigenschaften für die Field Customizer-Erweiterungsinstanz bereitzustellen.

Beispiel

{
  "verb": "createSPList",
  "listName": "Custom List with Slider Extension",
  "templateType": 100,
  "subactions": [
    {
      "verb": "setDescription",
      "description": "Custom list to illustrate SharePoint site scripting"
    },
    {
      "verb": "addSPField",
      "fieldType": "Text",
      "displayName": "Text Field",
      "isRequired": false,
      "addToDefaultView": true
    },
    {
      "verb": "addSPField",
      "fieldType": "Number",
      "displayName": "Number Field",
      "internalName": "ElectricSlide",
      "addToDefaultView": true,
      "isRequired": true
    },
    {
      "verb": "associateFieldCustomizer",
      "internalName": "ElectricSlide",
      "clientSideComponentId": "35944670-3111-4482-b152-9e9d1sean9f7",
      "clientSideComponentProperties": "{\"sampleText\":\"Yes - added by a site template, what?\"}"
    }
  ]
}

associateListViewCommandSet

Ordnet einen ListViewCommandSet zu der Liste hinzu.

JSON-Werte

  • title: Der Titel der Erweiterung.
  • location: Ein erforderlicher Parameter um anzugeben, wo der Befehl angezeigt wird. Optionen sind: ClientSideExtension.ListViewCommandSet.ContextMenu oder ClientSideExtension.ListViewCommandSet.CommandBar.
  • clientSideComponentId: Die ID (GUID) der Erweiterung im App-Katalog. Dieser Eigenschaftswert ist in der Datei „manifest.json“ oder in der Datei "cements.xml" zu finden.
  • clientSideComponentProperties: Dies ist ein optionaler Parameter, der verwendet werden kann, um Eigenschaften für die Erweiterungsinstanz bereitzustellen.

Beispiel

{
  "verb": "createSPList",
  "listName": "CustomList",
  "templateType": 100,
  "subactions": [
      {
        "verb": "setDescription",
        "description": "Custom list to illustrate SharePoint site scripting"
      },
      {
        "verb": "addSPField",
        "fieldType": "Text",
        "displayName": "Text Field",
        "isRequired": false,
        "addToDefaultView": true
      },
      {
        "verb": "addSPField",
        "fieldType": "Number",
        "displayName": "Number Field",
        "internalName": "ElectricSlide",
        "addToDefaultView": true,
        "isRequired": true
      },
      {
        "verb": "associateListViewCommandSet",
        "title": "HelloWorld",
        "location": "ClientSideExtension.ListViewCommandSet.CommandBar",
        "clientSideComponentId": "13234283-d6c2-408f-a9ef-31a920c8ae78",
        "clientSideComponentProperties": "{\"sampleText\":\"added by a site template\"}"
      }
  ]
}

setTitle

Benennt die Liste um. Wenn Sie eine neue Liste mit einem bestimmten Namen erstellen möchten, verwenden Sie statt "setTitle" den Parameter listName in der Aktion CreateSPList.

Hinweis

Durch die Verwendung von setTitle wird die Liste umbenannt, wodurch verhindert wird, dass die Liste aktualisiert wird, wenn die Websitevorlage erneut angewendet wird.

JSON-Wert

  • title: Der Titel der neuen Liste.

Beispiel

{
  "verb": "setTitle",
  "title": "Customers and Orders"
}

Definieren einer neuen Websitespalte

Verwenden Sie das Verb createSiteColumn, um eine neue Websitespalte zu definieren, die dann entweder direkt oder mithilfe der addContentType-Aktion einer Liste zugeordnet werden kann.

JSON-Wert

  • fieldType: Der Typ der hinzuzufügenden Spalte. Unterstützte Werte – wie SPField – sind Text, Note, Number, Boolean, User und DateTime. Informationen zu anderen Datentypen finden Sie unter der addSPFieldXml-Skriptaktion.
  • internalName: Der interne Name der Websitespalte.
  • displayName: Der Anzeigename der Websitespalte.
  • isRequired: True, wenn dieses Feld Informationen enthalten muss, andernfalls False.
  • id: Ein optionales Attribut. Wenn es vorhanden ist, gibt es die ID des Felds an. Der Wert muss ein eindeutige, zufällig generierte GUID sein. Es wird empfohlen, einen Wert hierfür anzugeben, um sicherzustellen, dass das Feld bei einem erneuten Ausführen des Skripts nicht mehrfach hinzugefügt wird.
  • group: Ein optionales Attribut zum Festlegen der Spaltengruppe.
  • enforceUnique: Ein optionales Attribut, das standardmäßig auf False festgelegt ist. Bei Festlegung auf True müssen alle Werte für dieses Feld eindeutig sein.

Beispiel

{
  "verb": "createSiteColumn",
  "fieldType": "User",
  "internalName": "siteColumn4User",
  "displayName": "Project Owner",
  "isRequired": false,
  "id": "181c4370-cdae-471b-9499-730046e55b75"
}

Verwenden Sie das Verb createSiteColumnXml, um eine neue Websitespalte für diese komplexen Datentypen zu definieren, die nicht von createSiteColumn unterstützt werden. Diese Spalten können dann mit einer Liste direkt oder mithilfe der Aktion addContentType verknüpft werden. Die Bereitstellung des ID-Attributs im Feld "schemasXml" ist wichtig, um zu verhindern, dass das Feld mehrere Male erstellt wird, wenn das Skript mehrfach ausgeführt wird.

JSON-Wert

  • schemaXml: Der CAML-Block zum Definieren des Felds.
  • pushChanges: Gibt an, ob diese Änderung an Listen übertragen werden soll, die dieses Feld bereits referenzieren. Standardwert ist True.

Beispiel

{
  "verb": "createSiteColumnXml",
  "schemaXml": "<Field ID=\"{82581bd1-356f-4206-8ff7-a3b6ad1f5553}\" Type=\"Choice\" DisplayName=\"Project Status\" Required=\"FALSE\" Format=\"Dropdown\" StaticName=\"ProjectStatus\" Name=\"ProjectStatus\"><Default>In Progress</Default><CHOICES><CHOICE>In Progress</CHOICE><CHOICE>In Review</CHOICE><CHOICE>Done</CHOICE><CHOICE>Has Issues</CHOICE></CHOICES></Field>"
}

Definieren eines neuen Inhaltstyps

Verwenden Sie createContentType, um einen neuen Inhaltstyp zu definieren, der dann mithilfe der addContentTyp-Aktion einer Liste zugeordnet werden kann.

JSON-Wert

Hinweis

Beim Verweisen auf die Inhaltstyp-ID ist nur einer der drei Verweise erforderlich: ID, parentName oder parentId.

  • name: Der Name des zu erstellenden Inhaltstyps.
  • description: Die optionale Beschreibung des Inhaltstyps.
  • parentName: Der Name des übergeordneten Inhaltstyps.
  • parentId: Die ID des übergeordneten Inhaltstyps.
  • id: Die ID des Inhaltstyps.
  • hidden: Gibt an, ob der Inhaltstyp sichtbar oder ausgeblendet ist.
  • group: Die Gruppe des Inhaltstyps.
  • subactions: Gibt Unteraktionen an, die für den Inhaltstyp ausgeführt werden sollen. Diese werden verwendet, um die hinzuzufügenden Websitespalten festzulegen.

Beispiel

{
  "verb": "createContentType",
  "name": "Contoso Projects",
  "description": "custom list content type",
  "parentName": "Item",
  "hidden": false,
  "group": "Contoso",
  "subactions":
    [
      {
        "verb": "addSiteColumn",
        "internalName": "siteColumn1Text"
      },
      {
        "verb": "addSiteColumn",
        "internalName": "siteColumn2Number"
        },
      {
        "verb": "addSiteColumn",
        "internalName": "siteColumn3Note"
      }
    ]
}

addSiteColumn

Unteraktion, mit der eine zuvor definierte Websitespalte direkt zu einem Inhaltstyp (vorhanden oder über das Websiteskript erstellt) hinzugefügt wird.

JSON-Wert

  • internalName: Der interne Name der hinzuzufügenden Websitespalte.

Beispiel

 {
  "verb": "addSiteColumn",
  "internalName": "siteColumnUser"
 }

removeSiteColumn

Unteraktion zum Entfernen einer Websitespalte aus einer Liste oder einem Inhaltstyp.

JSON-Wert

  • internalName: Der interne Name der zu entfernenden Websitespalte.

Beispiel

 {
  "verb": "removeSiteColumn",
  "internalName": "siteColumnUser"
 }

Verwenden Sie das Verb addNavLink, um der QuickLaunch- oder Hub-Navigation der Website einen neuen Navigationslink hinzuzufügen.

JSON-Werte

  • url: Die URL des hinzuzufügenden Links.
  • displayName: Der Anzeigename des Links.
  • navComponent: Die Komponente, der der Link hinzugefügt werden soll, „QuickLaunch“, „Hub“ oder „Fußzeile“. Die Standardeinstellung ist QuickLaunch.
  • isWebRelative: True, wenn der Link webrelativ ist, andernfalls False. Der Standardwert ist False.
  • parentDisplayName: Ein optionaler Parameter. Wenn angegeben, wird diese Navigation mit einem untergeordneten Element (untergeordneter Link) des Navigationslinks mit diesem displayName-Objekt verknüpft. Wenn dies und parentUrl angegeben sind, wird nach einem Link gesucht, der für beide ein übergeordnetes Element sein kann.
  • parentUrl: Ein optionaler Parameter. Falls angegeben, wird dieser Navigationslink zu einem untergeordneten Element (Unterlink) des Navigationslinks mit dieser URL. Wenn dies und parentDisplayName angegeben sind, wird nach einem Link gesucht, der für beide ein übergeordnetes Element sein kann.
  • isParentUrlWebRelative: Ein optionaler Parameter. True, wenn der Link webrelativ ist, andernfalls False. Der Standardwert ist False.

Beispiel

Hinweis

Wenn Sie einem geschachtelten Websiteelement wie einer Liste einen Link hinzufügen, müssen Sie den Verweispfad ab dem Stamm hinzufügen.

{
  "verb": "addNavLink",
  "url": "/Customer Event Collateral",
  "displayName": "Event Collateral",
  "navComponent":"Hub",
  "isWebRelative": true
},
{
    "verb": "addNavLink",
    "url": "/Lists/Project Activities",
    "displayName": "Project Activities",
    "isWebRelative": true
    },
{
  "verb": "addNavLink",
  "url": "https://learn.microsoft.com/sharepoint/dev/declarative-customization/site-design-overview",
  "displayName": "SharePoint Site Design Overview",
  "parentDisplayName": "Documents"
},
{
  "verb": "addNavLink",
  "url": "https://learn.microsoft.com/sharepoint/dev/declarative-customization/site-design-json-schema#add-a-navigation-link",
  "displayName": "About Site Footer",
  "navComponent":"Footer"
},
{
  "verb": "addNavLink",
  "url": "",
  "displayName": "Linkless Heading",
  "isWebRelative": false
}

Verwenden Sie das Verb removeNavLink, um einen Navigationslink von der Website zu entfernen.

JSON-Werte

  • url: Die URL des zu entfernenden Links.
  • displayName: Der Anzeigename des Links.
  • navComponent: Die Komponente, aus der der Link entfernt werden soll, „QuickLaunch“, „Hub“ oder „Fußzeile“. Die Standardeinstellung ist QuickLaunch.
  • isWebRelative: True, wenn der Link webrelativ ist, andernfalls False.

Beispiel

Hinweis

Diese Aktion kann verwendet werden, um Website-Links zu entfernen, die von den Websitevorlagen für Zusammenarbeit und Kommunikation hinzugefügt wurden (z. B. „Home“, „Dokumente“, „Seiten“ und „Gespräche“).

{
  "verb": "removeNavLink",
  "displayName": "Home",
  "isWebRelative": true
},
{
  "verb": "removeNavLink",
  "displayName": "Pages",
  "isWebRelative": true
},
{
  "verb": "removeNavLink",
  "displayName": "Conversations",
  "isWebRelative": true
},
{
  "verb": "removeNavLink",
  "url": "/_layouts/15/groupstatus.aspx?Target=TEAM",
  "displayName": "Teams",
  "isWebRelative": true
}

Verarbeiten von Sonderzeichen

Websites, die in anderen Sprachen als Englisch erstellt wurden, können Sonderzeichen enthalten. Verwenden Sie die UTF-8-Codierung, um JSON-Inhalt mit Sonderzeichen zu lesen.

Get-Content '<Folder_location_to_site_script>\site-script.json' -Raw -Encoding UTF8

Anwenden eines Designs

Verwenden Sie das Verb applyTheme, um der Website ein benutzerdefiniertes Design hinzuzufügen. Weitere Informationen zum Erstellen und Hochladen von Designs finden Sie unter SharePoint-Websitedesign. Diese Websiteaktion funktioniert nur für das Anwenden benutzerdefinierter Designs. Um ein SharePoint-Produktdesign anzuwenden, müssen Sie eine Kopie eines benutzerdefinierten Designs erstellen und auf dieses Design verweisen.

Hinweis

Diese Aktion ist automatisch für Kanalwebsites blockiert.

JSON-Wert

  • themeName: Der Name des anzuwendenden Designs.

Beispiel

{
  "verb": "applyTheme",
  "themeName": "Blue Yonder"
}

Festlegen von Brandingeigenschaften

Verwenden Sie das setSiteBranding-Verb, um das Navigationslayout, das Kopfzeilenlayout und den Kopfzeilenhintergrund festzulegen.

Hinweis

Das Festlegen des Navigationslayouts funktioniert nur in der Vorlage für die Kommunikationswebsite und bei der Hubnavigation. Diese Aktion ist automatisch für Kanalwebsites blockiert.

JSON-Wert

  • navigationLayout: Dient zum Festlegen des Navigationslayouts als "Cascade" oder "Megamenu".
  • headerLayout: Dient zum Festlegen des Kopfzeilenlayouts als "Standard" oder "Compact".
  • headerBackground: Dient zum Festlegen des Kopfzeilenhintergrunds als „Ohne“, „Neutral“, „Weich“ oder „Hart“
  • showFooter: Gibt an, ob die Fußzeile der Website angezeigt werden soll oder nicht

Beispiel

{
  "verb": "setSiteBranding",
  "navigationLayout": "Megamenu",
  "headerLayout": "Compact",
  "headerBackground": "Strong",
  "showFooter": true
}

Verwenden Sie das Verb setSiteLogo, um ein Logo für Ihre Website anzugeben.

Hinweis

Diese Aktion funktioniert nur für die Kommunikationswebsitevorlage (68).

JSON-Wert

  • url: Die URL des zu verwendenden Logobilds.

Beispiel

{
  "verb": "setSiteLogo",
  "url": "/Customer Event Collateral/logo.jpg"
}

Beitreten zu einer Hubwebsite

Hinweis

Diese Aktion ist automatisch für Kanalwebsites blockiert.

Verwenden Sie das Verb joinHubSite, um die Website einer designierten Hubwebsite hinzuzufügen.

JSON-Wert

  • hubSiteId: Die ID der Hubwebsite für den Beitritt.
  • name: Eine optionale Zeichenfolge, die den Namen der Hubwebsite angibt.

Beispiel

Hinweis

Um die hubSiteIdabzurufen, melden Sie sich mit dem Cmdlet Connect-PnPOnline bei einer Website an, und führen Sie dann Folgendes aus:

$hubSiteName = "My Hub Site"
Get-PnPHubSite | Where-Object { $_.Title -eq $hubSiteName }

Dadurch werden Informationen zur Hub-Website mit dem Namen $hubSiteName zurückgegeben. Der hubSiteId wird als SiteId zurückgegeben.

{
  "verb": "joinHubSite",
  "hubSiteId": "e337cc17-b355-45d2-8dd4-e056f1bcf6f6"
}

Installieren eines Add-Ins oder einer Lösung

Verwenden Sie die Aktion installSolution, um ein bereitgestelltes Add-In oder eine SharePoint-Framework-Lösung aus dem Mandanten-App-Katalog zu installieren.

Beispiel

Hinweis

Um die Lösungs-ID zu erhalten, melden Sie sich mithilfe des Cmdlets Connect-PnPOnline bei einer Website an, und führen Sie dann Get-PnPApp aus. Hierdurch wird eine Liste der bereitgestellten Lösungen zurückgegeben. Für Mandanten mit mehreren Standorten verwenden Sie die Produkt-ID, nachdem Sie die Lösung an jedem Standort eingerichtet haben. Erhalten Sie die Produkt-ID, indem Sie die Lösung in den App-Katalog oder in die Definition der Lösung hochladen.

{
  "verb": "installSolution",
  "id": "d40e4edc-a6da-4cd8-b82d-bba970976803"
}

Registrieren einer Erweiterung

Verwenden Sie die Aktion associateExtension, um eine bereitgestellte SharePoint-Framework-Erweiterung aus dem Mandanten-App-Katalog zu registrieren.

Hinweis

Weitere Informationen zum Erstellen und Konfigurieren einer SharePoint Framework-Erweiterung finden Sie unter Übersicht der SharePoint Framework-Erweiterungen.

JSON-Werte

  • title: Der Titel der Erweiterung im App-Katalog.
  • location: Wird zum Angeben des Erweiterungstyps verwendet. Wenn sie zum Erstellen von Befehlen verwendet wird, wird der Befehl angezeigt. Andernfalls sollte dies auf ClientSideExtension.ApplicationCustomizer festgelegt werden.
  • clientSideComponentId: Die ID (GUID) der Erweiterung im App-Katalog. Dieser Eigenschaftswert ist in der Datei „manifest.json“ oder in der Datei "cements.xml" zu finden.
  • clientSideComponentProperties: Dies ist ein optionaler Parameter, der verwendet werden kann, um Eigenschaften für die Erweiterungsinstanz bereitzustellen.
  • registrationId: Ein optionaler Parameter, der den Typ der Liste angibt, mit der die Erweiterung verknüpft ist (wenn es sich um eine Listenerweiterung handelt).
  • registrationType: Ein optionaler Parameter, der angegeben werden sollte, wenn die Erweiterung einer Liste zugeordnet wird.
  • scope: Gibt an, ob die Erweiterung einem Web oder einer Site zugeordnet wird.

Beispiel

{
  "verb": "associateExtension",
  "title": "SPFXApplicationCustomizer Example",
  "location": "ClientSideExtension.ApplicationCustomizer",
  "clientSideComponentId": "40d64749-a6e5-4691-b440-1e32fb6sean5",
  "scope": "Web"
}

Aktivieren eines Features

Verwenden Sie die Aktion activateSPFeature, um ein Feature von Microsoft Office SharePoint Online zu aktivieren.

JSON-Werte

  • featureId: Die ID des zu aktivierenden Features (GUID).
  • scope: Gibt an, ob das Feature einem web oder einer site zugeordnet wird.

Beispiel

So aktivieren Sie das Web Scoped-Feature, das die Erstellung von Ereignislisten ermöglicht (Feature-ID 00bfea71-ec85-4903-972d-ebe475780106):

{
  "verb": "activateSPFeature",
  "featureId": "00bfea71-ec85-4903-972d-ebe475780106",
  "scope": "web"
}

Auslösen eines Flusses

Verwenden Sie das Verb triggerFlow, um einen benutzerdefinierten Fluss auszulösen.

Tipp

Der Artikel "Aufrufen von Power Automate aus einem Websiteskript" enthält ein End-to-End-Beispiel.

JSON-Werte

  • url: Eine Trigger-URL des Flusses.
  • name: Der Name des Flusses.
  • parameters: Ein optionaler Satz von Parametern, die an den Fluss übergeben werden.

Beispiel

 {
  "verb": "triggerFlow",
  "url": "<A trigger URL of the Flow.>",
  "name": "Record and tweet site creation event",
  "parameters": {
    "event": "Microsoft Event",
    "product": "SharePoint"
  }
}

Konfigurieren von Länder-/Regionaleinstellungen

Hinweis

Diese Aktion ist automatisch für Kanalwebsites blockiert.

Verwenden Sie die Aktion setRegionalSettings, um die regionalen Einstellungen der Website zu konfigurieren (/_layouts/15/regionalsetng.aspx).

JSON-Werte

  • timeZone: Eine Zahl, die die Zeitzone angibt. Eine Liste der zulässigen Werte finden Sie unter SPRegsionalSettings.TimeZones
  • locale: Eine Zahl, die die Kultur-LCID angibt. Eine Liste der zulässigen Werte finden Sie unter Werte der Microsoft-Gebietsschema-IDs
  • sortOrder: Eine Zahl, die die Sortierreihenfolge angibt. Eine Liste der zulässigen Werte finden Sie unter SPRegionalSettings.Collation
  • hourFormat: Gibt an, ob die Website das 12-Stunden- oder 24-Stunden-Zeitformat verwenden sollten.

Beispiel

{
  "verb": "setRegionalSettings",
  "timeZone": 2, /* Greenwich Mean Time */
  "locale": 1050, /* Croatia */
  "sortOrder": 6, /* Croatian */
  "hourFormat": "24"
}

Hinzufügen von Benutzern (Prinzipalen) zu SharePoint-Gruppen

Hinweis

Diese Aktion ist automatisch für Kanalwebsites blockiert.

Verwenden Sie die Aktion addPrincipalToSPGroup, um das Hinzufügen von Benutzern und Gruppen zu ausgewählten standardmäßigen SharePoint-Gruppen zu verwalten. Weitere Informationen finden Sie unter Grundlegendes zu SharePoint-Gruppen. Diese Aktion kann für lizenzierte Benutzer, Sicherheitsgruppen und Microsoft 365-Gruppen verwendet werden.

JSON-Werte

  • principal: Ein erforderlicher Parameter zum Angeben des Namens des Prinzipals (Benutzer oder Gruppe), der der SharePoint-Gruppe hinzugefügt werden soll.
  • group: Ein erforderlicher Parameter, um die SharePoint-Gruppe anzugeben, zu der der Prinzipal hinzugefügt werden soll.

Beispiel

Hinweis

Diese Aktion unterstützt derzeit nur die Gruppen „Besucher“ (Berechtigungsstufe: Lesen), „Mitglieder“ (Berechtigungsstufe: Mitwirken oder Bearbeiten, je nach Websitevorlage) und „Besitzer“ (Berechtigungsstufe: Vollzugriff). Prinzipale müssen einzeln hinzugefügt werden.

{
  "verb": "addPrincipalToSPGroup",
  "principal": "sean@contosotravel.onmicrosoft.com", /* user */
  "group": "Owners"
},
{
  "verb": "addPrincipalToSPGroup",
  "principal": "travelops", /* sg */
  "group": "Owners"
},
{
  "verb": "addPrincipalToSPGroup",
  "principal": "itexecutives", /* mail-enabled sg */
  "group": "Members"
},
{
  "verb": "addPrincipalToSPGroup",
  "principal": "Adventure@contosotravel.onmicrosoft.com", /* o365 group */
  "group": "Visitors"
}

Verwalten des Gastzugriffs

Hinweis

Diese Aktion ist automatisch für Kanalwebsites blockiert.

Verwenden Sie die Aktion setSiteExternalSharingCapability, um den Gastzugriff zu verwalten. Weitere Informationen finden Sie unter Verwalten der externen Dateifreigabe für Ihre SharePoint-Onlineumgebung.

JSON-Werte

  • capability: Ein erforderlicher Parameter zur Angabe der Freigabeoption für die Websitesammlung. Die vier möglichen Optionen sind Disabled, ExistingExternalUserSharingOnly, ExternalUserSharingOnly und ExternalUserAndGuestSharing.

Beispiel

{
  "verb": "setSiteExternalSharingCapability",
  "capability": "Disabled"
}

Siehe auch