2022年11月15日火曜日

【PowerApps】Sharepointリストの列名がみつからない!関数で使えない!参照したいのにナゼ?

event_note11月 15, 2022
PowerAppsをなんとなく使えるようになるように、簡単なアプリを作っています。その上で、

困った事

PowerAppsのギャラリーでSPOのリストを表示するために列名を指定しようとしたのですが、列名がみつかりません。列名を入力してもエラーになる。

原因

関数によってはリストの列名が全角の場合はつかえない。フィールド名(プログラム内部でつかう列の別名)を使う必要がある。

ギャラリーの設定画面などを確認すると、リストで作った列名(↓だと"操作")のほかにフィールド名(↓だと"OData_x64cd_x4f5c_")がのっており、これを使わなければいけないようです。

補足

・リスト作成時に列名を全角で付けると、長ーいフィールド名を勝手につけられてしまう。
そのため、列名はまずは半角英数のみで付けた方が良い。
そうすれば、列名=フィールド名となる。

・フィールド名は変更不可だが、列名はあとで変更可能。

解決策

その1

リスト作成時の列名は、半角英数で作成する。(後で変更可能)

その2

列名ではなくフィールド名を方を使う。
(OData_x64cd_x4f5c_ みたいな長い名前。)

たとえば、確認したいリストをギャラリーやデータテーブルビューと接続して、プロパティ→フィールドの編集→追加画面からフィールド名を確認することができます。

が、コピペできません。もっと楽な確認方法ないのかな?

【PowerApps】Form経由じゃないデータベース更新ってどうするの?

event_note11月 15, 2022

 プログラミング未経験者がPowerAppsでアプリを作っていたりしているのを見て、すごいな!面白そうだな!と思って、アプリをつくる練習をしはじめました。

エディタに入力した値を、データベースに更新するというところは何とかできるようになりました。

Form⇔データベースの紐づけをして、Form上に入力エディタなどを配置すると、submitFormat(Form名)という風に関数を使えば、コントロールに入力された値を簡単にテーブルに更新してくれるということがわかりました。

PowerApps初心者の私としては、この時点で、テーブル更新するのはsubmitFormat関数ね!という理解。

ところが、このかなり大雑把な理解で困ったことがすぐに発生しました。

Form経由じゃないデータベース更新ってどうする?

え、コントロールへの入力値以外をデータベースに更新するときって、どうするの!?

という事です。

例えば、なんらかの処理結果やボタンを押した日時をログとしてデータベースに更新したいとき等です。

Collect関数を使う

そこで、調べてみるとCollect関数を使えばよいと!なるほど。

これを使えば、データベースを更新できるんですね!
下の例では、

「操作ログ」というテーブルの
「操作」列に"追加"という値を
「結果」列に"NG"という値を

更新します。

Collect(操作ログ,{操作:"追加",結果:"NG"});