476 Views
July 20, 24
スライド概要
酒と業務効率化をこよなく愛するオヤジ、武器はMicrosoft365一択だったけどノーコードもステキ!PowerPlatformで業務効率化が究極に進んだ世の中が理想。半ランク上(笑)のPowerAppsオジサンを目指します。好きなものは競馬、プロレス。
2024年1月に 日本のどこかで稼働したアプリよもやま話 dai365
自己紹介 dai 365 平成7年就職 以降、非IT業務に長年従事 平成30年 子会社出向 令和2年 親会社に戻る 令和4年 管理部門に異動 令和5年 また異動 令和6年 また異動 おいおい3年連続だよ・・・ 趣味:登山、競馬、お酒、プロレス、パソコン(ネット) 性格:手書きや手入力が極端に嫌い⇒昭和の業務は大嫌い!!
今日お話しするのは 2024年1月に日本某所で稼働?した某アプリのお話です。 とはいっても私はそもそも市民開発?者なので、そんなに素晴ら しい内容ではありません(笑) まあ、世の中のデジタル化の少しでも足しになればいいかと思い 今日の内容をまとめてみました。
本日のコンテンツ 1.こんなデータ構造のときはSubmitform?Patch? 2.私は大好きPDF関数!! 3.上りも下りもCSV 4.ネタバラシ という一人LT4つから構成されます。
1.こんなデータ構造のときはSubmitform?Patch? さて、皆さん PowerApps初学者に何かのデータを登録する機能をどうやって 教えますか? 多くの場合、データソースとPowerAppsを接続して、フォーム を作って、Submitformする。 そんな教え方をするのではないかと思います。
基本はフォームです。 ここにボタンつけてsubmitformして Onsuccessにnotifyとか・・・
がしかし 大半のフォームというか様式の場合は何ら問題ありません しかしながら 初学者はこんな様式に出会うと途端につまづきはじめます。 ではその様式とは・・・
こんな様式、ありますよね 注文する人は一人です ですが、注文可能な商品は一度に5アイテムまで可能です 氏名 住所 電話番号 これを初学者がフォームで無理矢理やろうとすると・・・ 商品名 数量 単価 金額 氏名 住所 電話番号 商品名1 数量1 単価1 金額1 商品名2 数量2 単価2 こんな感じで作っちゃう人、いませんかね? ええ、私もそうでした(笑) ですがこのデータ構造、一見大丈夫に見えますが・・・ データが溜まるとわかるのですが(笑) 集計が非常に困難です 金額2
最終的なデータの保持ってこうしたくないですか? 取引ID 氏名 住所 電話番号 商品名 数量 単価 金額 ID1 山田太郎 神奈川県 0457778888 グローブ 1 5,000 5,000 ID1 山田太郎 神奈川県 0457778888 バット 5 10,000 50,000 ID1 山田太郎 神奈川県 0457778888 ミット 1 6,000 6,000 ID2 岩鬼正美 神奈川県 0449992222 バット 5 10,000 50,000 ID2 岩鬼正美 神奈川県 0449992222 ハッパ 1 2,000 2,000 このように一列一データ形式の法則でデータを整理してはどうでしょう こうすれば数量や金額の集計を非常に容易になりますよね なんですが、これ、Formでの実装、難しくないですか?
まずはコントロールは全部個別に配置(笑) これほぼ暴挙なんですが・・・(笑) フォーム使わない(使いたくない)のでコントロールは全て個別 に配置する必要があります。 メリット:使いたいコントロールを自在に配置できること デメリット:項目数によってはコントロールが膨大に
でForAllで こんな感じで 明細行の部分はAs使って ヘッダー項目はそのまま使って 一旦コレクション化します。
でForAllで こんな感じで コレクションをそのまま Patch関数Defaults 明細部 エラー処理でびびるので Iferrorも書いておく 共通部
これに味を占めた私は 今回稼働させたアプリでもコントロールを多数配置して 登録はすべてPatch Defaultsで行いました。 理由: レイアウトの自由度が高いこと 結果: 特段問題なく動作してます(たぶん)
職業病? 飲食店の注文、最近アプリ増えましたよね あれ見ると、ついつい「あーここはギャラリーよね」とか 「もう少し、見やすい感じがいいなあ」とか これは職業病なんでしょうかね(笑) さらには厨房の画面がどんなかまで気になる・・・
ちなみに私の考えたこのデータ形式を保持する方法 1.今回みたいに1つのデータベースにしてしまう 2.親データ(ID)と子データ(明細)のように2つ保持する 3.親データ(ID)の列にJSONで明細を入れ込む(複数行テキスト) くらいでしょうかねえ・・・有識者の方、他にありますか?
2.私は大好きPDF関数!! PDF関数は2年くらい前から試験段階で追加されています。 私は当初からお気に入りで使っています ですが、当初の文字化けはそりゃあひどいものでした 1年前くらいからどうにか実装に耐えうるレベルかと思います
基本的な使い方 私がよく使うのは画面レイアウトを帳票の見た目に合わせて それをPDF関数でPDF作成、もしくはメールに添付して送信 https://www.youtube.com/watch?v=sK3WsjQiqcQ&t=633s Rezaさんのこの動画にどれほどお世話になったことか
いつものように いつものように私はPDF関数を使い実装を始めます 文字化けもあんましなくなったし余裕余裕(笑) がしかし、稼働約1カ月前の12月半ば、あることに気づきます 全角英数字・・・出てないやん・・・
今回のアプリですねえ、実はこんな感じ 申し込む人が申込するとSharepointリストにデータが書き込まれ 受付をした部署はその申込を業者に申込内容をPDFで転送する というざっくりとした仕組みです
なんですけどねえ(笑) 今回のアプリ、全角英数字が表示されないのは致命的 なぜかというと住所が必須なアプリだから(笑) いやー慌てましたねえ・・・
世の中の知見に頼りました 全角が無理なら半角にすればいい ということで知見に頼りました やばそうな項目はすべて入力時に変換します これでどうにか事なきをえました https://note.com/toshi81350036/n/n70e41557026c
上りも下りもCSV 今回のアプリはですね、実は利用者を限定しています 関係ない人はボタン押せません(笑) そのためには何かで制御する必要がありますね
まずは上り 今回のアプリは1月某日の〇時になったら即座に何かのリストを UPして、そのリストに掲載されている人だけが使える状態にし なければなりません つまり・・・・ 失敗はほぼ許されない・・・・
まずは上り CSVアップロードといえばヨウセイさんのこれですね 信頼度抜群です!!
CSVは下りも必要 今回のアプリですが、依頼先の会社からの要望でデータをPDFだ けではなくCSVでも欲しいと要望されました。 恐らく社内システムへの取込を想定していると思います まあ、こちらはフローでCSVテーブル作成すれば出来ますね
フローはこんな感じ クエリはアプリ側で無理矢理作る(笑) あとはメアドとテキスト渡して SharepointリストからCSVテーブル作って メールの添付ファイルにして送信
今回のアプリはこんな経緯でした 職場の定期異動に係る案内を一元化するという目的 各部署から発信されると対象者があちこち見ないといけない さらにそのうち引越に関連する部分をアプリ化した 従前はすべて紙提出とFAX送信にてやっていた 秋くらいから関係する部署と打合せ開始 関係する部署は事務局以外に5部署 アプリ作成は私一人(笑) アプリの運用稼働期間は異動時期のみ⇒短期決戦!!
イメージ図にすると、こんなカイゼン 部署A 部署B 部署C アプリ 部署Aからの連絡 アプリ 部署Bからの連絡 部署Cからの連絡 期限までに提出 してね どこに何を出せば いいんだよ・・・ 一カ所見れば 全部わかる
今回のアプリはこんな経緯でした その2 トホホエピソードをいくつか ・当初レスポンシブルで作ろうとしたけど、色々忙しくて断念 ・所属がどこだったら、どこみたいなのが多く、Filter関数と Lookup関数は使いまくった(笑) ・PDF関数の全角英数字が出ないことに稼働1か月前に気づいた ・12月最終週に全体テストをしたが、バグたくさん(笑) ・直前でもいくつかバグ判明
さて、どうなった? 稼働日まで、ふふーんと鼻歌交じりで作っていたが 当日朝「あれ、これもししくじったら何人に影響与えるんだ」 と急に不安になる(笑)⇒恐らく数百人に多大な影響となる 朝からドキドキもん、当日朝、iferror実装(笑) 15時半 CSVデータアップ⇒無事終了 16時過ぎ 一斉に稼働、130件登録 翌営業日 朝のトラフィック重い時間に50件追加、180件に 最終的には233件の運用を行った。 filter系の間違いは少々あったものの、無事稼働と運用終了
もう一つ、こんなことも 人事異動があると法人カードの変更手続きがあります その手続き、今までは部署単位でエクセルを作成し集めていた つまり100カ所以上から100以上のエクセルファイルが届く状態 これをですね、対象者にボタン押させれば・・・と思い付き Updateif書いたボタンを押すだけでリスト化にした
イメージ図にすると、こんなカイゼン ボタン 各部署からのエク セルファイルから コピペして一つの エクセルファイル にする作業 ボタン一つでリスト に反映
超ざっくりですが、カイゼン効果 1.一元化したことによる案内文書探し時間の減 対象:約300名×3分くらいか? = 900分の減=15時間 2.引越申込をアプリ化したことによる効率化 従来 紙手交に5分、手書きに3分、手渡しに2分、台帳化に3分、FAX連絡に1分と仮定すると1件あたり14分かかっている 改善後 本人の申込2分、リスト目視確認2分、業者への手配1分、1件あたり5分 これを233件なので 従来:3263分、改善後:1165分 2098分の減=35時間 さらに紙(FAX)ではなくデータで渡した依頼先でも効率化していると信じたい(笑) 3.法人カード変更の報告をボタン一つに 従来 部署単位でエクセル作成150部署×3分、まとめる作業150ファイルからコピペ各3分 900分 改善後 本人がボタン押すだけ、10秒×約300名=3000秒=50分 850分の減=14時間
そして今、このアプリを使った人から エクセルで台帳作っていて それを何らかの様式に加工して で、どこかに送る これを効率化したい!! そんなお悩みがたくさん寄せられています(笑) 全部このパターンで解決するつもり(件数にもよりますがね)
正直ですね 私に出来ることは色んなことの写経くらいしか出来ません でも、続けていたら、このくらいは出来るようになりました。 思うものが作れるようになるのはとても楽しいです。 その喜びを多くの人に伝えて、味わってほしいです。
この道を行けば どうなるものか 危ぶむなかれ 危ぶめば道はなし 踏み出せばその一足が道となり その一足が道となる やればわかるさ!! 迷わず行けよ やればわかるさ