PowerAppsからSharePointカスタムリストのユーザーまたはグループに値を入れる方法

目次

PowerAppsからSharePointカスタムリストのユーザーまたはグループに値を入れる方法

前回と同じくPowerAppsネタです。
こんなのすぐできるだろうと思っていたのですがそこまでかかないとだめなの!?ってなりました。
office365ユーザー.MyProfile().Mailですぐできるだろうと考えていたのですがだめでした・・・orz
数式のユーザーは訳さなくてもよかったんじゃないかと思うわけですよ(笑)

更新できた数式

結果としては下記のような数式を書くことで更新できました。

Patch(
    TEST,
    First(
        Filter(
            TEST,
            タイトル = DataCardValue1.Text
        )
    ),
    {
        貸出先:{
                Value:Office365ユーザー.MyProfile().Mail,
                '@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
                Claims: "i:0#.f|membership|" & Lower(User().Email),
                Department: "",
                DisplayName: User().Email,
                Email: User().Email,
                JobTitle: ".",
                Picture: "."
            },
        状況: {
            Value: "選択肢2",
            '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"
        }
    }
)

やりたいこと

前回の記事のボタンが押された場合に選択肢を変更しつつ、PowerAppsアプリを実行しているユーザーを貸出先というカラムに登録するということをやりたいのです。

SharePointのユーザまたはグループって?

お馴染みのこれです。

列の設定的にはこうなります。

データソースを追加する

ユーザー情報を取得できるようにするためOffice365ユーザーのデータソースを追加します。

  1. メニューバーの[ビュー]をクリックします。
  2. [データソース]をクリックします。
  3. 【データソースの追加】をクリックします。
  4. 【Office365ユーザー】をクリックします。
  5. データソースが追加されました。

ボタンに数式を追加する

前回作成したボタンの数式を変更します。
OnSelectに書いた数式を以下のように変更します。

Patch(
    TEST,
    First(
        Filter(
            TEST,
            タイトル = DataCardValue1.Text
        )
    ),
    {
        貸出先:{
                Value:Office365ユーザー.MyProfile().Mail,
                '@odata.type':"#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser",
                Claims: "i:0#.f|membership|" & Lower(User().Email),
                Department: "",
                DisplayName: User().Email,
                Email: User().Email,
                JobTitle: ".",
                Picture: "."
            },
        状況: {
            Value: "選択肢2",
            '@odata.type': "#Microsoft.Azure.Connectors.SharePoint.SPListExpandedReference"
        }
    }
)

@odata.typeに、#Microsoft.Azure.Connectors.SharePoint.SPListExpandedUser だけ書けばいけるのかなと思ったのですが、すべて記述しないとうまくいきませんでした・・・
これ、Value:Office365ユーザー.MyProfile().Mailだけでいければいいと思いません?
裏側の仕組みの都合上指定してやらないとだめなんですかね。

odata.typeの一覧リストってどこかに載っているんでしょうか・・・

 

 

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次