目次
PowerAppsからSharePointの選択肢項目を変更する方法
PowerApps便利ですよね。で非プログラマなのでPowerAppsでとあるアプリをつくろうと思い立って進めていたのですが、SharePointのカスタムリストに作成した選択肢をPowerAppsから選択させて保存させる方法で試行錯誤していました。
色々調べてようやくできたので自分の備忘録もかねて書いてみました。
更新できた数式
結果としては下記のような数式を書くことで実現できました。
Patch( 全社図書, First( Filter( 全社図書, 'ISBN/管理番号' = DataCardValue2.Text ) ), { 状況: {Value:"貸出中",'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"}})
※追記
Patch関数の前にインターネット接続があるかを入れるとさらにいいと某サイトでみたので、
こうするほうがいいかもしれません。
If(Connection.Connected = true, Patch( 全社図書, First( Filter( 全社図書, 'ISBN/管理番号' = DataCardValue2.Text ) ), { 状況: {Value:"貸出中",'@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"}}))
SharePointの選択肢項目って?
まずSharePointの選択肢項目はこちらのやつです。
設定内容的にはこんな感じですね。
SharePointサイト上からだと簡単に変更できますよね。
PowerAppsからでも簡単に更新できるだろうと思っていたのですが甘かったです・・・
PowerAppsで画面を作成
まずはPowerAppsで画面(キャンバス)をつくります。
SharePoint Onlineですでにカスタムリストを作成しているので、カスタムリストを利用して自動的につくってしまいます。
カスタムリストを作成して自動的にアプリを作成する
- SharePoint Onlineのリストを開きます。ここではTESTという名前のカスタムリストです。
- PowerApps → アプリの作成をクリックします。
- アプリの名前を入力し、【作成】をクリックします。
- 自動的にアプリが作成されました
作成されたアプリ内に下記のような編集画面がありますが、今回私がやりたかったことは、ボタンが押されたら選択肢の値を変更する処理なので更新用ボタンを配置します。
更新用のボタンを配置し、数式を入力する
- 自動的に作成されたDetailScreenを選択します。
- [挿入] → 【ボタン】をクリックします。
- 下記図のような画面になります。
状況に表示されている選択肢1をボタンを押すことで別な選択肢に変更できるようにします。
- 挿入したボタンのOnSelectの数式に下記のように入力します。
Patch( TEST, First( Filter( TEST, タイトル = DataCardValue1.Text ) ), { 状況: { Value: "選択肢2", '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference" } } )
- ボタンを押して状況が選択肢2と変更されれば成功です!
変更するレコードを特定させる必要があるため、表示されているタイトルを条件にしています。