欲しいアプリは自分で作る!

Power Platform や Azure などを利用して作成した業務アプリや趣味アプリなどをご紹介します。

N:Nのテーブルのレコードを紐づける方法

この記事は、Power Apps Advent Calendar 2024 シリーズ2 12/23 担当分の記事です。

qiita.com



世の中には、リレーションというものが存在します(急に何


例として経費申請を考えてみます。
1つの申請に対して、移動費や宿泊費など複数の明細がありますよね。

それらをデータとして管理する場合、申請テーブルと明細テーブルに分け、申請テーブル 1:N 明細テーブルという関係になると思います。
申請テーブルのレコード1個に対して、明細テーブルのレコードがN個紐づいている形になります。

1:Nの1の方のテーブルを親、Nの方のテーブルを子と呼ぶことが多いです。


では、1:Nではなく、N:Nのケースについて考えてみましょう。


例として、プロジェクトと社員を考えてみます。
1つのプロジェクトには、複数の社員が参画しますよね。
で、1人の社員は、複数のプロジェクトに参画する場合がありますよね。

それらをデータとして管理する場合、プロジェクトテーブルと社員テーブルに分け、プロジェクトテーブル N:N 社員テーブルという関係になると思います。
プロジェクトテーブルのレコード1個に対して社員テーブルのレコードがN個紐づいたり、社員テーブルのレコード1個に対してプロジェクトテーブルのレコードがN個紐づいたりしている形になります。


Dataverse では、これら1:NやN:Nの設定をテーブル同士に対して設定することが可能です。


で、今日の主題は、このN:Nのレコードをキャンバスアプリを用いて紐づけてみよう、という内容となります。


続きを読む

クラウドフローのセキュリティ保護機能と、使用時に陥ったニッチな罠(クラシックデザイナー限定)

この記事は、Power Automate Advent Calendar 2024 シリーズ2 12/09 担当分の記事です。

qiita.com


Power Automate のクラウドフローのトリガーやアクションの設定を開くと、セキュリティ保護機能というものがあります。


トリガーやアクションは、何かを受け取って、何かを出力するものなので、その入力と出力の情報を実行履歴で表示させないようにすることが可能です。

試しに入力と出力の両方をオンにすると、設定したトリガーやアクションには鍵マークが付き、


実行履歴を見ても何が入力/出力されたのかを確認できなくなります。
機密情報を取り扱う際に便利ですね。


参考: learn.microsoft.com



で、実際にこの機能を手動実行トリガーに対して使用したときに罠にハマりましたので、ご紹介します。
※この罠はクラシックデザイナーでのみ発生しており、モダンデザイナーでは発生しませんでした。

続きを読む

Power Pages はじめの一歩

この記事は、Power Apps Advent Calendar 2023 12/25 担当分の記事です。

qiita.com


Power PagesってPower Appsじゃなくね?というツッコミがあるかと思いますがご了承くださいm(__)m
※以前はPower Apps Portalsという名前でPower Appsの一部だったので許してね!w


最近お仕事でPower Pagesをいじることがあったので、自分の理解これで合ってるのかなーという確認も含めて、正直あまり自信はないのですが基礎的な部分からアウトプットをしてみることにしました。

本記事では、Power Pagesに触れたことのない方が、サイトの作成から最低限の一覧画面と入力フォーム画面を作れるようになるところまでをスコープとしています。
もし「その理解ちょっと違うよ」とか「こうしたらもっと楽だよ!」などありましたら、是非是非ご意見ください。

  • 作業全体像
  • 各手順
    • 1. サイトを作成する
      • 1-1. Power Pagesのトップ画面を開く
      • 1-2. 「最初から始める」を選択する
      • 1-3. 必要項目を入力し「完了」を選択する
      • 1-4. 待つ
    • 2. テーブルを用意する
      • 2-1. 「データ」を選択する
      • 2-2. 「+表」→「+新しいテーブル」を選択する
      • 2-3. テーブル名とプライマリ列名を設定する
      • 2-4. プライマリ列をオートナンバーにする
      • 2-5. 列を追加する
      • 2-6. ビューを作成する
      • 2-7. フォームを作成する
    • 3. 一覧ページを作成する
      • 3-1. ホームのページにリストを配置する
      • 3-2. リストを設定する
      • 3-3. アクセス権を設定する
      • 3-4. 確認してみる
    • 4. 新規入力フォーム画面を作成する
      • 4-1. 新規入力フォームのページを追加する
      • 4-2. ページ内にフォームを配置する
      • 4-3. フォームを設定する
      • 4-4. 確認してみる
    • 5. 編集フォーム画面を作成する
    • 6. 各画面の遷移を設定する
  • 最後に動作を確認
続きを読む

キャンバスアプリのモダンコントロールのプロパティ最新アップデート状況(2023/12/2時点)

※クラシックとモダンのプロパティの比較ではなく、最新バージョンのモダンのプロパティとひとつ前のバージョンのモダンのプロパティを比較した、超絶ニッチな記事です。ご了承ください。


この記事は、Power Apps Advent Calendar 2023 12/3 担当分の記事です。

qiita.com


Power Appsのキャンバスアプリでは、少し前からモダンコントロールと呼ばれる新しいデザインのコントロールが使えるようになりました。
※現状は半分以上がまだプレビューです。

モダンコントロールを有効にする設定

モダンコントロールはここに

現在はクラシックのコントロールとモダンのコントロールが両方使える状況になっています。
両方を比較したことがある方はご存じだと思うのですが、モダンコントロールのプロパティって、クラシックコントロールに比べると少ないんですよね。

もちろんデザインが異なるので同じにはならないかもしれませんが、現在はまだ欲しいプロパティ機能が乏しい状態にあります。

クラシックのテキスト入力コントロール

モダンのテキスト入力コントロール

で、このプロパティの乏しさが今後どう増えていくのかの傾向を掴むために、ここ最近のバージョンの違いを比較してみました。

  • 比較するバージョン
  • 比較した結果
  • まとめ
続きを読む

キャンバスアプリの作成経験がない開発経験者が押さえておくとよいと思う3つのポイントと、さすが開発経験者だなぁと思う3つのポイント

皆さまが Power Platform に出会ったのはいつ頃ですか?
私は2017年6月なので、Power と付き合って間もなく満6年になります。近づけたと思ったら急に遠くに行ってしまう、掴みどころのない奴です(?)


そんな魅力的な Power ちゃんですが、縁あってこれまでハンズオンも含めると延べ100名以上の方に Power Platform(主にキャンバスアプリ)の利用方法を教育(登壇発表を除く)させていただく機会をいただきました。ありがとうございます。教育業務大好物です(?)

ということで、今日はその拙い経験の中で感じたポイントについてまとめてみました。

  • 1. 2種類の対象者
    • 1-1. 開発"未経験者"が押さえておくとよいポイント
    • 1-2. 開発"経験者"が押さえておくとよいポイント
      • 1-2-1. ポイント1
      • 1-2-2. ポイント2
      • 1-2-3. ポイント3
  • おまけ:さすが開発経験者の方だなぁと思ったポイント
続きを読む

買い物メモをかごに入れる順番に並び替えてくれる LINE ボットを作ってみた

皆さんは買い物される時、事前にメモなど書いて買い物されますか?

私は頭では覚えられないので、メモ帳アプリを使って事前にメモし、スーパーでかごに入れたものから消しています。
(メモなしで買い物に行くとほぼ買い忘れる)


で、このメモが結構煩わしいんですよね。
思い付いた順にメモするとこうなるんですが、

  • ビール
  • ネギ
  • 豚バラ
  • 牛乳
  • アイス
  • 鶏むね
  • ほうれん草

この順番で買い物しようとすると、同じところを何度も行ったり来たりしなきゃいけないんですよね。
で、売り場にあるものをメモから探そうとすると「野菜は~え~っとネギと~アイス…ぁあ違うっ!あとほうれん草と~」 ってなりますよね(私だけ?)


できるなら、スーパーのルート順や冷凍食品が溶けない順に並べたいですよね。
※下記はあくまで一例ですが、元スーパーの社員だった私の両親曰くスーパーにおける商品の配置には法則があるようなので、おおよそこんな感じなのかなと思います。

  • ネギ
  • ほうれん草
  • 豚バラ
  • 鶏むね
  • 牛乳
  • ビール
  • アイス


ということで、買い物メモを並び替えてくれる LINE ボットを作ってみました。


目次

  • 1. 作成した LINE ボット
  • 2. アーキテクチャ
  • 3. 処理方法
    • 3-1. トリガ、応答、変数の初期化
    • 3-2. LINE から受信した品目をテーブル化
    • 3-3. 品目にソート順を付与
    • 3-4. 品目をソート順の昇順でソート
    • 3-5. ソートできた品目を文字列化 / ソートできなかった品目を文字列化
    • 3-6. ソート結果をユーザーに返信
    • 3-7. ソートできなかった品目をデータベースに登録し管理者に通知
  • 4. 改良:数量を入力されても並び替えられるようにする
    • 4-1. 改良点① LINE から受信した品目をテーブル化
    • 4-2. 改良点② 品目にソート順を付与
    • 4-3. 改良点③ ソートできた/できなかった品目を文字列化
  • 5. まとめ
続きを読む

2022年を振り返ってのご挨拶

自分は周りに迷惑をかけるために生まれてきたのかと思うくらい、今年も沢山の方々にご迷惑をおかけし、また沢山の方々に支えられて何とか生きてこられた一年でした。


色々と考えた結果、来月末をもって現職を退くことにしました。


原因は、自分の能力不足とモチベーション維持不足、ただこれだけです。
限られた時間の中で期待される成果を出すことができず、焦った結果心身を崩し、結局周りに迷惑をかけたという、ただただ残念な結果でした。



前職も現職も、めちゃくちゃ優秀かつ人柄の良い上司や同僚に恵まれました。
もはやカルチャーショックでした。

コンサルもSIも未経験な私を採用してもらい、たったの7か月という在籍期間で現職に送り出してくれた前職にも、そんなよわよわ経歴の私を採用してくれた現職にも、申し訳ない気持ちでいっぱいです。
崩れた心身をなかなか回復できず、想像以上に現場には負担を強いてしまい、何も恩返しもできず終えてしまうことは、痛恨の極みです。


職を変え、居住地を変え、新しい世界に飛び込んだ結果、経歴を見る限り崖っぷちのキャリアになりました。
何度も「経歴に不安がある」と書類選考で落とされ、既に会社員向いてない気しかしませんが、次が無理なら、いよいよ会社員向いてない。


正直、来年がめちゃくちゃ怖いです。



でも、後悔はしていません。


この世界に飛び込んでみてよかった。
自分の限界がよく分かった。
自分のやりたいことが少しずつはっきりしてきた。
日本には、世界にはこんなにも優秀な人が沢山いるのかと、ワクワクした。


来年の抱負。

"死ぬ気"で頑張るのは、一旦やめにしよう。
もっとワガママに生きてみよう。
もっと周りに甘えてみよう。
恩を返すことは一旦考えず、送ることを考えよう。

また病もうと、職を失おうと、人生とことん楽しんでみよう。



正直、私に対してもううんざりだという方もいると思います。
どうぞご遠慮なく友だち/フォロー外してください(全く気にしませんので)


でももし、まだこんな私でも興味持っていただけましたら、引き続き見守っていただけると嬉しいです。



来年もよろしくお願いいたします。