投稿

PowerAutomateでタスク再割り当てを実施する

イメージ
PowerAutomateでタスク再割り当てを実施する PowerAutomateでタスク再割り当てを実施する 以前、下記動画にて Power Automate でタスク割当をして Teams で連絡するフローを作成しました。 この動画のコメントにて、「担当者の再割当てをする方法」の確認がありました。 私も少し気になったので、上記動画で構築したものをベースに、新しく 担当者再割当てフロー を作成してみたいと思います。 フローの作成 今回のフローでポイントとなるのが、「再割当て依頼のメッセージをトリガーにする」ことです。 また、Teams内で再度案内をしたいので、「返信するためのスレッドIDを取得する」ことも意識していきます。 ※突貫で作成しているので、実際もっと効率良くできる方法はあるかもしれません。 キーワードが言及されたとき まずはフローのトリガーを作成していきます。 Teamsのチャネル内で再割当て依頼のメッセージを検知した際に起動させたいので、 自動化したクラウドフロー からTeamsで絞り込み、 キーワードが言及されたとき を設定します。 フロー編集画面においては、対象のキーワードやチャネルを指定していきます。 担当者の再割当て 動画でも紹介している方法で、担当者の再割当てを実施します。 ...

MAUIでCS8795が発生するときの解消方法

イメージ
MAUIでCS8795が発生する MAUIでCS8795が発生するときの解消方法 xamarin のサポートが終了を迎えるため、現在 MAUI への移行を進めているのですが、毎度毎度発生する下記のエラーについて対処をまとめたいと思います。 CS8795 部分メソッド ‘XXXXX’ にはアクセシビリティ修飾子が指定されているため、実装部分が必要です。 XamarinのDependencyServiceのように、同じメソッドでプラットフォームごとに処理を分ける方法を実装していると発生します。 Microsoftのページ通り に実装しても、なぜかエラーが発生するのです。。 ちなみにエラーが発生しますが、デバックモードであれば問題なく稼働しますが、リリースビルドをすると止まってしまいます。 これを今回は解消していきます。 ちなみにプラットフォーム別の処理を実装する方法は こちら が参考になります。 対象以外のプラットフォームを取り除く 方法としてはタイトル通りで、対象外のプラットフォームをコンパイル対象から外します。 なお、対象とするプラットフォームにはすべて実装できているものとします。 下記順番に実施していきます。(後半は念のため) プロジェクトのプロパティから取り除く 下記の通りプロジェクトのプロパティから、対象外のプラットフォームのチェックを外します。 .csprojからも取り除く .csprojからも下記のように対象外とするプロジェクトをコメントアウトします。 Platforms配下のフォルダを削除 ここまで...

protobufのバージョンエラーが再発する

protobufでエラーになる protobufのバージョンエラーが再発する 私は最近 Docker で開発を再開したのですが、 python のエラーが多々発生したのでその解消方法を紹介したいと思います。 TypeError: Descriptors cannot not be created directly. 特に悩まされたのが protobuf です。 pythonスクリプトを起動していると、下記のようなエラーが発生することがあると思います。 TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower). エラー文言で検索をかけると、エラー文に表示されている通り、 protobuf のバージョンを下げたものを再インストールすることで解決したという記事が多く見つかります。 pip install protobuf==3.20.1 しかし私の環境ではなぜか解決せず、、 正確に言うと解決したのですが、偶に再発することがあったのです。 ...

PowerAutomteでCSVファイルを処理する

イメージ
PowerAutomteでCSVファイルを処理する PowerAutomteでCSVファイルを処理する データをエクスポートすると CSVファイル がダウンロードされることが多いと思います。 このCSVファイルを処理する際に、普通のプログラミング言語であれば容易に扱うことができますが、プログラムを動かせない環境もあるのではないでしょうか? そういったときに Power Automate のフローでもCSVファイルを処理できるようになれば、データ収集の自動化がはかどるので、今回はCSVファイルを処理するフローを作成していきたいと思います。 なお、念のためCSVファイルとは、「,(カンマ)」などでデータを区切っているファイルのことで、下記のようなファイルの中身になります。 "りんご","ぶどう","みかん" "アップル","グレープ","オレンジ" フローを作成していく では早速フローを作成していきます。 今回は手動的なトリガーにしたいので、SharePointの特定のフォルダにファイルが作成された際に起動するようにしておきます。 「 自動化したクラウドフロー 」から、SharePointの「 ファイルが作成されたとき(プロパティのみ) 」を選択します。なおフロー名は任意です。 トリガーの設定 CSVファイルを格納するフォルダを設定します。 ファイルコンテンツの取得 トリガーはあくまでプロパティしか取得できないので、ファイルの実態を取得する必要があります。 そのため、SharePointの「 フ...

C#でCSVファイルを読み込む

C#でCSVファイルを読み込む C#でCSVファイルを読み込む 皆さんは CSVファイル を読み込んでデータ処理をするとき、どのようにファイル読み込みを行っていますでしょうか。 通常は下記のようなサンプルを流用し、ファイルを1行ずつ読み込み、 Split関数 などで分割することが多いかと思います。 private static List ReadFile(string path) { List list = new List (); using (StreamReader sr = new StreamReader(path)) { string line = ""; while ((line = sr.ReadLine()) != null) { list.Add(line); } } return list; } しかし、 CSVファイル はカンマ区切りだからといって、 Split関数 で分割してもうまく行かない場合があるのです。 CSVファイルは下記のようにデータ1つ1つをダブルクォーテーションで囲い、この中にカンマが合った場合でもそれを区切り文字としては扱わず1つのデータ(文字列)として扱う場合があります。 "りんご","ぶどう","みかん,もも","かき" こういった場合に、カンマで Split関数 を使用してしまうと、意図しない場所でデータが区切られ、データの整合性が合わなくなることがあります。 なので今回は、1つのデータをダブルクォーテーションで囲ったケースでも正常に読み取れるように自作のクラスを作成していきたいと思います。 独学故、「もっとこうするべき」といった意見があれば是非ご連絡ください! 自作メソッドの作成 ...

PowerAppsで座席表を作成する

イメージ
PowerAppsで座席表を作成する。 PowerAppsで座席表を作成する。 昨今、会社では指定された先がなく、自由に席を選んで仕事ができる フリーアドレス が増えてきているのではないでしょうか。 私の会社も フリーアドレス を採用しているのですが、その日の気分によって座る場所を変えることができるので私は気に入っています。 ただ自由で便利な反面、困る場面もあるかと思います。 フリーアドレス は自由に座れるのですが、だれがどこに座っているのか分からなくなる状況があります。 さらに テレワーク が重なると出社していない人もいるため、より分からなくなるかと思います。 みなさんの会社でも同様の状況になっていないでしょうか。 もちろん最近は便利なアプリなどによって改善されていたり気がしますが、そのアプリの利用料などがかかるため導入にためらってしまったりするかと思います。 なので今回は、この課題を Power Apps で改善をしていきます。 アプリの概要 アプリの概要を簡単に説明します。 Labelを複数配置していき、机や椅子、その他会議室やロッカーなどを表現 席用のLableの「OnSelect」メソッドにフロー起動の処理を追加 上記だけで簡易な座席表を作成できます。 別途データベース用のListsを作成しておきます。 それでは、Listsの作成から進めています。 下準備 今回のアプリのデータベースはMicrosoft Listsを使用します。 適当な場所にListsを下記内容で作成します。 必要なカラムは「Title(Id)」「Name」です。 今回は適当に数個座席を作成しておきます。「Name」部分は空...

C#でログ機能を実装(自作)

イメージ
ログ機能を実装(自作) C#にログ機能を実装(自作) 皆さんはアプリを作成した際に、ログなどを残していますでしょうか。 ログを残すことで、エラーが発生した際などに何が原因だったのか調査しやすかったり、逆に想定通りの挙動をしているか確認することにも使うことができます。 ネットを探せば便利なログ出力のライブラリは多数存在しますが、今回は ログファイルを出力する (作成する)クラスを自作で作成してみたいと思います。 なぜわざわざ自作をするのかですが、別に特別難しい処理を実装するわけではないので、自らコードを書いてみて勉強したいという意図があります。 ログ出力の方法を考える まずはログの出力方法ですが、ざっくり2種類あると思っています。 「 アプリ実行後にログファイルを出力する方法 」と「 継続的に1つのファイルに書き込んでいく方法 」です。 ざっくり上記2つの処理イメージを整理していきます。 アプリ実行後にログファイルを出力する方法 これはstaticのListを用意しておき、メッセージをListに追加していきます。 アプリ処理の最後にListのデータをテキストファイルなどに書き込んで保存します。 この方法のメリットは、アプリの実行ごとにログファイルを作成するので、ファイル名などに処理日時を埋め込んでおけば調査などが容易になります。 デメリットとしては、ちゃんと例外処理などを実装していないとファイル出力処理が実行できずログが確認できない状態になります。 継続的に1つのファイルに書き込んでいく方法 この方法は、書き込むファイルを指定しておくことで処理が行われるたびにファ...