LoginSignup
0
0

PowerAppsの技術ポイントをまとめ

Last updated at Posted at 2023-03-06

Notifyの改行問題

スマホ実機の検証結果により、結論として「Char(10)」で改行の実装をしましょう。
・Char(10):iOSなら改行する、Androidなら改行する
・Char(13):iOSなら改行する、Androidなら改行しない
※PCのブラウザだと、どちらも改行しない( 2023/03/06 時点 )

【2023/07/12追記】
 多重LookUpの呼ぶ処理を避ける

検索条件を変わると、多重LookUpで最新の検索結果を表示されるまで時間かかるため、パフォーマンス低下。
解決策:段階的に分ける処理で改善を期待できる

【2023/10/10追記】
 空判定まとめ

image.png

【2023/10/10追記】
 Powerapps画面作成時に複雑さをなるべく控える

解決策として、特に表示制御がたくさん付けたい場合、画面分けるほうが良い

【2023/10/10追記】
 Powerappsにボタン処理複雑な処理をなるべく控える

解決策として、LowCode観点と保守観点(エラー時の調査、再現する方法も明白になるため)ともにより、
変数をシンプルに、Json形式にしてFlowに渡してFlowで処理させる

image.png

【2023/10/10追記】
 コンポーネント ライブラリで共通部品の作成

★ 共通部品1 ⇒ メッセージ表示
処理パターンについて、下記のほうがやりやすいかと。
-2:エラー、-1:警告、0:正常完了、1:確認メッセージ(はい、いいえ)

★ 共通部品2 ⇒ ローディング
下記の例図を参照して簡単に作れる。

※※※ローディングを利用する場合、下記の実装順によるPowerappsの動作してくれない場合あり※※※
例1:この場合、検索処理を書いてあるが、動作してくれない

UpdateContext({showLoading:true});
・・・中略・・・
LetUsSearchOneTime();//前置き:動作しない
UpdateContext({showLoading:false});
・・・END・・・

例2:この場合、検索処理を書いてあるが、動作してくれる

UpdateContext({showLoading:true});
・・・中略・・・
UpdateContext({showLoading:false});
LetUsSearchOneTime();//後置き:動作する
・・・END・・・

image.png

.項目「imgLoading」のImage属性は以下のように値設定しておく.
"data:image/svg+xml,"& 
EncodeUrl(
"<svg width='"& Self.Width & "' height='" & Self.Height & "' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='xMidYMid' class='uil-default' version='1.1'>
<rect x='0' y='0' width='"& Self.Width & "' height='" & Self.Height & "' fill='none' class='bk'></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(0 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(30 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.08333333333333333s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(60 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.16666666666666666s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(90 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.25s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(120 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.3333333333333333s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(150 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.4166666666666667s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(180 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.5s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(210 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.5833333333333334s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(240 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.6666666666666666s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(270 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.75s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(300 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.8333333333333334s' repeatCount='indefinite'/></rect><rect  x='46.5' y='40' width='7' height='20' rx='5' ry='5' fill='"& cmpCommonLoading.LoadingHexColor & "' transform='rotate(330 50 50) translate(0 -30)'>  <animate attributeName='opacity' from='1' to='0' dur='1s' begin='0.9166666666666666s' repeatCount='indefinite'/></rect>
</svg>"
)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0