Power Automate und SharePoint Location Spalten passen nicht zusammen

Power Automate und SharePoint Location Spalten passen nicht zusammen

So. Jan. 29 2023
SharePoint Power Automate Keine Kategorien zugewiesen

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

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

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

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