フィルタ

Key Word

キーワード検索

Category

カテゴリー検索

Tag

タグ検索

Business Efficiency

October 8, 2024

オープン系でできたこと、MS系でできないこと~ギャップを感じた事例とその対応策~
0.はじめに 私(K.Yoshida)は入社後、主に.Net系言語(VB.Net、C#.Net)で開発・保守・運用するエンジニアとして十数年従事していました。2024年からMS系のローコード開発に従事しています。 10年以上オープン系言語に携わっていたので、MS系のローコード開発スタート直後は慣れないこともあり、いろいろな失敗がありました。 今回はその中の一例をご紹介しようと思います。 普通のプログラム言語だと思って設計・開発に臨むと、とっても痛い目を見たので反面教師として参考にしてください。 1.データフローの使い勝手 Power AppsでExcelファイルをアップロードし、Power Platformのデータフロー機能を用いてDataverse に Excelシートの入力値を登録する仕組みを構築したい。 オープン言語で考えるならば、Excel操作にはC#で「Microsoft.Office.Interop.Excel」ライブラリなどを一般的に利用します。 Excelシートからデータを取得し、DataTableに保存することで入力チェックやDBへの登録など実装者がある程度自由に構築可能です。 しかし、Power Platformではそう簡単にはいきません。 複雑な入力チェックを Power Platform で実現することが困難でした。 Excelシートからデータを取得し、複数行組み合わせてチェックする必要がある場合、何を使うのがよいのか? データを集計してチェックする必要があるため、データフロー(Power Query)を利用できると考えて実装を進めました。 何とか入力チェック自体は実現できました。しかし、ここで別の問題が生じました。 データフローは別々のユーザが同時に起動することができません。 ユーザAがExcelをアップロードしている間にBがアップロードすると、Aのファイルをデータフローでチェックしている間、Bはずっと処理待ちになってしまいます。 データフローをクラスと同じものと考えていたので呼び出し元が異なればそれぞれで動くことを期待していたが無理でした。 これでは、ABCD…と複数人のユーザが一斉にExcelをアップロードした場合、最後の人は人数分の待ち時間が積み重なってしまうため、実運用には耐えられないでしょう。 (実際には同時に複数人が実行することはまれだと思いますが・・・) 2.その問題への回避策 一般的なアプリと同じようにファイルアップロードから入力チェックや登録処理を並列で動作させることは難しいので別々の処理にすることで回避しました。 まず、Power Apps の画面からファイルアップロードだけを実行するように仕様を変更します。 このとき、ファイルをアップロードした操作ユーザの情報と併せて保存することで誰がアップロードしたかを後から追いかけることができるようにしておいてください。 その後、アップロードしたファイルを Power Automateなどで作業フォルダに移動し、作業フォルダにて入力チェック用のデータフローを実行します。 もしくは、そもそもアップロード画面を作成せず、 SharePoint リストなどでファイルを添付し、 Power Automate を実行するフローにしても良いかもしれません。 次は、入力チェック用のデータフローを実行し、入力チェックの結果をエラー情報のDataverseに格納してください。 エラーが無かった場合は登録用のデータフローを実行するように Power Automateを組んでみましょう。 これにより、データフローの処理完了後、Dataverse にエラー情報が登録されている場合、エラー内容を伝えるメッセージを Teams やメールに送信することができます。 また、Dataverse にエラー情報の登録件数が0件の場合、本来登録するデータの登録結果件数などをTeams やメール送信することができます。 よって、アップロードしたユーザを画面の前で長時間待たせることなくファイルアップロードから入力チェック及びデータ登録が可能になります。 […]

#Power Apps #Power Automate #ローコードツール #自動化
Business Efficiency

September 17, 2024

【PowerAppsモデル駆動型アプリ】JavaScriptでDataverseのデータ取得時に発生した問題点とその対応について
1. やりたいこと 今回は、新規登録時、都道府県テーブルのコードカラムを降順でソートして、先頭1件のデータを取得後、届出都道府県(検索列)の項目にデフォルト表示していきます。 2. 都道府県テーブルのデータ 3. JavaScriptでの実装 /** * 都道府県テーブルからコードの降順でソートして、先頭1件を取得後、都道府県1行テキストに設定します。 */ async function sampleSort(excutionContext) { const formContext = excutionContext.getFormContext(); const name = formContext.getAttribute("crf6e_name").getValue(); // プライマリ列の値の有無で新規登録か編集かを判断(crf6e_nameがnull→新規登録、nullでない→編集) if (name == null) { // データ取得時のソート条件 const filter = `?$orderby=crf6e_code desc&$top=1`; // 検索先テーブルのセット名(テーブル>ツール>セット名)とフィルターをセット var data = await this.fetchData("crf6e_todofukens", filter); if (data !== null) { // 検索列に設定する対象レコードの情報 var lookupValue = […]

#JavaScript #Microsoft 365 #Power Apps #ローコードツール
エンジニアブログ

September 12, 2024

【資格】Microsoft認定資格~IT資格25個とってみた~ 第二回 Microsoft認定資格とMicrosoft Applied Skillsについて

#MicroSoft #Microsoft 365 #Power Platform #資格
Business Efficiency

July 29, 2024

Power Appsで簡単に「在庫管理アプリ」を作成し、無駄な在庫や欠品を減らす!〜第5回 機能追加編(3)〜
機能の概要 ボタン押下で各Itemのサマリーのみ表示 在庫管理アプリ ボタン押下でサマリーから全件表示へ 在庫管理アプリ 1. サマリー表示機能追加 1-1. 在庫管理アプリを開く 第3回までで作成した在庫管理アプリを編集画面で開きます。 1-2. 「Screen1」の「OnVisible」プロパティに数式を記載 「Screen1」の「OnVisible」プロパティに下記数式を記載します。 Clear(ItemNameCol_2);ClearCollect(ItemNameCol,Distinct(StockControl_Blog,Item.Value));ForAll(ItemNameCol As food,Collect(ItemNameCol_2,LookUp(Sort(StockControl_Blog,ID,SortOrder.Descending),food.Value = Item.Value))) 1-3. 「ボタン」コントロールの追加 挿入を押下し、「ボタン」コントロールを追加します。 1-4. 「Button2」の「OnSelect」プロパティに数式を記載 「Button2」を「並び替え」アイコンの左側に配置し、「OnSelect」プロパティに下記数式を記載します。 UpdateContext({Summary:!Summary}) 1-5. 「Button2」の「Text」プロパティに数式を記載 「Button2」の「 Text 」プロパティに下記数式を記載します。 If(Summary = true,”全件表示”,”サマリー表示”) 1-6. 「DataTable1」の「Items」プロパティに数式を記載 「DataTable1」の「Items」プロパティに下記数式を記載します。 If(Summary = true,SortByColumns(If(IsBlank(ComboBox1.Selected.Value),ItemNameCol_2,Filter(ItemNameCol_2,Item.Value =ComboBox1.Selected.Value)),”Date”,If(SortDescending1,SortOrder.Descending,SortOrder.Ascending)), SortByColumns(If(IsBlank(ComboBox1.Selected.Value),StockControl_Blog,Filter(StockControl_Blog,Item.Value =ComboBox1.Selected.Value)),”Date”,If(SortDescending1,SortOrder.Descending,SortOrder.Ascending))) 1-7. 「Button1」の「OnSelect」プロパティに数式を記載 「Button1」の「OnSelect」プロパティに下記数式を追記します。 Clear(ItemNameCol_2);ClearCollect(ItemNameCol,Distinct(StockControl_Blog,Item.Value)); ForAll(ItemNameCol As food,Collect(ItemNameCol_2,LookUp(Sort(StockControl_Blog,ID,SortOrder.Descending),food.Value=Item.Value))) 2. 実際にアプリを動かしてみる 2-1. アプリを開く 作成したアプリを開きます。 2-2. […]

#Microsoft 365 #Power Apps #ローコードツール #自動化
Business Efficiency

July 24, 2024

インターネット上にある表からデータを取得しTeamsに通知を送る~第2回 データ収集編~
こんなお悩みはございませんか? インターネット上に更新される情報を毎回手動でExcelシートに入力している 更新された情報を毎回確認し、手動で社内に通知している 更新作業を忘れていて、後から慌てて対応したことがある 全てPower Automateで簡単に解決できます! Power Automateを利用すれば、 インターネット上に更新された情報をSharePointリストに登録することでスケジュールから、自動でリマインドすることが出来ます。 SharePoint上に通知する内容と日程を記録したExcelを配置し、日時が一致している場合にTeamsに通知することで自動で通知を送ることが可能です。 日々、確認して通知するといった単縦だけど積み重ねると時間がかかってしまう作業も自動化できるので業務効率化につながります。 では、どのように作成するのか、具体的にご紹介していきますね。 1.はじめに 前回はSharePointリストからデータを取得し、Teamsに通知を送りましたが、今回はWebから表データを取得して、SharePointリストに追加する方法をご紹介します。 ​ 2.表データの取得 初めに、Webから表データを取得して、Excelにテーブルを作成します。 続いて、 PowerAutomateを用いてSharePointリストにExcelのデータを入力します。 ※今回は、SharePointの別リストから表データを取得していますが、Webからの表データ取得と大きく手順が変わりません。 2-1.アプリ版Excelで新規作成 ExcelのPowerQueryを使ってWebから表データを取得します。 アプリ版のExcelを起動します。 新規から「空白のブック」を選択します。 2-2.データの取得 上部メニューの「データ」を選択してください。 リボンの「データの取得」を押下して、「その他のデータソースから」を選択し、「SharePointリストから」を押下します。 ※今回は自社のSharePointサイトから表データを取得するため、「SharePointリストから」を選択しています。 2-3.URLを入力 中央にSharePointリストからのダイアログが表示されます。 取得する表データのURLを入力して、「OK」を押下します。 ※Webからの場合 データの取得が「Webから」の場合はこちらの手順になります。 中央にWebからのダイアログが表示されます。 「基本」を選択したまま、取得する表データのURLを入力して、「OK」を押下します。 2-4.データの変換 ナビゲーター画面が表示されます。 取得する表データを選択して、問題がなければ「データの変換」を押下します。 ここでは、取得する表データを「保養施設受付期間」としています。 2-5.データの整形 PowerQueryエディターが起動します。 必要に応じて列の名前やデータ型を編集してください。 こちらでは列の名前を編集して、必要のない列を削除し、テキスト型に変換しています。 編集が終了したら、「閉じて読み込む」を押下します。 2-6.データの整形後 変更後の画面です。 3.SharePointリストの作成 Excelテーブルの作成は終了しましたので、SharePointリストを作成します。 SharePointのホームから「新規」を押下して、「リスト」を選択します。 「空白のリスト」から名前を入力して、「作成」を押下します。 ここでは、リスト名を「保養施設」としています。 作成後、リストの画面に遷移します。 3-1.列の作成 保養施設リストにExcelのテーブルと同様の列を追加していきます。 「列の追加」を押下して、全て「1行テキスト」で任意の列名を作成しますが、一度英語で列名を付けてから日本語の列名に変更することをおすすめします。 最初に付ける名前が内部列名として扱われ、後から変更ができないため、日本語で初めから列名を付けると内部列名が文字化けの様な内部列名になってしまうためです。 […]

#Microsoft 365 #powerautomate #Teams #シェアポイント #自動化
Business Efficiency

July 18, 2024

SharePointリストをJSONで拡張してできること
こんなお悩みはございませんか? SharePointリストの使い方には慣れてきたので、もっと活用していきたい デザイン性のあるサイトやリストを作成してみたい タブやポップアップ機能を使用して見やすくしたい JSONを活用することで機能を拡張することができます! SharePointの列フォーマット機能を使用すると、JSONを活用してリストやライブラリの外観をカスタマイズできます。 セルの内容に応じてアイコン、色、テキストのスタイルを変更でき、JSONの活用で標準機能では対応できない設定も行うことができるようになるため、デザイン性のあるリストやサイトを作成することが可能です。 では、どのように作成するのか、具体的にご紹介していきますね。 1. JSON適用前 2. JSON適用後 JSONはリストの「現在のビューの書式設定」から編集が可能です。 ビューの書式設定、または列の書式設定を選択し、下部にある「詳細モード」をクリックします。今回は列の書式設定を操作します。 3. JSONでできること①:セルの背景色を変更、アイコンを表示 このようにステータスに応じた背景色、アイコンを表示することが可能です。 3-1. 適用したJSON {  ”$schema”: “https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json”,  ”elmType”: “div”,  ”attributes”: {   ”class”: “=if(@currentField == ‘完了’, ‘sp-field-severity–good’, if(@currentField == ‘対応中’, ‘sp-field-severity–low’, if(@currentField == ‘確認中’, ‘sp-field-severity–warning’, if(@currentField == ‘保留’, ‘sp-field-severity–severeWarning’, ‘sp-field-severity–blocked’)))) + ‘ ms-fontColor-neutralSecondary'”  },  ”children”: [   {    ”elmType”: “span”,    ”style”: { […]

#Microsoft 365 #シェアポイント
Business Efficiency

July 12, 2024

Power Appsで簡単に「在庫管理アプリ」を作成し、無駄な在庫や欠品を減らす!〜第4回 機能追加編(2)〜
フローの概要 在庫数が50未満になった際に発注者へ通知 通知から発注数を記入し、ボタンを押すとメールが送信される 発注しない場合は発注なしを選択して終了 1. Power Automate を作成 1-1. 「+新しいフロー」を選択 Power Apps の「フロー」から、「+新しいフロー」を選択します。 1-2. 「自動化したクラウドフロー」を選択 「自動化したクラウドフロー」を選択します。 1-3. 「項目が作成されたとき」を選択 フロー名を入力し、「項目が作成されたとき」を選択後「作成」を押下します。 1-4. 「サイトのアドレス」と「リスト名」を選択 フローの編集画面へ遷移後、在庫管理アプリで使用している SharePoint サイトと SharePoint リストを選択し、「+新しいステップ」を押下します。 1-5. 「条件」アクションを選択 「条件」アクションを選択します。 1-6. 条件を設定 「条件」アクションの左項目に動的なコンテンツから「ItemStock」を選択し、真ん中の項目は「次の値未満」、右項目に「50」を入力した後、はいの場合の「アクションの追加」を選択します。 1-7. 「開始して承認を待機」アクションを選択 検索欄に「開始して」と入力し、「開始して承認を待機」アクションを選択します。 1-8. 「開始して承認を待機」アクション内の設定① 「開始して承認を待機」アクション内の設定は画像を参照してください。担当者項目は発注者など通知を送りたい人のメールアドレスを入力します。詳細項目内の動的なコンテンツは「ItemValue」と「ItemStock」を選択しています。その後、「詳細オプションを表示する」を押下します。 1-9. 「開始して承認を待機」アクション内の設定② 要求元項目には誰が在庫管理アプリを使用したか判別するため、動的なコンテンツから「User Email」を選択します。その後「アクションの追加」を押下します。 1-10. 「条件」アクションを選択 再び「条件」アクションを選択します。 1-11. 条件を設定 「条件」アクションの左項目に動的なコンテンツから「結果」を選択し、真ん中の項目は「次の値に等しい」、右項目に「発注する」を入力した後、はいの場合の「アクションの追加」を選択します。 1-12. 「メールの送信(V2)」アクションを選択 検索欄に「メール」と入力し、 「メールの送信(V2)」アクションを選択します。 1-13. 「メールの送信(V2) 」アクション内の設定① […]

#Microsoft 365 #Power Apps #ローコードツール #業務アプリ #自動化
エンジニアブログ

August 30, 2024

【資格】Microsoft認定資格~IT資格25個とってみた~ 第一回 資格を取得しようと思ったきっかけ
1.はじめに 弊社ではMicrosoft社公認の資格を保持しているエンジニアが沢山在籍しております。 その中でも、質量ともに社内で一番資格を保有しているHさんから、誰でも資格取得ができる方法!を教えてもらったので、ブログに連載していきます! 資格を取ろうかな、取りたいけど何から手をつければいいかわからないといった方におすすめのブログとなっておりますのでぜひご拝読ください! 2.業務経歴  ・文系大学の出身です。大学では文学部系統の領域を専攻しました。  ・ビズウインドには2017年に新卒入社しており、現在7年目です。  ・製造業の基幹系システムの運用・保守・問合せ・追加開発を6年経験しています。  ・プログラム言語についてはJavaやVBAを中心に従事してきました。  ・現在はERPパッケージのSAPの販売(SD領域)にも従事しています。  ・ネットワークやID基盤といったインフラ管理の実務経験はありません。 3.取得済みの資格  これまで私が取得したMicrosoft認定資格は下記のとおりです。  これまでのMicrosoft認定資格のほか、最近になって発足したApplied Skillsを含めると 25個の認定を得ています。 年月 認定    Applied Skills 資格名称 2020/09 ● Microsoft Certified: Azure Fundamentals 2021/09 ● Microsoft Certified: Azure Data Fundamentals   2022/04 ● Microsoft Certified: Azure AI Fundamentals     2022/04 ● Microsoft Certified: Power Platform Fundamentals     2022/07 ● […]

#MicroSoft #Microsoft 365 #Power Platform #資格
Business Efficiency

July 12, 2024

Power Appsで簡単に「在庫管理アプリ」を作成し、無駄な在庫や欠品を減らす!~第3回 機能追加編~
Business Efficiency

July 12, 2024

Power Appsで簡単に「在庫管理アプリ」を作成し、無駄な在庫や欠品を減らす!~第2回 画面作成編~
5. PowerApps メイン画面を作成 5-1.「ツリービュー」を選択 「ツリービュー」アイコンを選択します。 5-2.「テキストラベル」の追加 「+挿入」から「テキストラベル」コントロールを追加します。 5-3.「Text」プロパティを入力 「テキストラベル」コントロールの「Text」プロパティに「”在庫管理”」と入力します。 フォントサイズ、色などは自由に配置してください。今回は画面上部にヘッダーとして配置します。 5-4.プロパティを編集 今回の「テキストラベル」コントロールの設定は左画像から右画像のように変更しています。 5-5.「データテーブル」の追加 「+挿入」から「データ」と検索し「データテーブル」コントロールを追加します。 5-6.「Items」プロパティを入力 「データテーブル」コントロールの「Items」プロパティに「StockControl」と入力します。 今回は画面真ん中辺りに配置します。 5-7.列の削除 今回のアプリには不要となる「タイトル」列と「添付ファイル」列を削除します。 ツリービューにて「DataTable1」内の「添付ファイル列(_C)1」の三点リーダーを選択し、削除を選択します。「タイトル列(_C)1 」も同様の操作を行います。 5-8.「DataTable1」を選択 不要な列の削除が終わった後、再びツリービューにて「DataTable1」を選択します。 5-9.「罫線」の表示 「データテーブル」コントロールの罫線を「0」から「1」に変更します。 5-10.「編集フォーム」の追加 「+挿入」から「編集フォーム」コントロールを追加します。 5-11. データソースを選択 挿入した「編集フォーム」コントロールのデータソースの選択にて「StockControl」を選択します。 5-12.「編集フォーム」コントロールを画面下部に配置 「編集フォーム」コントロールを画面下部に配置します。 5-13.「DataCard」の削除 今回のアプリには不要となる編集フォーム内の「タイトル」と「添付ファイル」の「DataCard」を削除します。また、「Date」に関しても関数で登録するため、編集フォームからは削除します。 ツリービューにてそれぞれの「DataCard」の三点リーダーを選択し、削除を選択します。 5-14.「既定モード」を「新規」に変更 「編集フォーム」コントロールの「既定モード」を「新規」に変更します。 プレビューにした際、編集フォームが表示されるようになります。 5-15.「ボタン」コントロールの追加 「+挿入」から「ボタン」コントロールを追加します。 5-16. 「Text」プロパティを入力 「ボタン」コントロールの「Text」プロパティに「”送信”」と入力します。 フォントサイズ、色などは自由に配置してください。今回は画面下部に配置します。 5-17.「コンボボックス」コントロールの追加 「+挿入」から「コンボ」と検索し「コンボボックス」コントロールを追加します。 5-18.データソースの選択 「コンボボックス」コントロールのデータソースの選択に関しては後ほど設定するため、「×」を選択します。 5-19.「コンボボックス」コントロールの配置 「コンボボックス」コントロールをデータテーブルの左上に配置します。 5-20.複数選択の「オフ」 「コンボボックス」コントロールの「複数選択の許可」を「オフ」に変更します。 5-21.「並べ替え」アイコンの追加 「+挿入」から「並べ替え」と検索し「並べ替え」アイコンを追加します。 5-22. […]
Key Word

キーワード検索

Category

カテゴリー検索

Tag

タグ検索

担当者に今すぐ質問する

簡単な情報入力でBizwind担当者が
お電話にて回答いたします!

すぐに電話で質問
日時指定で折り返し

以下の内容をご記入・送信ください。
確認次第お電話を差し上げます。

    以下の内容をご記入・送信ください。
    確認次第お電話を差し上げます。