HTTP要求(REST)を使ってリストアイテムを更新する

[Microsoft 365の活用ネタのまとめに戻る](https://qiita.com/Keiji_otsubo/items/5ddec87d5f1fd4e9f4af)


フローを複製して作る時に変更箇所を確実に変更できるように変数を使いたいと思っています。

リスト名を変数にすることで、対応できそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ec399a79-b8ef-b485-5e0d-60fcd6ff831c.png)


しかし、項目の更新で変数を使うとアイテムのカラムを表示できなくて、うまくいかないです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/992c1f24-44a3-076f-cafe-a32c706cc751.png)

HTTP要求(REST)を使って交信できれば解決できるかもしれません。

おおお、やはりあります。できそうな感じです。

+ [Microsoft Flow で SharePoint のリストアイテムを HTTP要求(REST)で更新する](https://qiita.com/chimimouryou/items/ae191a3767eb779eae72)


ListItemEntityTypeFullName　が必要みたいです。

以下で取得できるらしい

https://marimew.wordpress.com/2015/01/09/sharepoint-rest-knockout-js/

```
http://[your host]/[your site]/_api/lists/getbytitle('testList')?$select=ListItemEntityTypeFullName
```

結果はこれ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/36d42158-94bc-228a-8c6f-86d73cb14fc4.png)


:::note
SP.Data.020ApprovalListItem
:::


始めはタイトルを間違えてエラーになった

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/3a7693b6-22ba-ba37-bcd6-b9b6c7010cab.png)

リストのカラム名の確認。
一応最初に英語で作ってラベルだけを日本語にしています。
例えば、設定画面のカラム名をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/385df72f-ba6c-9336-b054-f264316bac38.png)


URLの最後に項目名が表示されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/f8c601f9-ea97-223b-e4c5-a2670524f734.png)

１つのカラムの更新は問題なかったけど...


:::note alert
"ナビゲーション プロパティの値を読み取ろうとしているときに、NULL 以外の値を含む 'PrimitiveValue' ノードが見つかりましたが、'StartArray' ノード、'StartObject' ノード、または NULL 値を含む 'PrimitiveValue' ノードを読み取ることを想定していました。
:::

項目の更新を使っているフローの実行結果をよく見てみると...

想定していたのとは違ってApplicantもAuthorizerは階層構造になっている？

``` Json
"body": {
        "Title": "出生届",
        "status": {
            "Value": "申請中"
        },
        "Applicant": {
            "Claims": "i:0#.f|membership|xxxxx@yyyyy.co.jp"
        },
        "ApplicationDate": "2024-03-25T01:51:48.8397692Z",
        "Authorizer": {
            "Claims": "i:0#.f|membership|xxxxx@yyyyy.co.jp"
        }
    }
```

修正したんだけど...


:::note alert
無効な JSON です。プロパティ名 '' は無効です。プロパティ名を空にすることはできません。
:::

あああ、カンマが多い。

```Json
"parameters/body": "{\"__metadata\":{\"type\":\"SP.Data.020ApprovalListItem\"},\"Title\":\"020出生届\",\"status\":\"申請中\",\"Applicant\": {\"Claims\": \"i:0#.f|membership|otsubo@fukadadenki.co.jp\"},,\"ApplicationDate\":\"2024-03-25T05:15:59.4910809Z\",\"Authorizer\":\"xxxxx@yyyyy\"}"
```


# 本当の処理に組み込みましたが、機能しないですね。　相変わらずこのフローってのは使いもになりません。

エラーもでないのですが、ApplicantとAuthorizerのカラムは更新されません。
しかし、この処理の後で項目作成で別のリストを作っているのですが、同じ値を使っていても、ちゃんと作成されています。

```Json
{"__metadata":{"type":"SP.Data.020ApprovalListItem"},"Title":"020出生届","status":"申請中","Applicant": {"Claims": "i:0#.f|membership|xxxxx@yyyyy"},"ApplicationDate":"2024-03-25T07:36:46.6629287Z","Authorizer": {"Claims": "i:0#.f|membership|xxxxx@yyyyy"}}
```



# 追加はどうするんだろう。


[REST を使用してリストとリスト アイテムを操作する](https://learn.microsoft.com/ja-jp/sharepoint/dev/sp-add-ins/working-with-lists-and-list-items-with-rest)


```
SP.Data.ApprovalListView2ListItem
```

更新で機能しないので、新規追加はあきらめよう。どうせ機能しないだろう。

本当にPowerAutomate は使うのが嫌になります。まともに機能しませんね。


処理の検証用に作ったフローは全く起動しなくなりましたね。意味が分からないです。このシステム。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/b845f65b-0d6a-1281-5573-ce952aa6e285.png)