Power Automate und SharePoint Location Spalten passen nicht zusammen

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.

SpLocation

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.

GetItems

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.

UpdateItem

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

LocationMicrosoft

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,

UpdateItemSimple

und wir bekommen den Eintrag zum Bremer Hauptbahnhof

LocationHauptbahnhof

Hat dir das gefallen? Vielleicht magst du auch...

SharePoint Virtual Tables

SharePoint Listen als virtuelle Tabellen im Dataverse

Quick Tip: Per PowerAutomate eine Mail an eine SharePoint Gruppe senden

Das sieht auf den ersten Blick vielleicht kompliziert aus, aber wir brauchen dafür nur eine Aktion

Was genau bedeutet "Low Code"?

Viele Leute sprechen von vielen verschiedenen Dingen, wenn sie "Low Code" sagen und meinen verschiedene Applikationstypen