SlideShare une entreprise Scribd logo
1  sur  54
ファイルではない
Excel on OneDrive
Profile
システム構築のプロセス評価、改善、策定、開
発フレームワークの設計、実装管理、プリセー
ルスやプロジェクトの立ち上げなど
ブログ :http://blog.processtune.com
プロフィール :Facebook, Twitter or MVP
コミュニティ :.NETラボの運営スタッフ
Microsoft MVP :Developer Technologies
OneDriveにExcelを置く目的
Excelアプリケーションを使ってExcelファイルを開く必要があるか?
2021/3/27
OneDriveのデータ操作の一例
2021/3/27
Power Automate
経理システム Outlook
Teams
OneDrive
for Business
Excel
経理部 マネージャー 経費申請者
ダウン
ロード
しない
Kaizala
経費が上長に承認さ
れていることの確認
と経費集計ができれ
ばいい
経費を申請したい
だけなのにExcel
ファイルをダウン
ロードしたくない
管轄の経費を承認
したいだけなのに
Excelファイル開き
たくない
実装の準備
経費申請業務を実装する仕組みを確かめる
2021/3/27
交通費精算・経費精算等のフォーマット
Download Excel template file from Office.com
Office.comサイト-テンプレート-経費報告書:
https://templates.office.com/ja-jp/%E7%B5%8C%E8%B2%BB%E5%A0%B1%E5%91%8A%E6%9B%B8-TM04099206
テンプレートをアップロード
After a few modify, then upload the file to your OneDrive.
る
/me/drive/root:/経費明細書.xlsx
る
/me/drive/root:/経費明細書.xlsx
同じ数(各
列の行数)
の配列で構
成されてい
る
する
/me/drive/items/{driveitemid}/workbook/worksheets(‘{シート名}’)/range(address=‘{シート
名}!B1:L22')
POST /me/drive/items/{driveitemid}/versions/{versionid}/restoreVersion
→204 No Content(成功の場合)
シートの構成を確認する
/me/drive/items/01WKVNWXSNBWFX2ANLDNCIRKJKHQV7SB4K/workbook/worksheets
セルの構成を確認する
/me/drive/items/01WKVNWXSNBWFX2ANLDNCIRKJKHQV7SB4K/workbook/worksheets/経費明細書/usedrange
セルの構成を確認する
/me/drive/items/01WKVNWXSNBWFX2ANLDNCIRKJKHQV7SB4K/workbook/worksheets/経費明細書/usedrange
る
/me/drive/root:/経費明細書.xlsx
ユーザーインターフェイス
サーバーレス
コンピューティング
永続化層
他システム
Power Automateで業務フロー
2021/3/27
まず3人の役割(経理、マネージャー、申請者)を分け
ない
App launcher icon-> すべてのアプリ-> Power Automate
トリガーの定義
Power Automate-> 作成-> 自動化されたフロー-> onedrive-> ファイルが変更されたとき*上の方
トリガーの定義
Power Automate-> 作成-> 自動化されたフロー-> onedrive-> ファイルが変更されたとき-> Root
Excelファイルの読み込みを定義
新しいステップ-> Excel Online -> 表内に存在する行を一覧表示
Excelファイルの読み込みを定義
表内に存在する行を一覧表示-> OneDrive for Business-> OneDrive-> 経費明細書
Excelファイルの読み込みを定義
表内に存在する行を一覧表示-> OneDrive for Business-> OneDrive-> 経費明細書-> ExpenseData
Excelファイルの読み込みを定義
表内に存在する行を一覧表示-> OneDrive for Business-> OneDrive-> 経費明細書-> ExpenseData
データ処理を定義する
新しいステップ-> 制御-> Apply to each
データ処理を定義する
新しいステップ-> 制御-> Apply to each-> value-> アクションの追加-> データ操作
データ処理を定義する
新しいステップ-> 制御-> Apply to each-> value-> アクションの追加-> データ操作-> 作成-> 合
計
データ処理を定義する
新しいステップ-> 制御-> 条件-> 出力
データ処理を定義する
新しいステップ-> 制御-> 条件-> 出力-> 式-> int() -> int(出力)*出力=output(‘作成’)
データ処理を定義する
新しいステップ-> 制御-> 条件-> 出力-> 式-> int(…) 次の値より大きい 0
データ処理を定義する
新しいステップ-> 制御-> 条件-> はいの場合-> アクションの追加-> Microsoft Teams
データ処理を定義する
Microsoft Teams-> メッセージを投稿する(V3)-> チーム-> マイコネクション(アカウント選択)-
> 選択する
データ処理を定義する
メッセージを投稿する(V3)-> チャンネル-> 選択する(一般:General) -> (前の作成の)出
力を選択
データ処理を定義する
新しいステップ-> アクションの選択-> 制御 -> 終了を選択
データ処理を定義する
終了を選択-> 状態-> 成功 ->テスト-> トリガーアクションを実行する-> 保存&テスト
データ処理を定義する
OneDrive上のExcelに金額を入力-> 式が入っていて合計金額が変化する-> ファイルの変更でフ
ローが流れる
データ処理を定義する
実行結果を確認-> 各ステップの中を確認-> Apply to eachの場合、各処理を個別に確認可能
データ処理を定義する
実行結果を確認-> 各ステップの中を確認-> Apply to eachの場合、各処理を個別に確認可能-> 次
へ
Web app作成
2021/3/27
プログラムでフォーマットする
Teams-> チームを選択-> チャンネル(一般:General)/ Kaizara-> チャット
コントローラーの追加
Visual Studio-> .NET Core Web App-> Controller-> HomeControllerにメソッド追加
ビューの作成
Visual Studio-> .NET Core Web App-> Views-> Home-> Index.chtmlにコントロールをいくつか
追加
発行
Visual Studio-> 発行-> Azure Web App
動作確認
ブラウザ-> 確認
Power Automateにアクション追加
アクションの追加-> 組み込み-> HTTP -> HTTP
HTTPアクションの追加
アクションの追加-> 組み込み-> HTTP -> HTTP -> GET -> URI -> クエリ-> input & type
ステップの修正
HTTPアクションをドラッグ&ドロップ
マット
メッセージの修正
保存とテスト
OneDriveのファイルを変更し、TeamsとKaizalaで動作を確認
• ファイルを扱うのでなく情報を扱うという視点
Microsoft Graph API
• Google driveやBoxなどのファイルを扱う必要がある場合
ExcelDataReader
• 管理画面でアップロードされたファイルを事前チェックしたい場合
Open XML
ファイルを直接読みたいケースとは?
Open XML sample code
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
public async Task<IActionResult>
UploadSingle(IFormFile file){
//file save
// lastFile = getFile()
}
Open XML sample code
using (SpreadsheetDocument document = SpreadsheetDocument.Open(lastFile.FullName, false))
{
var wbPart = document.WorkbookPart;
var stringTable = wbPart.GetPartsOfType<SharedStringTablePart>().FirstOrDefault();
foreach (var sheet in wbPart.Workbook.Descendants<Sheet>())
{
…
Open XML sample code
var wsheetPart = wbPart.GetPartById(sheet.Id) as WorksheetPart;
if (wsheetPart != null)
{
if (sheet.Name == "○○一覧")
{
var ws = wsheetPart.Worksheet;
foreach (var row in ws.Descendants<Row>())
{
…
Open XML sample code
if (row.RowIndex == 1)//表タイトル
{
foreach (Cell cell in row)
{
//タイトル取得など
}
}
else
{
//表本体の処理
Open XML sample code
foreach (Cell cell in row)
{
var value = cell.InnerText;
//表本体の処理
}
Conclusion
OneDriveはファイルサーバーとして使わない方がいい
◦ ファイルをダウンロードしてメールに添付する仕事のやり方は変わります
◦ レガシーな仕事のやり方だと…同じファイルが複数存在する、バージョン管理が煩雑になる、セキュリティ的に問題
◦ 組織アカウント+OneDriveの組み合わせは、細かなアクセス制御ができます
◦ ノーコード Or プログラムでもOK。Excelファイルを入力に使って、入力された情報だけを必要な人に流すことが可能
◦ OneDriveはバージョン管理ができます
◦ 過去のバージョンにも復元できるので「yyyyMMddファイル名.xlsx」みたいなファイルを大量に作る必要はない
OneDriveのファイルを使う場合
◦ Graph APIは、Open XMLアーキテクチャやExcelDataReader名前空間を使うより楽です
◦ Open XMLアーキテクチャやExcelDataReaderを使うのは、OneDriveのGraph APIを使えないときに使います
セッション中のプログラムについて
◦ Blog.Processtune.comにて情報を公開していきます。github.com/TetsuroTakaoでも情報公開します。

Contenu connexe

Tendances

安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018Hiroshi Tokumaru
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見Yosuke HASEGAWA
 
Spring Security 4.1 の新機能
Spring Security 4.1 の新機能Spring Security 4.1 の新機能
Spring Security 4.1 の新機能正和 井岡
 
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011Hiroshi Tokumaru
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
Spring integration概要
Spring integration概要Spring integration概要
Spring integration概要kuroiwa
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話JustSystems Corporation
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証についてTakeo Noda
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編なべ
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編なべ
 
Play!30分クッキング
Play!30分クッキングPlay!30分クッキング
Play!30分クッキングShinichi Kozake
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016Hiroshi Tokumaru
 
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
 Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編) Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)Hiroshi Tokumaru
 
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼうCMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼうHiroshi Tokumaru
 
文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?Hiroshi Tokumaru
 
はじめてのSpring Boot
はじめてのSpring BootはじめてのSpring Boot
はじめてのSpring Bootなべ
 
IBM Eclipse tools for Bluemix の構成手順
IBM Eclipse tools for Bluemix の構成手順IBM Eclipse tools for Bluemix の構成手順
IBM Eclipse tools for Bluemix の構成手順Hiroaki Komine
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷JavaToshiaki Maki
 

Tendances (20)

安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
 
[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見[デブサミ2012]趣味と実益の脆弱性発見
[デブサミ2012]趣味と実益の脆弱性発見
 
Spring Security 4.1 の新機能
Spring Security 4.1 の新機能Spring Security 4.1 の新機能
Spring Security 4.1 の新機能
 
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
Spring integration概要
Spring integration概要Spring integration概要
Spring integration概要
 
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
Spring Boot の Web アプリケーションを Docker に載せて AWS ECS で動かしている話
 
Laravelの認証について
Laravelの認証についてLaravelの認証について
Laravelの認証について
 
Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編Spring bootでweb セキュリティ(ログイン認証)編
Spring bootでweb セキュリティ(ログイン認証)編
 
Spring bootでweb 基本編
Spring bootでweb 基本編Spring bootでweb 基本編
Spring bootでweb 基本編
 
Play!30分クッキング
Play!30分クッキングPlay!30分クッキング
Play!30分クッキング
 
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
 
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
 Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編) Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
 
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼうCMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
 
文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?文字コードの脆弱性はこの3年間でどの程度対策されたか?
文字コードの脆弱性はこの3年間でどの程度対策されたか?
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
はじめてのSpring Boot
はじめてのSpring BootはじめてのSpring Boot
はじめてのSpring Boot
 
IBM Eclipse tools for Bluemix の構成手順
IBM Eclipse tools for Bluemix の構成手順IBM Eclipse tools for Bluemix の構成手順
IBM Eclipse tools for Bluemix の構成手順
 
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Javaどこよりも早い Spring Boot 1.2 解説 #渋谷Java
どこよりも早い Spring Boot 1.2 解説 #渋谷Java
 
Php+Word Press
Php+Word PressPhp+Word Press
Php+Word Press
 

Similaire à Excel on OneDrive is not a file

Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...
Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...
Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...Masaki Takeda
 
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
コーディング不要!Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書コーディング不要!Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書Masaki Takeda
 
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
Entity Framework 6.1.3 + Windows フォームサンプル アプリケーション構築手順書Entity Framework 6.1.3 + Windows フォームサンプル アプリケーション構築手順書
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書Masaki Takeda
 
Team Foundation Server / Visual Studio Team Services によるプロジェクト管理・リポジトリ管理・継続的イ...
Team Foundation Server / Visual Studio Team Services によるプロジェクト管理・リポジトリ管理・継続的イ...Team Foundation Server / Visual Studio Team Services によるプロジェクト管理・リポジトリ管理・継続的イ...
Team Foundation Server / Visual Studio Team Services によるプロジェクト管理・リポジトリ管理・継続的イ...Masaki Takeda
 
DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法
DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法
DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法decode2016
 
Team Foundation Server / Visual Studio Team Services 手順書
Team Foundation Server /Visual Studio Team Services 手順書Team Foundation Server /Visual Studio Team Services 手順書
Team Foundation Server / Visual Studio Team Services 手順書Masaki Takeda
 
Continuous Integration Using Salesforce DX
Continuous Integration Using Salesforce DXContinuous Integration Using Salesforce DX
Continuous Integration Using Salesforce DXSatoru Ishikawa
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
XPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaXPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaTokyo, Japan
 
System centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまでSystem centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまでMasahiko Ebisuda
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and AgileKazushi Kamegawa
 
DEV-004_ここを使うだけで、大幅に業務効率改善! Visual Studio 2015 update 2 の最新便利機能をピックアップ
DEV-004_ここを使うだけで、大幅に業務効率改善! Visual Studio 2015 update 2 の最新便利機能をピックアップDEV-004_ここを使うだけで、大幅に業務効率改善! Visual Studio 2015 update 2 の最新便利機能をピックアップ
DEV-004_ここを使うだけで、大幅に業務効率改善! Visual Studio 2015 update 2 の最新便利機能をピックアップdecode2016
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例Takeshi Kondo
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVCjz5 MATSUE
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化Issei Hiraoka
 
Team Foundation Server 2015 による テスト工数削減
Team Foundation Server 2015 によるテスト工数削減Team Foundation Server 2015 によるテスト工数削減
Team Foundation Server 2015 による テスト工数削減Masaki Takeda
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用de:code 2017
 

Similaire à Excel on OneDrive is not a file (20)

Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...
Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...
Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...
 
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
コーディング不要!Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書コーディング不要!Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
コーディング不要! Entity Framework 6.1.3 + ASP.NET MVC 5 サンプル アプリケーション構築 手順書
 
Workspace ONE PoC Guide Chapter 3 Office365 Integration v1.1
Workspace ONE PoC Guide Chapter 3 Office365 Integration v1.1Workspace ONE PoC Guide Chapter 3 Office365 Integration v1.1
Workspace ONE PoC Guide Chapter 3 Office365 Integration v1.1
 
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
Entity Framework 6.1.3 + Windows フォームサンプル アプリケーション構築手順書Entity Framework 6.1.3 + Windows フォームサンプル アプリケーション構築手順書
Entity Framework 6.1.3 + Windows フォーム サンプル アプリケーション構築 手順書
 
Team Foundation Server / Visual Studio Team Services によるプロジェクト管理・リポジトリ管理・継続的イ...
Team Foundation Server / Visual Studio Team Services によるプロジェクト管理・リポジトリ管理・継続的イ...Team Foundation Server / Visual Studio Team Services によるプロジェクト管理・リポジトリ管理・継続的イ...
Team Foundation Server / Visual Studio Team Services によるプロジェクト管理・リポジトリ管理・継続的イ...
 
DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法
DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法
DEV-005_200 時間以上お客様と向き合って見えた Team Foundation Server による開発業務効率化の実現方法
 
Team Foundation Server / Visual Studio Team Services 手順書
Team Foundation Server /Visual Studio Team Services 手順書Team Foundation Server /Visual Studio Team Services 手順書
Team Foundation Server / Visual Studio Team Services 手順書
 
Continuous Integration Using Salesforce DX
Continuous Integration Using Salesforce DXContinuous Integration Using Salesforce DX
Continuous Integration Using Salesforce DX
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
07 devops
07 devops07 devops
07 devops
 
XPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaXPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_Hasegawa
 
System centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまでSystem centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまで
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and Agile
 
DEV-004_ここを使うだけで、大幅に業務効率改善! Visual Studio 2015 update 2 の最新便利機能をピックアップ
DEV-004_ここを使うだけで、大幅に業務効率改善! Visual Studio 2015 update 2 の最新便利機能をピックアップDEV-004_ここを使うだけで、大幅に業務効率改善! Visual Studio 2015 update 2 の最新便利機能をピックアップ
DEV-004_ここを使うだけで、大幅に業務効率改善! Visual Studio 2015 update 2 の最新便利機能をピックアップ
 
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
はじめての ASP.NET MVC
はじめての ASP.NET MVCはじめての ASP.NET MVC
はじめての ASP.NET MVC
 
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化2021/03/19 パブリッククラウドを活かす運用プロセス自動化
2021/03/19 パブリッククラウドを活かす運用プロセス自動化
 
Team Foundation Server 2015 による テスト工数削減
Team Foundation Server 2015 によるテスト工数削減Team Foundation Server 2015 によるテスト工数削減
Team Foundation Server 2015 による テスト工数削減
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
 

Plus de Takao Tetsuro

Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoTakao Tetsuro
 
local launch small language model of AI.
local launch small language model of AI.local launch small language model of AI.
local launch small language model of AI.Takao Tetsuro
 
Implementation Approach of Artifical Intelligence
Implementation Approach of Artifical IntelligenceImplementation Approach of Artifical Intelligence
Implementation Approach of Artifical IntelligenceTakao Tetsuro
 
MAUIGraphicsNamespace.pptx
MAUIGraphicsNamespace.pptxMAUIGraphicsNamespace.pptx
MAUIGraphicsNamespace.pptxTakao Tetsuro
 
Polyglot Persistence and Graph Schema
Polyglot Persistence and Graph SchemaPolyglot Persistence and Graph Schema
Polyglot Persistence and Graph SchemaTakao Tetsuro
 
ServiceMeshEndpointWithMinimalAPIPublish.pptx
ServiceMeshEndpointWithMinimalAPIPublish.pptxServiceMeshEndpointWithMinimalAPIPublish.pptx
ServiceMeshEndpointWithMinimalAPIPublish.pptxTakao Tetsuro
 
OptonsPatternDotNet.pptx
OptonsPatternDotNet.pptxOptonsPatternDotNet.pptx
OptonsPatternDotNet.pptxTakao Tetsuro
 
ASP.NETCoreOptionsPattern.pptx
ASP.NETCoreOptionsPattern.pptxASP.NETCoreOptionsPattern.pptx
ASP.NETCoreOptionsPattern.pptxTakao Tetsuro
 
Layout isfirstprocessofatomicdesign
Layout isfirstprocessofatomicdesignLayout isfirstprocessofatomicdesign
Layout isfirstprocessofatomicdesignTakao Tetsuro
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2Takao Tetsuro
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説Takao Tetsuro
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascriptTakao Tetsuro
 
Interactive connection2
Interactive connection2Interactive connection2
Interactive connection2Takao Tetsuro
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvcTakao Tetsuro
 
M365VM_PowerFX_takao-matsumoto_matsui_kojima
M365VM_PowerFX_takao-matsumoto_matsui_kojimaM365VM_PowerFX_takao-matsumoto_matsui_kojima
M365VM_PowerFX_takao-matsumoto_matsui_kojimaTakao Tetsuro
 
OpenStreetMap and Mapbox
OpenStreetMap and MapboxOpenStreetMap and Mapbox
OpenStreetMap and MapboxTakao Tetsuro
 
Development toolsforteamdevelopment
Development toolsforteamdevelopmentDevelopment toolsforteamdevelopment
Development toolsforteamdevelopmentTakao Tetsuro
 
React Helmet navigates SPA
React Helmet navigates SPAReact Helmet navigates SPA
React Helmet navigates SPATakao Tetsuro
 

Plus de Takao Tetsuro (20)

Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour TokyoSmall Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour Tokyo
 
local launch small language model of AI.
local launch small language model of AI.local launch small language model of AI.
local launch small language model of AI.
 
Implementation Approach of Artifical Intelligence
Implementation Approach of Artifical IntelligenceImplementation Approach of Artifical Intelligence
Implementation Approach of Artifical Intelligence
 
MAUIGraphicsNamespace.pptx
MAUIGraphicsNamespace.pptxMAUIGraphicsNamespace.pptx
MAUIGraphicsNamespace.pptx
 
Polyglot Persistence and Graph Schema
Polyglot Persistence and Graph SchemaPolyglot Persistence and Graph Schema
Polyglot Persistence and Graph Schema
 
ServiceMeshEndpointWithMinimalAPIPublish.pptx
ServiceMeshEndpointWithMinimalAPIPublish.pptxServiceMeshEndpointWithMinimalAPIPublish.pptx
ServiceMeshEndpointWithMinimalAPIPublish.pptx
 
OptonsPatternDotNet.pptx
OptonsPatternDotNet.pptxOptonsPatternDotNet.pptx
OptonsPatternDotNet.pptx
 
ASP.NETCoreOptionsPattern.pptx
ASP.NETCoreOptionsPattern.pptxASP.NETCoreOptionsPattern.pptx
ASP.NETCoreOptionsPattern.pptx
 
gRPCurlDotNet.pptx
gRPCurlDotNet.pptxgRPCurlDotNet.pptx
gRPCurlDotNet.pptx
 
Layout isfirstprocessofatomicdesign
Layout isfirstprocessofatomicdesignLayout isfirstprocessofatomicdesign
Layout isfirstprocessofatomicdesign
 
Wasm blazor and wasi 2
Wasm blazor and wasi 2Wasm blazor and wasi 2
Wasm blazor and wasi 2
 
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
WebAssemblyとBlazor 、WebAssembly System Interfaceでコンテナライズの設計を解説
 
Team development
Team developmentTeam development
Team development
 
Interoperability of webassembly with javascript
Interoperability of webassembly with javascriptInteroperability of webassembly with javascript
Interoperability of webassembly with javascript
 
Interactive connection2
Interactive connection2Interactive connection2
Interactive connection2
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
 
M365VM_PowerFX_takao-matsumoto_matsui_kojima
M365VM_PowerFX_takao-matsumoto_matsui_kojimaM365VM_PowerFX_takao-matsumoto_matsui_kojima
M365VM_PowerFX_takao-matsumoto_matsui_kojima
 
OpenStreetMap and Mapbox
OpenStreetMap and MapboxOpenStreetMap and Mapbox
OpenStreetMap and Mapbox
 
Development toolsforteamdevelopment
Development toolsforteamdevelopmentDevelopment toolsforteamdevelopment
Development toolsforteamdevelopment
 
React Helmet navigates SPA
React Helmet navigates SPAReact Helmet navigates SPA
React Helmet navigates SPA
 

Dernier

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 

Dernier (9)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 

Excel on OneDrive is not a file

Notes de l'éditeur

  1. このセッションではMicrosoft Graph APIやPower Automate、Open XMLアーキテクチャを使ったExcelの操作を説明します。 ただし、ソースコードの解説だけならインターネット上にサンプルコードはたくさんありますから、ここでは現実の運用に即した運用手順の組み立て方のコツなどもお話しします。
  2. はじめに自己紹介させてください。【読む】本日のお話はIgnite the tour Osakaで話した内容の更新版となります。
  3. OneDriveにファイルを置く目的は「情報の共有」であり、「情報の共同編集」であり、「情報の保管」かもしれません。しかしながら、それを行うためにファイルという入れ物は、私は必要ではないと考えています。ファイルという入れ物に入れて情報システム部門でアクセス権を管理し、破棄ポリシーが無いままファイルサーバーが電子のゴミ箱みたいになっている状態を何度も見たことがあります。皆さんも同じではないでしょうか?MicrosoftはTeamsでExcelファイルを共同編集できるようにしました。OneDriveでは同じようにブラウザで共同編集できます。 これによって、ファイルをファイルサーバーからダウンロードして電子メールに添付して共有するといった作業は必要なくなりました。
  4. それでは実装の準備から進めましょう。
  5. まず、Office.comから経費報告書をダウンロードしてきて、これをテンプレートにするので、そのままOneDriveにアップロードします。
  6. 次に、日本語がおかしいところがあるので少々修正します。アップロードの時に気を付けていただきたいのがアカウントです。このファイルを操作するのは経費の申請者、承認者、経理部です。これまでのActive Directoryのアクセス権設定では、これまでのシステムと変わりません。例えば、複数の部署でのプロジェクトでプロジェクトマネージャーが主幹の部署の部長だったとします。その部長はプロジェクトの経費を承認できなければいけません。しかし、多くのケースではプロジェクトマネージャーの部署ではないメンバーの経費は、そのメンバーの組織上の上長が形式的に判を押し、それをもってプロジェクトマネージャーが承認するといったことが行われます。つまり、プロジェクトメンバーでない組織上の上長がプロジェクトの経費内容を知ることになります。多くの組織では権限上問題ないかもしれませんが、セキュリティ上は問題があります。 それぞれの運用を考慮したアカウントの設計が必要になります。
  7. これを、Graph Explorerでみるとこんな感じです。これが初期の内容になりますから、このExcelファイルを初期化する際(誰かが入力して、情報の共有が終わったら)このJSONで上書きしてしまえばよいということですね。
  8. そのため最初にこれをUTF-8で保存して、プロジェクトのルートに入れておきます。プロジェクトは何でも良いのですが私はASP.NET Core のMVC Webアプリケーションを使っています。
  9. または、OneDriveはバージョンを保持していますので、手動で行う「復元」についてもMicrosoft Graph APIを通してリクエストすることができます。
  10. Power Automateを定義する前に、このブックの構成を確認しておきます。
  11. 中身を見ると、明細エリアの日付フィールドが空白だったら空白を表示して、期間を表示しています。【クリック】
  12. また、各行の小計、各列の小計を出して最後に合計を出してますので、これらのセルはデータとしては必要ありません。
  13. Microsoft Graph APIを使うとExcelをファイルでなくユーザーインターフェイスとして使えるので、クライアントにはOfficeアプリケーションが必要ないという運用ができます。MacやAndroidを端末として使えるという利点もあります。
  14. 中身の確認が終わったらPower Automateで業務フローを作りましょう。ここでは、簡単に同じアカウントで業務の流れだけを先に作ってしまいます。
  15. 作成の流れはこんな感じです。【スライドを読む】ステップごとに解説します。ステップは3つだけです。各ステップの詳細を見ていきましょう。
  16. 経費明細書の置き場は便宜的にルートに置いてありますが「ファイルが変更されたとき」の対象はフォルダーになります。ですから、フォルダ内のファイルが変更されるごとにイベントが流れます。 ここでまず最初の設計の分岐を迎えます。イベントを全部拾って、必要なものだけを後続処理に流すのか?フォルダーを経理部と申請部署と分けるのかといった設計です。 王道はありません。入力の都度入力の検証を行うのがいいのか、入力完了の最後に検証を行うのかといった視点もありますし、入力の中断、レジューム機能を持たせたいとか、できる限り流れるイベント数を抑えたいといった視点もあります。 ここでは一例として、あるセルが変更されたらイベントを流すようにします。つまり、「申請者が申請送信したら」とか、「マネージャーが承認したら」というイベントドリブンを例にします。自動化されたフローを選択、名前を入力してonedriveを検索します。
  17. リストの最下部に「ファイルが変更されたとき」のOneDrive for Businessは2つあります。上はフォルダルートの変更をトリガーします。下はサブフォルダまで監視します。上を選んで作成をクリックすると次の画面で監視対象のフォルダーを選択することができます。
  18. ファイルが変更された時に対象のExcelファイルを読みます。「新しいステップ」をクリックし、Excel Online Businessを選んで「表内に存在する行を一覧表示」を選択します。
  19. 場所、OneDrive for Business、ドキュメントライブラリ、OneDrive、ファイル、経費明細書.xlsxを選択していきます。
  20. Office.comの経費明細書には、計算の為の名前定義がしてあるのでそれを使います。テーブルに、ExpenceDataを選択し、最後に保存します。
  21. エクセルファイルで名前を選択するとデータを取得できる範囲が分かります。ここに入力されたデータが配列で後続処理に流れてくるというわけです。
  22. 次に流れてきたデータを処理します。流れてくるデータというのは、先ほどの配列データです。配列を処理する場合は、制御処理アイコンを選択してApply to eachを選択します
  23. 入力ボックスをクリックして下に出てくる表示からvalueを選択します。続いてこの中から合計(各列の)が入っていればその行に入力があることがわかるので、まず合計だけ抜き出します。うまく動いたら各行の項目を追加していけばいいと思います。そのためまず「データ」と入力するとデータ操作アイコンが一番左に表示されるようになり、クリックすると下のリストにデータ操作関係のアクションが一覧されます。
  24. データ操作のリストから作成を選択し、入力ボックスをクリックすると項目を選ぶことができます。合計を選んで、合計が0円でなかったらTeamsに投稿するアクションを作ります。
  25. アクションの追加をクリックし、制御アイコンが表示されているので、アイコンを選択すると下に選択リストが表示されます。一番上の条件を選択し左の値の選択をクリックすると入力補助の画面が表示されます。注意が必要なのですが、データはすべて文字で受送信されます。ですから、ここでは数値に変換してから0円でないところだけ抜き出します。
  26. まず、式を選択して変換関数の中からint(value)を選択します。次にintの()の間にカーソルを当ててから動的コンテンツを選択してください。そこで出力を選択します。
  27. これで、作成のアウトプット、つまりエクセルの表の中の合計列の配列が数値型に変換されて後続処理に流れるようになりました。この後0円でないものだけTeamsに書き込まれるようにします。
  28. はいといいえでそれぞれ何をやるのかが定義できますから、はいの方にだけTeamsへの書き込みを定義します。はいの方でアクションの追加をクリックするとTeamsアイコンが選べるようになっています。
  29. Teamsアイコンをクリックし、メッセージを投稿する(V3)(プレビュー)をクリックするとチームやチャンネルを選べるようになります。右肩の3点リーダーをクリックするとチームやチャンネルを選ぶ際にそのアカウントが登録されているチームやチャンネルを選べるようになりますので複数のアカウントとの接続を持っている方は、対象のアカウントを選んでおいてください。チームにはそのアカウントが登録されているチームがリストに出ますので選択してください。
  30. 同様にチャンネルでGeneralを選んで本文に出力を選択します。
  31. 最後にApply to eachの下の新しいステップで制御から終了を設定します。
  32. 処理としては成功を返すように設定しておき、テストからトリガーアクションを実行するを選んでから保存&テストをクリックします。
  33. 燃料費に700円を入力すると、合計には式が入っていますので合計は0円ではなくなります。Teamsの画面に出力されたことでもフローが流れたことを確認できますし、Power Automateの画面でもフローが成功したことを確認できます。
  34. ここまで作ってしまえば、Teamsで結果を確認しながらフローを拡張していくことができます。 たとえば、結果画面のApply to eachをクリックし、条件をクリックするとどのような処理結果だったかがわかります。この場合、Excelからは11行分のデータが流れてきて1件目が0円以上だったことがわかります。次へをクリックすると【クリック】
  35. 結果はfalseになっており2行目が0円だったことがわかります。
  36. Power Automateで業務フローの動作確認が取れたら簡単なWebアプリを作りましょう。
  37. この例はKaizaraにも同じ通知を飛ばしています。Teamsの方もKaizalaの方も日付がおかしくなっていること、金額がフォーマットされていない事がわかると思います。 Excelファイルは日付データをOADateという型で値を保存してますから、これを.NETなどで扱いやすい型に変えてやる必要があります。このような処理は、Power Automateでやるのではなく、小さなプログラムを作ってPower Automateから利用する方が効率が良いかと思います。
  38. プログラムは非常にシンプルです。このような関数をHomeControllerに作成して、値段の場合は「ToString(“C”, new CultureInfo(“ja-jp”))」、日付の場合はDateTime型のFromOADateで変換して返してあげます。
  39. まず、Web App側で動作チェックを行うために簡単なページを作ります。ローカルでも確認できますし、Azureに発行してもかまいません。
  40. Power Automate側でポートを指定するのが面倒だったのでFreeプランのF1でAzure側に機能を発行しました。
  41. まず、Web App側で動作チェックをします。
  42. Web側で動作チェックができたらPower Automate側を作成します。 HomeコントローラーにConvertValueを追加したので条件の下にアクションを追加、HTTPを追加します。
  43. 日付と金額を変換します
  44. 次に条件を開けて、はいの箱にHTTPをドラッグアンドドロップします。このようにアクションはどこに入れても修正できるので試行錯誤しながら正しく動くフローを作ってください。
  45. はいの箱にHTTPを並べたらTeamsのメッセージを修正してKaizaraのアクションも追加します。
  46. 動作を確認します。
  47. 情報はセキュアにアクセスすべきで、セキュアとは組織のコンプライアンスに強く紐づくものです。つまり、Excelファイルの情報にはそのファイルにアクセスできる人間がアクセスできるように制御されている必要があり、認証は必須です。認証と認可が統制的に紐づいているMicrosoft 365という情報基盤はGoogle driveやBoxなどファイル制御中心に利用されているストレージサービスとは異なります。 OneDriveをファイルサーバーとして使っている以上、Google driveやBoxに対する優位性を享受することはできません。
  48. おそらく、OpenXML自体がわからないと、ハンセルマンのExcelDataReaderの使いどころがわからないと思いますので、簡単にOpenXMLを説明します。