#MicrosoftFlow で CommonDataService の 特定レコードを操作する方法

# はじめに
本内容は、昨日(2019/08/31)に開催されました
こちらのイベント
[Power Platform Day Summer '19 ～ 連携祭り！](https://power-platform.connpass.com/event/142607/)
にてお話した内容となっております。

登壇資料はこちらをご確認ください。
https://speakerdeck.com/rnakamuramartiny/terewakuye-wu-niokeruhuan-jing-gou-zhu-toqin-dai-guan-li-nipower-platformwohuo-yong-sitemita

# CDSのエンティティ
とりあえずこんな感じにしてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/c83cb6ba-2caf-d9d9-4bcc-8b23595944ed.png)

## データ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/0b7c83fa-e72b-0b9a-9d09-0831aa1a4fb8.png)

# お題

この赤枠で示したデータ（text1が「ありがたい」となっているレコード）を消すFlowを作ってみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/794afe84-d6d6-3979-f593-f79e1768bfaa.png)


## とりあえず作ってみたが・・・

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/7ac64939-1ebd-4175-4ffb-bbc06ea90641.png)

項目識別子、何を指定したらええねん！？
レコードを特定できるデータ指定できないじゃん！

### とりあえず、一覧表示で指定したフィルタークエリを入れてみる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/3acce7f0-824e-f615-059c-758f77a6e7ea.png)

　↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/fdbf88c5-ca4a-0f2b-a2b2-d098fe5d4e5f.png)
ですよねー

### 項目（レコード）を識別するIDは・・・

一覧表示の出力のJSONを見てみると・・・・
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/faf03c7c-69ae-3cec-28fa-88107185e39a.png)
どうもこの赤枠で指定した、ItemInternalIdというのがそれっぽい。

が・・・動的コンテンツにそれっぽい項目がない。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/4de09192-0c39-fbff-b5e9-5d31363fbb96.png)

## 出力をそのまま使うには・・・

jsonの解析を使い、コンテンツにbody関数を使えば行けそう！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/4b946c50-5cdd-debc-3ca9-0c0cb51a7bc1.png)

``` php:コンテンツ
body(<アクション名>)
```

### 削除アクションの項目識別子は・・・

InternalIdが指定できるようになっているので、これを指定する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/7ddd6101-119b-67fd-2e93-ad19458b2c22.png)

複数のデータが入る想定のアクションから呼び出しているので
こんな風に Apply to Each が挿入される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/a80a9199-1777-af6a-faa1-42b0d6e62567.png)


## 結果・・・
成功した！！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/c6f38768-176e-4804-26eb-245b5f66b2fd.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/f498d639-eec7-0646-4ab0-d0448cdd664d.png)

# まとめ
動的アクションに欲しい情報がないけど
出力データに使えそうなデータがあるときは
body関数とJSONの解析をうまく活用しよう！


# その後・・・
<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">あら？よく見たら<br>「Webサイト」の項目がadx_websiteidじゃないですかね？<br>一意の識別子って説明に書かれているので<br>これで削除できそうな予感</p>&mdash; Kazuya Sugimoto (@sugimomoto) <a href="https://twitter.com/sugimomoto/status/1168058458135941121?ref_src=twsrc%5Etfw">September 1, 2019</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> 

## ちょっとやってみた
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/d30d3806-4a10-2b17-1264-eb242dc80487.png)

## 結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/6f31a85a-7142-6211-f38b-b5872c969d90.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/269159/37f86d92-8690-a615-e930-03905d1dbdb1.png)


うわ！できるやん！！
というわけで、JSON解析必要ないみたいです・・・( ﾉД`)