🙄

Power Apps のコレクションで「コントロール-underfined」や「網掛け」が表示される理由

に公開

こんなコトありませんか?

  • ClearCollect 関数や Collect 関数でコレクションを作成し、式にエラーは出ていない

  • でも変数 > コレクション で確認すると「コントロール-underfined」や「網掛け」のようなマークと表示され、入力した値が入っているか分からない💦

    これを解消する方法を説明します。

コントロール-underfined の解消方法

そもそも「underfined」って?

underfined とは日本語では「定義されていない」という意味です。
https://ejje.weblio.jp/content/undefined
つまり、コレクションの表示も言葉通り、各列の値が定義されていないということです。
だから、列に入っているはずの値が見れないんですね。
その為、各列の値を定義すればこの表示はなくなります。

実装方法

列の値を定義する為にプロパティを指定する必要があります。
今回の場合は編集フォームに入力した値を指定しているので、DataCardValue の後にプロパティを指定してあげればよいです。

Collect(コレクション名,
    {   
        タイトル:DataCardValue1.Text,
        選択肢:DataCardValue2.Selected.Value,
        日付:DataCardValue3.SelectedDate,
        ユーザー:DataCardValue12.SelectedItems,
        数値:DataCardValue13.Text,
        はいいいえ:DataCardValue14.Value,
        ハイパーリンク:DataCardValue15.Text,
        通貨:DataCardValue16.Text,
        画像:Image3.Image,
        管理されたメタデータ:DataCardValue25.SelectedItems,
        参照:DataCardValue26.SelectedItems       
    }
)

指定するプロパティはデータ型によって変わります。
主なデータ型と指定プロパティをまとめましたので、ご確認ください。

プロパティを指定すると、コレクションに値が表示されるようになりました。
ただ、まだ「網掛け」の部分も残っています。

網掛け の解消方法

そもそもなぜ「網掛け」に?

網掛け部分はテーブル型の値です。
網掛けそのものをクリックすると、複数の値が入っていることが分かります。

例えば参照列の場合は、Id と Value が入っています。

解消方法

解消する為には複数入っている値のどれか1つを指定してあげれば良いです。
SelectedItems だった部分を「Selected.値の名称」に変えれば解決です。

Collect(colaaa,
    {   
        タイトル:DataCardValue1.Text,
        選択肢:DataCardValue2.Selected.Value,
        日付:DataCardValue3.SelectedDate,
        ユーザー:DataCardValue12.Selected.Department,
        数値:DataCardValue13.Text,
        はいいいえ:DataCardValue14.Value,
        ハイパーリンク:DataCardValue15.Text,
        通貨:DataCardValue16.Text,
        画像:Image3.Image,
        管理されたメタデータ:DataCardValue25.Selected.Value,
        参照:DataCardValue26.Selected.Value       
    }
)

変数 > コレクションから確認すると、網掛けが消滅したのが分かります。

ただ、参照列のデータを SharePoint に Patch 関数で保存するような時は Id と Value がそろっていなくてはいけません。
その為、後続の作業で何が必要なのかを考えて、コレクションを作成する必要があります。

終わりに

データ型を意識しながら作業をすると、実装がスムーズに進みます。
少しずつ確認しながらやってみてください。

Discussion