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
{
...
"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
{
"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.
{
"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