相変わらず PowerShell なんですけれども。
Geolocation 列に値を入れる方法については以下にまとまっています。FieldGeolocationValue を使ってねということのようです。
それでは実際にやってみます。
$item = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation $item = $list.AddItem($item) $value = New-Object Microsoft.SharePoint.Client.FieldGeolocationValue $value.Latitude = 10 $value.Longitude = 10 $item["Location"] = $value $item.Update() $ctx.Load($item) $ctx.ExecuteQuery()
実行すると…?
"0" 個の引数を指定して "ExecuteQuery" を呼び出し中に例外が発生しました: "The geolocation value does not represent a geo graphical point. Either the value is not in the correct format or it is not in the valid range." 発生場所 行:1 文字:1 + $ctx.ExecuteQuery() + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : ServerException
正解はこっち。値を明示的に指定してあげる必要があります。
$item = New-Object Microsoft.SharePoint.Client.ListItemCreationInformation $item = $list.AddItem($item) $value = New-Object Microsoft.SharePoint.Client.FieldGeolocationValue $value.Latitude = 10 $value.Longitude = 10 $item["Location"] = [Microsoft.SharePoint.Client.FieldGeolocationValue]$value $item.Update() $ctx.Load($item) $ctx.ExecuteQuery()
ちなみに FieldLookupValue や FieldUserValue でも同じ現象が発生します。もっともこちらは ID を指定して更新できるので使わないという手もありますけど。