}
# Quick Tipp: SharePoint List Formatting: Commandbar
https://365knoten.de/blog/2024-08-07
## Hier zeige ich euch, wie man die Buttons oben in einer Liste anpasst
Hattet ihr auch schonmal das Problem, dass ihr einen der Listenknöpfe, also eines der Kommandos, oberhalb der Liste ausblenden wolltet?
Zum Beispiel könnte es sein, dass ihr den "In Rasteransicht bearbeiten" Knopf verstecken wollt, da eure User nur über das Formular die Daten in der Liste bearbeiten sollen.
Oder vielleicht wollt ihr den "Neu" Knopf auf eurer Liste nach "Neuer Vorgang" umbenennen, damit eure User genauer wissen, was sie beim Klick auf den Button anlegen.
Es gibt viele Dinge, die ihr vielleicht in der Commandbar anpassen wollt. Glücklicherweise ist es nicht wirklich kompliziert, das zu tun.
## Listenformatierungen und Verstecken von Kommandos
Das können wir nämlich mittels einer Listenformatierung tun. Diese Formatierung ist im Grunde eine JSON-Datei in einem bestimmten Format, die wir über die Oberfläche an eine SharePoint Ansicht hängen können.
Hierzu erstellen wir zunächst eine "template.json" Datei auf unserem Rechner und füllen Sie mit diesem Inhalt
```JSON
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"commandBarProps": {
"commands": [
{
"key": "editInGridView",
"hide": true
}
]
}
}
```
'''
Danach öffnen wir unsere Liste, klicken oben rechts auf den Namen der Ansicht und wählen dann "Ansicht formatieren". Jetzt öffnen wir die erweiterte Ansicht und fügen den Inhalt ein und ... Voilà... der Button "In Rasteransicht bearbeiten" ist verschwunden.
Das Vorgehen, um einen Button auszublenden ist hier immer dasselbe: Wir brauchen den internen Namen des Bittons und setzen dann für diesen Button "hide" auf "true".
## Umbenennen von Kommandos
Über denselben Weg können wir dann auch Buttons umbenennen. Wenn wir zum Beispiel in einer Liste "Materialanforderungen" nachverfolgen, dann würde es sich anbieten, dass die "Bearbeiten" und "Neu" Knöpfe die Labels "Materialanforderunge bearbeiten" und "Neue Materialanforderung" haben. Das können wir wie oben über das folgende Template regeln.
```JSON
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"commandBarProps": {
"commands": [
{
"key": "edit",
"text": "Materialanforderung bearbeiten"
},
{
"key": "new",
"text": "Neue Materialanforderung"
}
]
}
}
```
## Andere Icons und Primäre Buttons
Schließlich können wir noch zwei weitere Dinge bei den Kommandos anpassen - Wir können das Icon eines Buttons ändern und die Butten in der Primärfarbe der Webseite hinterlegen. Beides
}
# SharePoint Hub Sites statt Unterwebsites
https://365knoten.de/blog/2024-10-13
## Warum Unterwebsites schlecht sind und Hub-Sites uns helfen
## Einleitung
In der modernen Welt von SharePoint Online gibt es keine Hierarchie mehr zwischen den Sites. Alle Sites liegen technisch gleichwertig nebeneinander. Dies ist ein bedeutender Unterschied zu den alten On-Premise-Sites, bei denen es die Möglichkeit gab, Unterwebsites anzulegen. Diese Funktion existiert in SharePoint Online nicht mehr.
## Was war das Problem mit Unterwebsites?
Unterwebsites waren technisch in einer SiteCollection enthalten. Daher war das Verschieben einer Site in eine andere Position kompliziert. Teilweise wurden SiteCollections durch Unterwebsites riesig, und Sites mit vielen Unterwebsites konnten schlechter gesichert und wiederhergestellt werden. Einzelne Sites sind hier einfacher zu handhaben.
Unterwebsites sind auch keine vollständigen Sites. Sie teilen sich verschiedene Kataloge mit allen anderen Subsites innerhalb der Sitecolletion. Zum Beispiel werden Contenttypen zwischen allen Subsites einer Site geteilt, was schnell unübersichtlich werden kann. Und dann stellt sich schnell die Frage: Welcher Contenttype gehört zu welcher Site? Und kann der gelöscht werden oder nicht.
Außerdem vermischt man mit Subsites Navigation und Datenablage. Warum sollte eine Site überhaupt innerhalb einer anderen Site enthalten sein? Genausogut könnten die auch einfach nebeneinander liegen. Um dann zu einem untergeordneten Thema zu gelangen, ist nur eine leichtgewichtige Navigation nötig, keine physische Ablagestruktur. Das ist "Ordnerdenken" und nicht "Denken in Intranets".
## Gleichberechtigte Sites
Daher ist in modernen SharePoint die Anlage von Subsites im Standard auch ausgeschaltet. Das neue Konzept sieht vor, dass alle Sites physisch nebeneinander liegen und es keine Hierarchie zwischen ihnen gibt.
## Aber manchmal brauche ich so eine Art Hierarchie
Das ist richtig. Als Besitzer eines Intranets möchtest du zum Beispiel, dass die siteübergreifende Navigation auf allen Sites gleich ist und du sie nicht auf jeder Site doppelt pflegen musst. Ferner willst du vielleicht noch andere Einstellungen von einer Site auf viele Sites übertragen.
## Die Hub-Site als Verteiler von Einstellungen
Dafür gibt es das Konstrukt des "Hubs". Ein Hub selbst ist auch nur eine Site, aber du kannst verschiedene Sites an den Hub "andocken". Die Topnavigation, das Theme und je nach Bedarf auch Teile der Berechtigungen werden dann auf die Sites im Hub vererbt. Die Sites liegen aber immer noch nebeneinander und können jederzeit einfach an einen anderen Hub gehängt werden.
## Die Hub-Site als Aggregator von Informationen
Auf der anderen Seite können auf einer Hubsite einfach Informationen von allen Sites im Hub aggregiert werden. So ist es zum Beispiel einfach, alle News und Events von allen Sites einzusammeln und gebündelt auf der Startseite eines Hubs darzustellen. Damit eignet sich die Homepage eines Hubs sehr gut als die Startseite eines Intranets, auf der die neuesten Neuigkeiten und Events der einzelnen Sites dargestellt werden.
## Fazit
Wichtig zu verstehen ist, dass es einen Unterschied zwischen der Ablagestruktur von Sites und der Navigation hin zu einzelnen Sites gibt. Wenn man das einmal verstanden hat, dann ist die Hub-Site ein ganz entscheidender Baustein eines SharePoint-basierten Intranets.
}
# Copilot und das RAG Pattern
https://365knoten.de/blog/2024-11-22
## Trainiert Microsoft mit meinen Daten ein Copilot-Modell?
In der heutigen digitalen Welt sind KI-gestützte Tools wie Microsoft Copilot unverzichtbar geworden, um die Produktivität zu steigern und komplexe Aufgaben zu vereinfachen. Doch mit der zunehmenden Nutzung solcher Technologien kommen auch Bedenken auf, insbesondere hinsichtlich des Datenschutzes und der Sicherheit. Ein häufig gestelltes Frage ist: **Trainiert Microsoft ein KI-Modell mit meinen Daten?** In diesem Blogartikel werden wir diese Frage klären und das **RAG Pattern** (Retrieval Augmented Generation) erläutern, das von Copilot verwendet wird, um diese Bedenken zu zerstreuen.
## Trainiert Microsoft ein KI-Modell mit meinen Daten?
Viele Menschen haben die Befürchtung, dass ihre Daten zum Training von KI-Modellen verwendet werden könnten. Diese Sorge ist verständlich, da persönliche und geschäftliche Daten sensibel sind und geschützt werden müssen. **Dem ist jedoch nicht so.** Microsoft hat klare Richtlinien und Technologien implementiert, um sicherzustellen, dass die Daten der Benutzer nicht zum Training der KI-Modelle verwendet werden.
## Warum wäre das schlecht für Microsoft?
Es gibt mehrere Gründe, warum es für Microsoft nicht praktikabel wäre, individuelle Kundendaten zum Training der KI-Modelle zu verwenden:
1. **Hoher Ressourcenaufwand:** Das Training eines KI-Modells mit den Daten jedes einzelnen Kunden würde enorme Rechnerkapazitäten erfordern. Diese Daten könnten möglicherweise nie genutzt werden, was zu einer ineffizienten Nutzung der Ressourcen führen würde.
2. **Komplexität der Modellaktualisierung:** Wenn Microsoft die GPT-Modelle hinter Copilot mit speziellen Kundendaten trainieren würde, wäre es extrem aufwendig, diese Modelle zu aktualisieren. Jedes Mal, wenn ein neues Modell eingeführt wird, müssten die Daten jedes Kunden erneut integriert werden. Dies würde die Verwaltung und Wartung der Modelle erheblich erschweren.
## Stattdessen benutzt Copilot das RAG Pattern
Um diese Herausforderungen zu umgehen und gleichzeitig die Effizienz und Sicherheit zu gewährleisten, verwendet Microsoft Copilot das **RAG Pattern**. RAG steht für **Retrieval Augmented Generation** und ist eine innovative Methode, um KI-gestützte Antworten zu generieren, ohne die Daten der Benutzer zum Training zu verwenden.
## Wie funktioniert das RAG Pattern?
Das RAG Pattern kombiniert die Stärken der semantischen Suche und der generativen KI, um präzise und relevante Antworten zu liefern. Der Prozess lässt sich in folgende Schritte unterteilen:
1. **Anfrage des Benutzers:** Ein Benutzer stellt eine Anfrage an Copilot, beispielsweise eine Frage oder eine Aufgabe, die erledigt werden muss.
2. **Semantische Suche:** Copilot führt eine semantische Suche durch, um alle Dokumente und Informationen zu finden, die mit der Anfrage des Benutzers in Zusammenhang stehen. Diese Suche basiert auf der Bedeutung der Wörter und Phrasen, um die relevantesten Ergebnisse zu identifizieren.
3. **Weiterleitung an das GPT-Modell:** Die gefundenen Dokumente und die ursprüngliche Anfrage des Benutzers werden an ein schreibgeschütztes GPT-Modell weitergeleitet. Dieses Modell ist darauf spezialisiert, basierend auf den bereitgestellten Informationen eine kohärente und hilfreiche Antwort zu generieren.
4. **Antwortgenerierung:** Das GPT-Modell erzeugt eine Antwort, die auf den gefundenen Dokumenten und der Anfrage des Benutzers basiert. Diese Antwort wird dann von Copilot an den Benutzer zurückgeschickt.
## Vorteile des RAG Patterns
Das RAG Pattern bietet mehrere Vorteile, die sowohl die Sicherheit als auch die Effizienz der KI-gestützten Antworten gewährleisten:
1. **Datenschutz und Sicherheit:** Das GPT-Modell wird von Microsoft innerhalb der Tenant-Grenzen gehostet. Das bedeutet, dass keine Daten aus dem Tenant abfließen oder zum Training verwendet werden. Die Daten bleiben sicher und geschützt innerhalb der Grenzen des jeweiligen Kunden.
2. **Flexibilität und Aktualisierbarkeit:** Microsoft kann das GPT-Modell jederzeit durch ein aktuelleres Modell ersetzen, ohne für jeden Kunden nachtrainieren zu müssen. Dies ermöglicht eine schnelle und effiziente Aktualisierung der Modelle, um stets die besten und neuesten Technologien zu nutzen.
3. **Effiziente Ressourcennutzung:** Durch die Verwendung des RAG Patterns werden die Rechnerkapazitäten effizient genutzt, da nur relevante Informationen für die Antwortgenerierung verwendet werden. Dies reduziert den Ressourcenaufwand und erhöht die Effizienz der KI-gestützten Prozesse.
## Fazit
Das RAG Pattern ist eine leistungsstarke Methode, die von Microsoft Copilot verwendet wird, um präzise und relevante Antworten zu generieren, ohne die Daten der Benutzer zum Training der KI-Modelle zu verwenden. Dies gewährleistet sowohl die Sicherheit als auch die Effizienz der KI-gestützten Prozesse und ermöglicht es Microsoft, stets die neuesten Technologien zu nutzen, um die besten Ergebnisse zu liefern.
Für Softwareentwickler und IT-Entscheider ist es wichtig zu verstehen, wie diese Technologien funktionieren und welche Vorteile sie bieten. Das RAG Pattern ist ein hervorragendes Beispiel dafür, wie innovative Ansätze die Herausforderungen des Datenschutzes und der Effizienz meistern können, um eine sichere und produktive Nutzung von KI-gestützten Tools wie Microsoft Copilot zu gewährleisten.
}
# Die Berechtigungsvererbung für ein Listenelement per PowerAutomate aufheben
https://365knoten.de/blog/2025-02-17
## Die Berechtigungsvererbung für ein Listenelement per PowerAutomate aufheben
import SPRestAPI from "../../../components/RestComponents/SPRestAPI.jsx"
Normalerweise erben Listenelemente und Dateien im SharePoint ihre Berechtigungen vom übergeordneten Ordner oder der Bibliothek/Liste selbst.
Wenn wir das ändern wollen und einem Element eigene Berechtigungen zuweisen wollen, dann müssen wir diese Berechtigungsvererbung zunächst unterbrechen. Erst danach können wir die Berechtigungen an dem Element wie in diesem [Artikel](https://www) beschreiben ändern
Über die Oberfläche machen wir das, indem wir auf die drei Punkte neben dem Element klicken und dann "Zugriff verwalten" auswählen. Hier klicken wir nun wiederum ganz oben rechts auf die drei kleinen Punkte und wählen "Erweiterte Einstellungen". Auf dem sich öffnenden Bildschirm wählen wir nun "Berechtigungsvererbung unterbrechen" aus der Ribbon.
In Powerautomate gibt es daber dazu keine vorgefertigte Aktion und wir müssen sie dort und mittels der “HTTP Anforderung an SharePoint senden” Aktion und der SharePoint RestAPI selber erstellen.
## Die Aktion
"},
{name: "Item ID", key: "itemid", type: "text","description":"Die ID des Items, bei dem die Berechtigung unterbrochen werden soll" ,default:""},
{name: "Bestehende Berechtigungen kopieren", key: "copyRoleAssignments", type: "choice","description":"Sollen die Berechtigungen des übergeordneten Elements an dieses Element kopiert werden oder sollen an diesem Element alle Berechtigungen gelöscht werden?" ,default:"false", "choices":[
{"value":"Keine Berechtigungen an dieses Element kopieren","key":"false"},
{"value":"Berechtigungen des übergeordneten Elements an dieses Element kopieren","key":"true"}
]},
{name: "Subscopes löschen?", key: "clearSubscopes", type: "choice","description":"Sollen auch die Berechtigungen von untergrordneten Elementen dieses Elements entfernt werden oder nicht?" ,default:"true", "choices":[
{"value":"Keine Berechtigungen an dieses Element kopieren","key":"false"},
{"value":"Berechtigungen des übergeordneten Elements an dieses Element kopieren","key":"true"}
]},
]}
body=' '
>
}
# Per PowerAutomate einen Benutzer einer SharePoint Gruppe hinzufügen
https://365knoten.de/blog/2025-02-22
## Auswahlmöglichkeiten einer SharePoint "Auswahl" Spalte per PowerAutomate setzten.
import SPRestAPI from "../../../components/RestComponents/SPRestAPI.jsx"
In Powerautomate findet ihr zwar Aktionen, mit denen ihr M365 Gruppen bearbeiten könnt und mit denen ihr einzelne Freigabelinks für Dateien erstellen könnt, aber ihr findet nicht, womit man Mitglieder zu einer SharePoint Gruppe hinzufügen kann.
Das ist aber kein Problem, da wir hierfür die SharePoint REST API und die Aktion "HTTP Anforderung an SharePoint senden" verwenden können.
## Die Gruppen
Zunächst brauchen wir dafür aber die interne ID der Gruppe, in die wir den User einfügen wollen.
Für die drei Standard-Gruppen sind das die IDs
* 3 für die Besitzergruppe,
* 4 für die Besuchergruppe und
* 5 für die Mitgliedergruppe
Um die IDs einer anderen Gruppe zu bestimmen, schaut euch [diesen Artikel](https://link-url-here.org) an.
## Die Aktionen
"},
{name: "Email Adresse des Users", key: "userMail", type: "text","description":"Der Loginname des hinzuzufügenden Users (als Emailadresse)" ,default:"loginname@domain.com"}
]}
body='{"__metadata":{"type":"SP.User"},"LoginName":"i:0#.f|membership|#userMail#"}'
>
}
# Eine SiteCollection per PowerAutomate erstellen
https://365knoten.de/blog/2025-03-17
## Eine SiteCollection per PowerAutomate erstellen.
import SPRestAPI from "../../../components/RestComponents/SPRestAPI.jsx"
import ParseJsonAction from "../../../components/RestComponents/ParseJsonAction.jsx"
Manchmal wollt ihr vielleicht eine SharePoint Site automatisch per PowerAutomate erstellen.
Das geht im Standard nicht, wir können das aber mittelt der "HTTP Anforderung an SharePoint senden" Aktion und der SharePoint REST API erreichen.
Das Setup ist hier aber ein wenig komplizierter: Statt einfach die Aktion zu benutzen, müssen wir hier sicherstellen, dass der ausführende User auch die Rechte hat, um eine Site zu erstellen.
Bei vielen Tenants ist das nur durch einen SharePoint Administrator möglich. In dem Fall müsst ihr eine Connection an der Aktion einstellen, die die entsprechenden Rechet hat.
## Die Aktionen
Die Ausgabe der Aktion muss dann noch mittels einer "Parse JSON" ("JSON analysieren") Aktion umgewandet werden. Daraus erhalten wir dann die Properties "SiteId" und "SiteUrl", die wir dann im folgenden weiter benutzen können
}
# Auswahlmöglichkeiten einer SharePoint "Auswahl" Spalte per PowerAutomate setzten
https://365knoten.de/blog/2025-03-25
## Auswahlmöglichkeiten einer SharePoint "Auswahl" Spalte per PowerAutomate setzten.
import SPRestAPI from "../../../components/RestComponents/SPRestAPI.jsx"
Ihr könnt in einer SharePoint Liste eine Spalte vom Typ "Auswahl" definieren. Das ist praktisch, dass ihr damit euren Benutzern die Auswahlmöglichkeiten in der Spalte vorgeben könnt.
Leider gibt es im PowerAutomate aber keine Standard-Aktion, um die möglichen Auswahlwerte per Flow zu setzen. Das ist aber kein Problem, da wir hierfür die SharePoint REST API und die Aktion "HTTP Anforderung an SharePoint senden" verwenden können.
## Die Aktionen
"},
{name: "Column Title", key: "columntitle", type: "text","description":"Der Name der zu ändernden Spalte (Displayname)" ,default:""}
]}
body='{"Choices":["Choice 1","Choice 2","Choice 3"],"DefaultValue":"Choice 1"}'
>
}
# Die Homepage einer SharePoint Site per PowerAutomate setzten
https://365knoten.de/blog/2025-04-01/setsphomepage
## Die Homepage einer SharePoint Site per PowerAutomate setzten
import SPRestAPI from "../../../components/RestComponents/SPRestAPI.jsx"
Ihr könnt in der "WebsiteSeiten" Bibliothek eine beliebige Datei markieren und diese dann über das Menu als Homepage/Startseite der aktuellen SharePoint Site setzen.
Was ihr über die Oberfläche aber zum Beispiel nicht machen könnt, ist eine Ansicht einer Liste als Homepage zu definieren. Das gilt auch für diverse andere Systemseiten.
Wenn ihr das trotzdem machen wollt oder einfach nur die Homepage automatisch per PowerAutomate Flow setzen wollt, dann könnt ihr das mittels der SharePoint REST API und der Aktion “HTTP Anforderung an SharePoint senden” erreichen.
## Die Aktionen
}
# MCP, Agenten und LLMS: Science Fiction oder Realität?
https://365knoten.de/blog/2025-06-03
## Der Film "Tron" und moderne Künstliche Intelligenz
## Tron
Im Film „Tron“ aus dem Jahr 1982 wird der von Jeff Bridges gespielte Kevin Flynn in eine digitale Computerwelt transportiert. Dort kämpft er gemeinsam mit dem Programm Tron (gespielt von Bruce Boxleitner) gegen den menschlichen Gegenspieler Ed Dillinger (David Warner) und das sogenannte MCP – das Master Control Program. Ursprünglich als KI-Schachprogramm entwickelt, hat sich das MCP im Laufe der Zeit immer mehr Rechte angeeignet und herrscht schließlich als düstere Kontrollinstanz über die gesamte digitale Welt.
Danach wurde es mehr als vierzig Jahre lang recht still bezüglich der Kombination der Begriffe Künstliche Intelligenz (KI), Programme und MCP. Das hat sich aber in den letzten Monaten mit der Verbreitung generativer KI (Copilot, ChatGPT und Co.) geändert.
Aber keine Angst: Die Möglichkeiten von heute lassen nicht befürchten, dass eine KI seine Reichweite vergrößern will und andere Programme übernimmt... Obwohl, wenn ich so darüber nachdenke... irgendwie schon, aber anders.
Damit ihr die im Moment im Internet herumgeisternden Begriffe Large Language Models (LLM), Agenten und MCP einordnen könnt, werde ich euch erst einmal erzählen, worum es dabei geht.
## Large Language Models: Die Basis für moderne Chatbots
Beginnen wir mit den sogenannten Large Language Models (LLM), großen Sprachmodellen, wie sie in ChatGPT oder Microsoft Copilot zum Einsatz kommen. Diese Technologie ist ein zentraler Bestandteil der KI-Revolution, die vor etwa drei Jahren richtig Fahrt aufgenommen hat.
Dank dieser Modelle können wir in natürlicher Sprache mit einem Chatbot kommunizieren, der uns versteht und auf ein enormes Wissensreservoir zugreifen kann. Technisch basieren LLMs auf komplexen statistischen Verfahren, die Eingaben (Prompts) analysieren und daraus die wahrscheinlich passendste Antwort generieren: als Text, als Bild oder sogar als Video.
Warum sind die Chatbots so beliebt? Das ist einfach zu erklären. Mit so einer generativen KI kann ich mit natürlicher Sprache kommunizieren und bekomme Antworten mit auf den ersten Blick sehr vernünftigen Texten.
Aus Sicht vieler Menschen trifft diese Technologie daher genau den Sweetspot zwischen "gefühlter Einfachheit" und "gefühlter Nützlichkeit”. Das ist ein Effekt, den im Verlauf der Menschheit nur wenige Technologien erzielt haben.
## Agenten automatisieren Aufgaben
Die Leistung von Chatbots ist schon beeindruckend. Aber im Arbeitsalltag möchten wir nicht immer mit einem neuen Prompt bei Null anfangen. Hilfreicher ist es, wenn die KI direkt mit unternehmensspezifischen Daten arbeiten und bestimmte Aufgaben automatisch übernehmen kann.
Hier kommen sogenannte Agenten ins Spiel (bei ChatGPT heißen sie Custom GPTs, bei anderen Herstellern können sie auch andere Namen haben). Diese lassen sich mit speziellem Wissen und klaren Anweisungen ausstatten, um definierte Aufgaben zu erfüllen.
Ein Beispiel: Ein Chatbot für den Bereich Human Ressources (HR) kann so konfiguriert werden, dass er ausschließlich auf Informationen aus dem Intranet zugreift und nur Fragen zu Karriere und Bewerbung beantwortet. Sobald seine Informationen nicht mehr ausreichen, verweist er an eine zuständige Kollegin oder einen Kollegen. So entlastet er das HR-Team bei Routinefragen.
## Autonome Agenten arbeiten automatisch
Bis hierhin läuft die Interaktion noch über einen klassischen Chat: Die Benutzer:innen stellen Fragen – der Agent antwortet. Doch was, wenn die KI von sich aus aktiv wird?
Genau das leisten autonome Agenten: Sie reagieren auf Auslöser und führen anschließend eigenständig Aktionen aus.
Ein autonomer Agent erkennt beispielsweise automatisch eingehende Rechnungen in E-Mails, extrahiert Kundennamen, Rechnungsnummer und Betrag und leitet die Nachricht je nach Kunde an den:die zuständige Sachbearbeiter:in weiter.
Ein anderer Agent erstellt uns jeden Morgen automatisch eine Zusammenfassung der wichtigsten E-Mails vom Vortag und schickt sie uns. Mit ein wenig Kreativität sind hier die Möglichkeiten riesig.
## Model Context Protocol: Werkzeuge in der Hand der KI
Das Model Context Protocol (MCP) ermöglicht Agenten die Ausführung noch komplexerer Aufgaben: Es handelt sich um eine standardisierte und herstellerunabhängige Schnittstelle, mit der Agenten eigenständig Informationen aus anderen Systemen abrufen oder dort Aktionen ausführen können.
Ein Beispiel: Ein Agent greift über MCP auf ein SAP-System zu, liest bestimmte Daten aus, analysiert diese aufgrund seines Prompts und führt für jeden Datensatz eine definierte Transaktion im SAP aus. Es arbeitet also genauso wie ein Softwareprogramm, nur dass dieses in natürlicher Sprache formuliert ist.
Solche Integrationen sind keine Zukunftsmusik: SAP integriert MCP bereits aktiv in seine Produkte.
Zum Beispiel auch die 3D-Software Blender bietet eine MCP-Schnittstelle. Damit können Anwender:innen per Chat ihre lokale Blender-Instanz steuern: zur Vereinfachung, wenn sie nicht alle Blender Befehle und Shortcuts kennen, oder zur Effektivitätssteigerung, wenn sie dem Programm direkte fachliche Anweisungen geben wollen (z.B. „Vergrößere die Ohren bei dem 3D-Modell eines Hasen, das ich gerade bearbeite.“).
Immer mehr Hersteller entwickeln solche Schnittstellen – nicht nur für große Cloud-Anwendungen, sondern auch für lokale Programme. So können Agenten künftig mit nahezu jeder Software interagieren und Aufgaben für uns übernehmen.
## Die nahe Zukunft: Agenten vs. Werbetreibende
Das alles muss man erst einmal sacken lassen, denn die Auswirkungen sind enorm. Wir können Prozesse in natürlicher Sprache definieren, automatisieren und Software fernsteuern. Richtig eingesetzt, können Agenten unsere Arbeit deutlich effizienter machen.
Und es geht noch weiter: Stellen wir uns einmal vor, ich sage einem Einkaufsagenten, dass ich neue T-Shirts brauche. Der Agent sucht selbstständig passende Angebote im Web, legt sie in den Warenkorb und fordert mich nur noch auf, den Kauf abzuschließen.
Zukunftsmusik? Keineswegs. Ich habe solche Prototypen Ende Mai live auf dem European Collaboration Summit gesehen.
Autonome Agenten wie der T-Shirt-Einkäufer haben nun aber auch weitreichende Folgen:
* Ich war als Nutzer selbst nicht mehr auf der Webseite eines Unternehmens. Das bedeutet: Ich habe dort keine Werbung gesehen.
* Ich habe selbst nicht entschieden, wo gekauft wird. Das hat der Agent für mich übernommen.
Webseitenbetreiber müssen sich darum fragen, wie sie mit dieser Entwicklung umgehen:
* Wenn ich auf meiner Seite Werbung schalten und die Agenten blockieren würde, damit Nutzer:innen die Anzeige sehen, verlöre ich potenzielle Kunden. Sie würden von ihrem Agenten schlicht nie mehr auf meine Seite geschickt. So platziere ich mich quasi selbst auf die zweite Seite der Suchergebnisse bei Google.
* Wenn meine Seite zwar hübsch aussieht, aber für Agenten schwer lesbar ist, dann werden diese meine Services nicht an ihre Benutzer weiterleiten. Als Webseitenbetreiber muss ich mir daher Gedanken über eine barrierefreie Gestaltung meiner Seite machen (die übrigens jetzt schon für viele digitale Produkte und Services gesetzlich vorgeschrieben ist).Diese fördert u.a. mit strukturierten Daten die Lesbarkeit der Seite.
* Als Konsequenz wird auch SEO an Bedeutung verlieren. Es wird stattdessen wichtiger, die Inhalte und Daten meiner Website so zu optimieren, dass sowohl Menschen als auch KI-Agenten sie leicht verstehen. So lenke ich mehr Agenten auf meine Seite und damit mehr Benutzer auf meine Webseite.
## Der letzte Akt unserer Geschichte
Dies ist nur der Anfang und nur ein Bereich, in dem Agenten in den nächsten Monaten und Jahre gewaltige Auswirkungen haben werden. Sie werden immer mehr Fähigkeiten gewinnen und uns in noch nicht bekanntem Maß Aufgaben abnehmen können.
Es ist jedoch eher unwahrscheinlich, dass ein Szenario wie das in "Tron" wahr wird, in dem ein Schachprogramm sich selbstständig alle anderen Programme untertan macht und danach als "Master Control Program" die digitale Welt beherrscht.
So etwas wie das Programm Tron hingegen halte ich für sehr realistisch. Im Film wurden ihm nämlich von seinem Programmierer die Fähigkeiten und der Auftrag übergeben, die Macht des MCP zu brechen und Ordnung in der digitalen Welt wiederherzustellen. Tron ist ein gutes Beispiel für einen Agenten, der in der Lage ist, den ihm erteilten Auftrag eigenständig und mithilfe der ihm zur Verfügung gestellten Werkzeuge auszuführen.
}
# Hoste eine Webseite in Azure
https://365knoten.de/blog/2025-08-12
## Wenn du eine reine HTML basierte Webseite hast, dann kannst du die einfach in Azure hosten.
Ich hatte neulich einen Kunden, der eine interne HTML-basierte Webseite mit PDF Berichten hostet. Diese Seite war mal auf einem Webserver im internen Unternehmensnetz gespeichert, soll aber nun aus dem Internet erreichbar sein, damit per Smartphone darauf zugegriffen werden kann.
Die HTML-Seiten der Webseite selber werden übrigens mittels Excel und vieler Makros generiert. Das ist auch ein spannendes Konstrukt, aber von dem erzähle ich euch ein anders Mal.
Es gibt an das Hosting der Webseite einige Anforderungen:
* Sie soll nur für Mitarbeiter des Unternehmens sichtbar sein
* Der bestehende Erzeugungsmechanismus soll bestehen bleiben. Nur der bisherige "Kopier" Mechanismus auf den lokalen Webserver soll durch einen ebenso einfachen anderen Mechanismus ersetzt werden.
Das können wir mittels Azure und einer kleinen "nodejs" Anwendung abbilden
## Eine Webapp im Azure anlegen
Legen wir zunächst die Webseite im Azure an. Dazu öffnen wir zuerst die Azure Startseite
[https://portal.azure.com/](https://portal.azure.com/)
und suchen dann oben in der Suchleiste nach "App Services".

Dann wählen wir oben links "Create" und erstellen eine neue Web App.

Nun gelangen wir auf den Erstellungsformular einer neuen Webapp. Hier müssen wir zunächst eine ResourceGroup anlegen. Das ist eine Art Ordner, der verschiedene inhaltlich zusammengehörende Azure Dienste bündelt. Ich wähle hier "HTMLFileHosting". Der Name ist aber im Prinzip egal.

Danach müssen wir die Programmiersprache auswählen, in der unsere App geschrieben ist. Im Moment haben wir zwar noch keine App, sondern nur ein paar HTML-Dateien, aber wir werden im Folgenden eine "nodejs" Applikation erstellen, mit der wir die HTML-Dateien hosten. Daher wählen wir "Node 22. LTS" aus. Die Region (Das Rechenzentrum), in dem wir die WebApp hosten wollen, setze ich auf "Germany West Central" (Das im Moment mir nächste Rechenzentrum)

Danach klicke ich unten auf den "Review & Create" Button und auf dem nächsten Screen auf den "Create" Button. Nun wird die Webapp erstellt. Ich warte nun, bis mir mitgeteilt wird, dass das Deployment beendet wurde. Danach klicke ich auf "Go to resource", um auf den Konfigurationsbildschirm der Webapp zu kommen.

## Konfiguration und Sicherheit
Gut, nun haben wir eine leere Webapp erzeugt. Bei der Webapp müssen wir nun zwei Dinge einstellen:
* einen einfachen Deployment Mechanismus
* Authentifizierung. Wir wollen, dass nur Mitarbeiter des Unternehmens diese Seite sehen dürfen.
Wir befinden uns nun erstmal auf der Haupt-Konfigurationsseite der Webapp.

Auf der rechten Seite sehen wir die URL der App. Wir können sie im Browser öffnen und sehen einen Platzhalter-Text. Die URL sieht etwas kryptisch aus, aber dem Kunden war das erstmal egal. Wir können unsere eigene URL für diese App definieren, aber das tue ich nicht im Rahmen dieses Beitrags.

Wir beginnen mit der Konfiguration, indem wir links im Menu auf "Settings"-> "Configuration" klicken

Hier müssen wir zwei Schalter auf "On" setzten:
- "SCM Basic Auth Publishing enabled"
- "FTP Basic Auth Publishing enabled"
Mit diesen beiden Schaltern aktiviere wir später auf dem "Deployment" Bildschirm die Möglichkeit, dass wir per Git und unserem eigenen Passwort deployen können.

Zunächst sichern wir die App aber erstmal ab. Dazu wechseln wir auf den "Authentication" Bildschirm.

Hier ist noch kein Identity Provider installiert. Das bedeutet, dass die App für jeden aus dem Internet zugreifbar ist. Das ändern wir, indem wir auf "Add Identity Provider" klicken

Wir wählen den Provider "Microsoft" aus und lassen alle anderen Einstellungen so, wie sie sind. Der Effekt ist nun, dass nur noch Benutzer auf die Seite zugreifen können, die im Microsoft Entra des Unternehmens aufgelistet sind. Damit ist schonmal eine der Anforderungen erfüllt.

## Deployment Einstellungen
Nun müssen wir die App noch einfach deployen können. Dazu wechseln wir ins "Deployment Center".

Hier können wir uns als Quelle für das Deployment verschiedene Versionsverwaltungssysteme auswählen. Danach könnten wir definieren, dass die App automatisch neu deployt werden soll, sobald sich in dem Versionsverwaltungssystem etwas ändern.
In diesem Szenario hat der Kunde aber keines, sondern nur automatisch erzeugte HTML-Dateien. Daher wählen wir hier zur Einfachheit die Variante "Local Git". Damit wird uns in der WebApp ein Git Zugang bereitgestellt. Wenn wir dorthin Dateien per Git pushen, dann werden diese automatisch in die Webapp deployt. Wunderbar, das lässt sich einfach lokal skripten. Dazu aber später mehr.
Zunächst wählen wir hier "Local Git" und klicken auf "Save".

Danach ändert sich der Bildschirm und wir können uns die "Git Clone URL" kopieren. Das ist die Adresse, an die wir später per Git unsere Webseite pushen können

Dazu brauchen wir aber Benutzername und Passwort. Die können wir uns unter dem Reiter "Local Git/FTPS Credentials" im Bereich "User Scope" selber setzen


## Eine nodejs App als Webserver
Nun müssen wir in einem lokalen Verzeichnis unsere Webapplikation erstellen. Das klingt schlimmer als es ist - sie besteht nur aus zwei Textdateien und einem Ordner.
Legen wir zunächst den leeren Ordner "public" an. In diesem Ordnet legen wir dann später die HTML-Dateien ab, die wir später hosten wollen.
Dann legen wir eine leere Datei namens "package.json" and und fügen diesen Inhalt ein:
```json
{
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^5.1.0"
}
}
```
Das ist die Haupt-Projektdatei unseres Webservers. Sie enthält eigentlich nur zwei Einträge: Die Definition, wie der Server zu starten ist und die Information, dass der Server die Bibliothek "Express" braucht. Das reicht der Webapp erstmal.
Nun legen wir eine weitere Textdatei namens "server.js" an.
```javascript
const express = require('express')
const app = express()
const port = process.env.PORT
app.use(express.static('public'))
app.listen(port, () => {
console.log(`App Listening ${port}`)
})
```
Die paar Zeilen Code definieren einen Webserver, der alle Dateien aus dem Verzeichnis "public" hosted.
Fügt nun noch die HTML und CSS Dateien in das public Verzeichnis ein und dann war es das mit der Erstellung des Servers.

Jetzt müssen wir dieses Verzeichnis nur noch automatisch per Skript in unsre Webapp deployen.
## Deployment per Git
Das machen wir, wie oben schon angedeutet, über das Git-Tool. Das ist eigentlich ein Tool zur Versionskontrolle von Quellcode, es lässt sich aber auch anderes anwenden. Zunächst müssen wir das Tool installieren, falls es noch nicht geschehen ist.
Ladet euch dazu den Installer von [dieser Webseite](https://git-scm.com/downloads) herunter und führt ihn aus.
Öffnet danach eine Windows Kommandozeile oder Powershell und navigiert in das Verzeichnis, was wir eben erstellt haben. Ich klicke eigentlich immer mit der rechten Maustaste irgendwo in das Verzeichnis und wähle "In Terminal öffnen", aber das könnt ihr machen, wie ihr wollt.

Wichtig ist nur, dass ihr für die nächsten Schritte in dem Verzeichnis seid, das wir vorhin angelegt haben.
Führt nun nacheinander die folgenden Kommandos aus:
Zunächst initialisieren wir ein leere Git-Repository in dem Ordner
```
git init
```
Dann fügen wir alle Dateien in dem Ordner zum Repository hinzu und checken sie mit dem Kommentar "Initiales Einchecken" ein
```
git add *
git commit -m "Initiales Einchecken"
```
Jetzt definieren wir ein neues Remote-Repository namens "azure" mit der Git-URL, die wir in einem der Schritte oben definiert haben.
```
git remote add azure
```
Also zum Beispiel in meinem Fall. Kopiert das aber nicht, benutzt in jedem Fall eure eigene URL.
```
git remote add azure https://htmlfilehosting-b8hcakgbeffggsad.scm.germanywestcentral-01.azurewebsites.net:443/HTMLFileHosting.git
```
Wunderbar. Nun führen wir als letztes den folgenden Befehl aus
```
git push azure main:master
```
Damit weisen wir Git an, unser lokales Repository an das Deployment Repository im Azure zu verschicken. Anders ausgedrückt: Wir weisen Git an, das Deployment zu starten.
Ihr werdet nun noch auf die eine oder andere Art nach einem Benutzernamen und Passwort gefragt werden. Gebt hier die Credentials ein, die wir oben als User Credentials vergeben haben. Git speichert die Daten für zukünftige Deployments.

Die Webseite deployt nun und ist nach ein paar Sekunden unter der App URL verfügbar.
Beim ersten Login müsst ihr wahrscheinlich noch einmal der Berechtigungsanfrage von Microsoft Entra zustimmen, aber danach läuft die App per Password abgesichert.
Wir sind nun mit dem initialen Deployment fertig.

## Und nun?
Super, jetzt ist die Seite deployt und per Entra Authentifizierung abgesichert. Vielleicht denkt ihr nun, dass das alles ein wenig kompliziert war und dass ihr das noch bei jeder Änderung der HTML-Dateien wiederholen wollt.
Das braucht ihr aber auch glücklicherweise nicht.
Falls sich in Zukunft etwas an den HTML-Dateien ändert, dann braucht ihr nur in dem Verzeichnis diese drei folgenden Befehle ausführen
```
git add *
git commit -m "Neue Version der Dateien"
git push azure main:master
```
Git wird dann alle geänderten Dateien einchecken und deployen. Wenn ihr diese drei Befehle nun in z.B. in den Windows Scheduler einträgt und sie jeden Tag ausgeführt werden, dann werden immer alle im Laufe des Tages erzeugten Dateien im Verzeichnis "public" deployt.
Sollte es keine Änderungen gegeben haben, führen die drei Kommandos ansonsten auch kein weiteres Deployment durch.
}
# Digitale Analogien – Wie Bürogegenstände helfen, Microsoft 365 besser zu verstehen
https://365knoten.de/blog/2026-03-19
## Habt ihr euch schonmal gefragt, wann ihr wo Dateien im M365 abspeichern solltet? Ich erkläre euch das mal mit ein paar Analogien.
import { Image } from 'astro:assets';
import egg from './1774005477577.png';
Die digitale Arbeitswelt kann manchmal verwirrend sein – besonders, wenn es um die richtige Ablage von Dateien in Microsoft 365 geht. Viele Nutzer stehen vor der Frage: Wo speichere ich was? Teams, SharePoint, OneDrive – und was ist eigentlich ein privater Kanal? Um das verständlich zu machen, nutze ich fünf Analogien aus dem Büroalltag. Sie helfen, die Funktionen und Einsatzbereiche der verschiedenen Tools greifbar zu machen.
Diese Analogie will ich euch heute im Rahmen der Serie "Eggs of Knowledge" vom [MVP-Treff](https://www.mvptreff.de/) nahebringen. Schaut da mal vorbei, es da könnt ihr noch viele weitere spannende EInblicke zu Projekten, Best Practices und Perspektiven rund um Microsoft 365, Copilot und Modern Work finden.
# Rollcontainer – Dein persönlicher Speicher: OneDrive

Stell dir deinen Rollcontainer unter dem Schreibtisch vor: Er gehört nur dir, du kannst ihn abschließen und alles darin ablegen – von Akten bis zur Banane. Es gibt keine vorgeschriebene Ordnung, und niemand außer dir hat Zugriff.
In der digitalen Welt entspricht das dem OneDrive: Dein persönlicher Speicherplatz, in dem du alles ablegen kannst, was du möchtest. Wichtig: Wenn du das Unternehmen verlässt, wird der Rollcontainer geleert und die Inhalte vernichtet – genauso wird dein OneDrive gelöscht und die Dateien gehen verloren. Für langfristige Unternehmensdaten ist OneDrive daher nicht geeignet.
# Aktenschrank – Gemeinsame Ordnung: SharePoint

Der Aktenschrank steht im Flur und ist für alle zugänglich. Hier gibt es eine klare Ordnung, auf die sich das Team geeinigt hat – zum Beispiel nach Jahren sortiert. Die Akten bleiben auch nach deinem Ausscheiden im Unternehmen erhalten.
SharePoint ist das digitale Pendant: Thematisch geordnete Speicherorte, auf die mehrere Personen zugreifen können. Die Inhalte sind nicht an einzelne Nutzer gebunden und überdauern deren Zeit im Unternehmen. SharePoint eignet sich für langfristige, teamübergreifende Dokumentenablage.
# Projektraum – Zusammenarbeit auf Zeit: Microsoft Teams Team

Ein Projektraum ist ein temporärer Raum, in dem ein Projektteam zusammenkommt, gemeinsam arbeitet und kollaboriert. Hier können Aktenschränke, Kalender und Aufgabenlisten aufgestellt werden – alles, was für das Projekt relevant ist. Die Tür ist abschließbar, nur das Projektteam hat Zugang.
Microsoft Teams bildet diesen Projektraum digital ab: Ein Team kann gemeinsam auf Ressourcen wie SharePoint, Planner und Kalender zugreifen und jedes Teammitglied hat automatisch Zugriff auf alle Ressourcen im Team. Die Zusammenarbeit ist effizient und auf das Projekt zugeschnitten.
# Abgeschlossene Ecke im Projektraum – Private Kanäle in Teams

Im Projektraum größerer Projekte gibt es manchmal eine kleine, abgeschlossene Ecke – zum Beispiel für die Projektleitung. Hier sind bestimmte Akten und Informationen nur für ausgewählte Personen zugänglich. Um dorthin zu gelangen, muss man aber grundsätzlich immer zuerst durch den Projektraum. In den den privaten Raum zu gelangen, ohne den Projektraum zu durchqueren, ist unmöglich.
Private Kanäle in Teams funktionieren genauso: Sie sind abgetrennte Bereiche innerhalb eines Teams, zugänglich nur für bestimmte Mitglieder. Man kann niemanden nur in den privaten Kanal einladen, man muss immer durch das Team dorthin gelangen.
Auch stehen dort einige Funktionen wie etwa der Microsoft Planner nicht zur Verfügung – So wie auch die kleine abgeschlossene Ecke im Projektraum kein vollwertiger Raum ist und man dort auch nicht alles machen kann, da man dort ggf. keine echten Wände hat, sondern vielleicht nur Glasscheiben, die die Ecke vom Projektraum trennen.
# Meetingraum – Temporärer Austausch: Microsoft Teams Meetings

Ein Meetingraum wird für Besprechungen genutzt. Die Teilnehmer bringen ihre Unterlagen mit, tauschen sich aus und nehmen die Akten danach wieder mit zurück ins Büro. Im Meetingraum bleibt nichts dauerhaft liegen.
Microsoft Teams Meetings sind das digitale Äquivalent: Dateien können während des Meetings geteilt und bearbeitet werden, sind aber nicht für die dauerhafte Ablage gedacht. Nach dem Meeting sollten die Dateien wieder in den richtigen Aktenschrank (SharePoint) oder Rollcontainer (OneDrive) zurückgelegt werden.
Den analogen Meetingraum solltet ihr ja auch in dem Zustand hinterlassen, in dem ihr ihn vorgefunden habt. Spätestens bei der Säuberung des Raumes werden dort dann ja auch dann alle Gegenstände entfernt, die da nicht hingehören.
# Kurzgesagt
Ich hoffe, die Analogien haben euch ein wenig geholfen und ihr habt nun ein besseres Verständnis, wann man wo in M365 Dateien ablegen sollte. Ich fasse hier nochmal kurz zusammen:
* OneDrive für persönliche, temporäre Dateien
* SharePoint für teamübergreifende, langfristige Dokumente
* Teams für projektbezogene Zusammenarbeit
* Private Kanäle für vertrauliche Bereiche im Team
* Meetings für den kurzfristigen Austausch
}
# Listenelemente oder Dokumente, die nur ich und ein Admin sehen kann
https://365knoten.de/blog/2023-02-06
## Was muss ich denn machen, wenn ich Elemente in einer Liste brauche, die nur der Ersteller und etwa der Vorgesetzte sehen können sollen?
Das ist eine häufig gestellte Anforderung. Ich als Mitarbeiter soll/muss in einer Liste Daten eintragen, die aber außer mir und einem Vorgesetzten/Prozessverantwortlichen niemand sonst sehen soll.
Das kann ich mittels eines Power Automate Prozesses lösen, der bei jedem Element die Berechtigungen neu setzt. Brauche ich aber nicht.
Ich kann das nämlich einfach mit SharePoint Bordmitteln lösen. In diesem Beispiel erstelle ich dazu zunächst eine Liste. Mit einer Dokumentenbibliothek geht es aber genauso.
Bei dieser Liste öffne ich die Listeneinstellungen ("Rädchen"->"Listeneinstellungen") und öffne dort "Erweiterte Einstellungen". Dort ist der Abschnitt "Berechtigungen auf Elementebene" für mich interessant.
Hier ändere ich den "Lesezugriff auf "Elemente lesen, die vom Benutzer erstellt wurden" und den "Erstellungs- und Bearbeitungszugriff" auf "Elemente erstellen und bearbeiten, die vom Benutzer erstellt wurden"

Nun kann ich als Benutzer immer noch Elemente in meiner Liste erstellen und sehen, welche Elemente ich erstellt habe.
Was ist jetzt mit dem Vorgesetzten? Den mache ich zum Websitesammlungsadministrator.
Geht dazu zu "Rädchen"->Websiteinformationen->"Alle Websiteinformationen anzeigen"->"Websiteberechtigungen" und klickt dann oben auf "Websitesammlungsadministratoren"

Diese Benutzer haben Rechte auf alles in der Site (Tatsächlich ist bei ihnen die Berechtigungsprüfung technisch einfach ausgeschaltet). Damit kann ein Websitesammlungsadministrator auch wiederum alle Elemente in unserer Liste lesen. Also fügen wir den Vorgesetzten hier mit ein.
Das bedeutet aber auch, dass der Vorgesetzte alles andere auf dieser Website sehen und bearbeiten kann. Was ist, wenn ich das nicht will?
Das ist eine Frage der Architektur deiner SharePoint Seiten. Ich persönlich tendiere dazu, viele Seiten zu haben, aber in jeder Seiten wenige oder gar nur einen Anwendungsfall abzubilden. Also würde ich eine komplett eigene Webseite haben, in der nur diese eine Liste liegt. Damit gibt es kein weiteres Berechtigungsproblem.
}
# Power Automate und SharePoint Location Spalten passen nicht zusammen
https://365knoten.de/blog/2023-01-29
## Mit den PowerAutomate Standard-Aktionen gibt es Probleme bei SharePoint Location Spalten
Wenn ihr im SharePoint eine Liste erstellt, dort eine Spalte vom Typ "Location" hinzufügt und auch noch einstellt, dass sie Informationen enthalten muss, dann funktioniert das in SharePoint sehr gut. Ich kann dann dort nach einer Adresse suchen und bekomme automatisch alle Informationen wie Straße, Postleitzahl etc.

Versuche ich dann aber mit PowerAutomate auf diese SharePoint Liste zuzugreifen, dann bekomme ich diese Fehlermeldung:
> The dynamic operation request to API 'sharepointonline' operation 'GetTable' failed with status code 'BadRequest'. This may indicate invalid input parameters. Error response: { "status": 400, "message": "The required field \"Location\" data type is not supported clientRequestId: d910e62e-3d24-4c76-90cf-af6075b93ab5 serviceRequestId: d910e62e-3d24-4c76-90cf-af6075b93ab5" }
Mit dem Spaltentyp "Location" scheinen die PowerAutomate Aktionen nicht wirklich gut umgehen zu können.
## Ein Location Feld auslesen
Das ist aber nicht weiter schlimm, dafür haben wir die "Send an HTTP request to SharePoint" Aktion.

Als Ergebnis bekommen wir für unser Location Feld das hier
```JSON
{
...
"Location":"{\"EntityType\":\"LocalBusiness\",\"LocationSource\":\"Bing\",\"LocationUri\":\"https://www.bingapis.com/api/v6/localbusinesses/YN873x16209519703153017334\",\"UniqueId\":\"https://www.bingapis.com/api/v6/localbusinesses/YN873x16209519703153017334\",\"DisplayName\": \"Microsoft Corporation\",\"Address\":{\"Street\": \"1 Microsoft Way\",\"City\": \"Redmond\",\"State\": \"WA\",\"CountryOrRegion\": \"US\",\"PostalCode\": \"98052\"},\"Coordinates\": {\"Latitude\": 47.6398811340332,\"Longitude\": -122.12833404541016}}"
...
}
```
was wir nochmal mittels einer "Parse JSON" Aktion parsen können
```JSON
{
"EntityType": "LocalBusiness",
"LocationSource": "Bing",
"LocationUri": "https://www.bingapis.com/api/v6/localbusinesses/YN873x16209519703153017334",
"UniqueId": "https://www.bingapis.com/api/v6/localbusinesses/YN873x16209519703153017334",
"DisplayName": "Microsoft Corporation",
"Address": {
"Street": "1 Microsoft Way",
"City": "Redmond",
"State": "WA",
"CountryOrRegion": "US",
"PostalCode": "98052"
},
"Coordinates": {
"Latitude": 47.6398811340332,
"Longitude": -122.12833404541016
}
}
```
Damit haben wir alle Informationen, die in der Location Spalte gespeichert waren.
## Ein Location Feld aktualisieren
Umgekehrt funktioniert das Updaten eines Listenelements auch mit einer "Send an HTTP request to SharePoint" Aktion.

Hierzu müssen wir das JSON wieder in einem String encodieren und dann mittels der SharePoint API speichern.

Falls wir die ganzen Geo-Koordinaten nicht zur Verfügung haben können wir übrigens SharePoint danach suchen lassen. Damit werden die meisten der Daten automatisch aufgelöst.
Wir können das etwas komplexe JSON oben zu diesem hier vereinfachen.
```JSON
{
"DisplayName": "Bremen, Hauptbahnhof",
"EntityType": "Custom"
}
```
Solange der DisplayName eindeutig ist, wird dieser Wert automatisch in Geo-Koordinaten aufgelöst,

und wir bekommen den Eintrag zum Bremer Hauptbahnhof

}