【起きていた問題】
PowerAppsでキャンバスアプリを作成し、
ギャラリーで画像を表示しようとしたが、画像が表示されませんでした。
色々、試してみてわかったんですが "列の追加の仕方"が原因 でした。
あと、日本語の列名(内部列名)も原因になりうります。
【解決策】
SharePointサイトにて、
サイトコンテンツ>該当するリスト名の横の…マークを選択。
「(リストの)設定」> 「列の作成」 を選択する、または
「(リストの)設定」> 「サイト内の既存の列から追加」 を選択して
「サイト列の選択元:基本の列」を選び「URL」を追加する。
⇒このやり方で追加する。
必要なデータを列に入力したのち、Apps側のテーブルで該当するリストを
「最新の状態に更新」し、アプリを公開。
⇒この方法だと、ギャラリー、およびデータテーブルでも表示されました。
ちなみに、上記のやり方にしても、列名を日本語で入力すると、
内部列名が x71c9__x123b みたに、"(アンダーバー)"で始まる列名になってると、
ギャラリーでうまく取得できなくなっちゃいます。
なので、極力、最初に登録するときは列名を英語で登録して、
その後、日本語の列名に変更する。という手順をとった方がよいです。
【やったらダメなこと】
サイトコンテンツ>リスト名クリック後に表示される画面「URLの末尾が~/AllItems.aspx」のページ。
ここで「列の追加」>「種類:ハイパーリンク」を選択して作成した列は
なぜか、公開したアプリのギャラリー、およびデータテーブルでは表示されません。
編集モードでは問題なく表示されてるんですが謎です。
※内部列(OData_xxxxxx形式のやつ)で指定しても表示されません。
以上、
原因は謎ですが、一旦、この問題で悩んでいる人がオープンチャット等、見受けられたのでQiita記事として残しておきます。
ちなみに、上記の答えに辿り着くまで、下記のような形で原因を探っていました。
それもメモとして残します。
【試したこと①】データの有り・無しの確認。
ギャラリー、およびデータテーブルの該当Itemのところに
If(IsBlank(ThisItem.列名),"データなし",ThisItem.列名)
と記述して様子を見ました。
編集モードでは、問題なくテーブルのデータが表示されます。
アプリ公開してみると、該当する箇所は"データなし"と表示されてしまいます。
##【試したこと②】ライブ監視 機能を使った。
Power AppsのStudioのアプリ一覧からアプリ名横の「…」をクリックして
「詳細」>「ライブ監視」を実行。
「公開したアプリの再生」で新規ウィンドウで立ち上がったアプリを操作してみる。
ライブ監視ツールの右上にある「オプション」は詳細を選択、密度はコンパクト。
該当する、テーブルからデータを取得しようとしてる箇所の結果
カテゴリ:Verbose
操作:parsing
結果:警告
結果情報:
data": {
"info": "サーバーからの応答に予期しない列があり、それらは無視されています。",
"droppedColumns": [
"ItemInternalId"
]
と表示されていました。
以上、同じような症状が起きている方、試してみてください。
解決することを祈ります!