技術情報ブログ
Power Platform
2021.08.04

【Power AutomateでExcelデータをSharePointにインポートするために考えること 第4回】タイムゾーン差異と対処法

【Power AutomateでExcelデータをSharePointにインポートするために考えること 第4回】タイムゾーン差異と対処法

こんにちは。アーティサン株式会社の小刀稱(ことね)です。

「Power AutomateでExcelをSharePointリストにインポートしたい時に考えること」シリーズの第4回です。

本シリーズでは、私が実際にPower Automateを用いて、「ExcelをSharePointリストにインポートする」フローを作成していきます。

また、作成の際に学んだ点や躓いた点を中心に紹介いたします。

Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。

前回はPower AutomateにてExcelデータをSharePointリストにインポートするフローを作成しましたが、 実行したところ、ExcelデータとSharePointリストのdatetime列に差異(SharePointリストのdatetime列が9時間先行)が発生していました。

第3回目の内容はこちらを参照ください。

Power AutomateでExcelデータをSharePointにインポートするために考えること(第3回)

今回は、発生した現象の原因とその対処方法についてお伝えしていきたいと思います。

 

発生した現象の原因と対策

まずは発生した現象を再度確認します。

Power AutomateでExcelデータをSharePointにインポートする際の前回発生した現象

datetime列に着目してください。(画像上部がExcel、下部がSharePointリスト)

SharePointリストのdatetime列が9時間先行していました。

 

原因について順を追って説明します。

前提として、SharePointのdatetime列は、サイトコレクションのタイムゾーン設定に基づいて、タイムゾーンの値を考慮した日時を表示します。 (今回の場合は、JST(日本標準時)環境の日時を表示します。

また、SharePointではタイムゾーンがない日時データは、時差ゼロ=UTC(協定世界時)として日時を扱います。

Excelのdatetime列(シリアル値)にはタイムゾーンが含まれておりません。

よって、Excelのdatetimer列をそのままSharePointにインポートすると、その値はUTCとして扱われます。

JSTはUTCから+9時間の時差があるため、タイムゾーンの設定に基づき SharePointリストのdatetime列が9時間先行して表示されておりました。

 

対処法としては、「項目の作成」アクションの前に「タイムゾーンの変換」アクションを追加することでタイムゾーンを調整します。

対処法としてタイムゾーンの変換

変換元のタイムゾーンを「UTC」、変換先のタイムゾーンを「UTC -9:00」に設定しています。

これは、Excelのデータから-9時間した値をUTCとして認識させることを意味しています。

ちなみに、「取得した値を9時間減算する」という処理は「時間からの減算」アクションでも対応可能ですので、どちらのアクションを使用しても同様の結果を得ることができます。

Excelのデータから-9時間した値をUTCとして認識させる

 

フローの実行

それでは修正したフローを再度実行しましょう。

保存したExcelファイルの横にある三点リーダーから「自動化」→「作成したフロー名」をクリックすることで実行できます。

修正したフローを再度実行

今度こそ、想定した通りのデータをインポートすることができました!

実行結果はデータをインポートすることができました

 

まとめ

実際に作成すると、いろいろと考慮事項などはありましたが、アクション数としてはたったの5つです。

フロー内アクションの詳細

フロー作成にあたり、躓いた箇所とその対応方法をまとめてみました。

  • SharePointリストExcelのDate列の形式が異なっていた。

    「表内に存在する行を一覧表示」アクションの日付形式に関する取得方式を、シリアル値からISO 8601形式に変更した

  • SharePointリストのdatetime列が9時間先行していた。

    「タイムゾーンの変換」アクションにて-9時間した値をUTCとして認識させた

 

今後の構想

ここまでで、必要最低限な機能を作成することができました。

しかし、実際の運用を想定すると、以下の内容は気になるところではないでしょうか。

  • 動的にExcelデータを取得するには?

    今までは、事前にSharePointに保存したExcelデータ(=静的なExcelデータ)からPower Automateを起動していました。

    しかし実際の運用では、「メールに添付されたExcelデータを自動的にインポートする」や、「SharePointにExcelデータが保存された際、自動的にインポートする」という要望もあると思います。

    そのような場合には、動的にExcelデータを取得する必要があります。

  • 表データの行数が多い場合は?

    Excelの表データを取得する際には、「表内に存在する行を一覧表示」アクションを用います。このアクションでは、既定で256行分のテーブルデータしか取得することができません。

    よって、256行より多いデータを取得する際には、少し工夫が必要となります。

  • 表データの中に異なる形式の値がある(例:日付に文字列が入っている)場合は?

    SharePointリストに値を追加する「項目の作成」アクションでは、読み込んだデータが異なる形式の場合、エラーとなります。そうなると、その行のデータはインポートされません。

    さらに本アクションがエラーの場合、後続のアクションは実行されず、想定外の挙動となることがあります。

    それを防ぐための考慮も必要となってきます。

次回以降は、上記で挙げた項目を中心に作成したフローを作り込んでいきます!

ここまで読んでいただき、ありがとうございました。

 

【このシリーズの過去回一覧】

 

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

大分県出身(温泉大好き♥♥)、現在は東京都在住

1990年4月9日生まれ

30才にしてメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!

シェアする
記事カテゴリ
最新記事
2024.03.27

Power Automateのベストプラクティス・アンチパターン(5)【Apply to each×コンカレンシー×変数の設定はNG】

2024.03.20

Power Apps×Teams:Teams上からPower Appsを実行する方法

2024.03.13

Power Apps:SharePointリストと連携したカレンダーアプリを自作してみよう

2024.03.06

SharePointのあったらいいなを集めました(X-SPのご紹介)

2024.02.28

【2024年2月更新】Power Apps の実践的なノウハウ まとめ

モデル駆動型アプリPower AppsPower PlatformSharePointExcelPower AutomateC#attributevalidationローコードAngularAccessInfoPathMatTableAngular Materialデータ構造SortByColumns関数TypeScriptHTMLEF CoreマイグレーションFramework CoreAttribute directivesO/Rマッパーazure sql databaseCase式HTTP RequestCSSxUnit.Net Core 3.1VSCode.Net Core Test ExplorerDataverse for Teamsitem関数Google MapsMarker ClustererRANK()関数Dynamics 365 SalesMicrosoft TranslatorマーカークラスタリングライブラリtailwindcssマルチテナントドロップダウンメニューBreakpointObserverメディアクエリスマホPCレスポンシブ入門初心者中級者キャンバスアプリDatePickerDropdownviewビューアクセス制限承認リマインドSetForAllUpdateContextロードマップ技術It情報技術メッセージIDメールfirst()関数nest入れ子動的リストcollectionコレクション複数の添付ファイル承認フローformエクスポートインポートカスタマイズcomponentダイアログコンポーネントdialogTips新機能変数検索Microsoft 365グループセキュリティグループ送信元メールの送信差出人インスタントクラウドフロー自動化したクラウドフロー委任VBAエラーエクセルerror復元restorePower BI個人列ユーザー列SharePoint Onlineリスト非表示アプリ[市民開発者構築自動化したクラウド フローフローの種類インスタント クラウド フロースケジュール済みクラウド フローレスポンシブ レイアウトresponsive layoutデータ行の制限引き継ぎ退職所有者を変更異動LoopMicrosoftdesignJSONデザインtemplateテンプレート運用選択肢列参照列ChatGPTOpenAIオープンAIチャットGPTgalleryギャラリースクロールコンテナショートカットキーshortcut keyconcat関数文字制限フロー実行開発環境環境本番環境ライセンス環境構築手順pipelineCI/CDパイプラインDevOpsMicrosoft 365簡易在庫管理時間外通知ファイルフィルター クエリドキュメント ライブラリfilter querysortソートmultiple item複数項目シェアポイント便利機能カレンダーCalendarTeams
PageTop
ページトップに戻る