Officeスクリプト:Excell 365からのServerless関数の発行



抄録
“低コード”プラットフォームのための最良のユースケースを使用し、理解する努力を続けるPower Platform 「私は、「Excelの単一の源」としてExcelを使用しているビジネスプロセスを自動化しようとして、そして/またはプロセス出力を示す主な目標として古典的な挑戦をしました.

ユースケース
ここで説明するユースケースは「顧客が割り当てたリソースのタイムシートを管理する」です.
明らかに、それをすることができる多くのソフトウェアがあります、しかし、この特定のケースでは、複雑化は顧客がコンサルタントのタイムシートを管理するために自身のシステムを使用するということです、そして、彼らが課金時間に支配を保つために、それはプロバイダーに開いていません.

メールを使う
問題を解決するためにイメージを解決することができます“クイック&イージー”ソリューションは、“メール通知”は、内部リソース(私の場合は人事担当者)には、主に、タイムシートのエントリに関するメールを受信し、顧客との請求時間をダブルチェックするために使用するExcelシートに配置プロセスを委任されている.

自動化の仕方
したがって、このようなタスクの間に発生する可能性のあるエラーを回避するために必要な手動作業を最小限にするために、このプロセスをできるだけ自動化する方法は?

パワープラットフォームソリューション
上記の問題の後、私は「マイクロソフトPower Platform」を使用して、私が使用することに決めた余分の許可経費を避けるために提案しましたPowerapps for Teams それは「マイクロソフトチーム」と一体化した「パワープラットフォーム」の限定版です

仮定
開始設計と実装の前に、私は以下の仮定をしました:

Reuse the already in place process to reuse both the mail and the excel sheet "as-is" because this will minimise impact in its adoption.



ソリューションのパワープラットフォームアーキテクチャ

写真.1 -リファレンスアーキテクチャ( RC 1 )
上記の要件を達成するために設計した最初の“リファレンスアーキテクチャ”です.

メールからのトリガーフロー
事前に設定されたメールグループに送信/転送された各メールを見ることができます.
  • 送信者を識別する
  • 解析の対象時間の性質を理解するHours Off , Holiday , Availability , Overtime , ...). 現在、これはサーバーレス機能によって達成されますが、パワープラットフォームのAI拡張機能を使用する予定です

  • データを保存する
    その後、集められた情報は状態でdataverseに保存されます:pending for approval
    データを承認する
    この最初のリリースでは、適切な処理中にエラーを確認するために流れによって処理を承認するためのマニュアルステップをご紹介します

    Approver vs Validator.

    Idea is that the Approver and Validator could be the same person


    このために、私はdataverseから承認するためにtimesheetエントリを読むキャンバスアプリを開発しました

    生成エクセル
    最後のステップは、SharePointでファイルExcelを作成/上書きすることです.そして、この目的のために、私はキャンバスアプリから流れを呼ぶのを選びます.利用可能な「方法」はたくさんありますが、以下のようにメインのステップがあります.
  • キャンバスアプリケーションは、データを渡す流れを呼び出します
  • 流れはJSONデータを得て、CSV形式でそれらを変えて、そのような内容で新しいExcelファイルをつくります

  • 配信開始
    テストの後、私は生産環境で解決を届けました、そして、しばらくして、私は最初の重要な問題を得ました、しかし、それは技術的な問題に関連しませんでした.

    問題点(新しいユースケース)
    新しいユースケースは、バリデーターの役割を果たすユーザーが新しい世代の前にExcelファイル(また、複雑な数式を書く)に更新する必要があるということでした.したがって、Excelは上書きできないことを意味します、しかし、それは生のファイルでなければなりません、そして、これは流れが選択的にセルの中で選択している既存のファイルに取り組む必要があることを意味します.

    オフィススクリプトが救出
    問題を解決するために、私はExcelのコネクタを使用してフローから直接Excelセルを更新しようとしましたが、そのようなファイルがいくつかの制約に追加する必要がありますまた、それは非常にフロー自体の複雑さを増加させる必要があります.
    だから私は他の可能な解決策を検索し、幸運に私はOffice Scripts "

    オフィススクリプト
    Office Scripts Web上のOfficeE 365のために設計され、スクリプトは、さまざまなワークブックやワークシートであなたのExcelのアクションを記録し、再生することができます.

    スクリプト解剖
    オフィススクリプトは本質的にAを含まなければならないtypescriptモジュールですmain との機能 ExcelScript.Workbook 最初のパラメータとして入力します.
    function main(workbook: ExcelScript.Workbook, ...args: any[]) {
    }
    
    そこにあなたがアクセスできるフォームOffice Script object model 以下の特徴を概説する

    Office Script object model

    • A Workbook contains one or more Worksheets.
    • A Worksheets gives access to cells through Range objects.
    • A Range represents a group of contiguous cells.
    • Ranges are used to create and place Tables, Charts, Shapes, and other data visualization or organization objects.
    • A Worksheet contains arrays filled with those objects that are present in the individual sheet.
    • A Workbook contains arrays of some of those data objects for the entire Workbook.


    スクリプト開発と展開
    OfficeスクリプトIDEは、Excel自身の中に直接提供されています.メニューから入手可能ですAutomate Web上でExcelを編集している場合でも、便利なTypeScriptエディタを使用して新しい/既存のスクリプトを作成/編集できます.そのようなエディタがIntelliSenseの完全なサポートを提供することに注意してください.私たちが新しいスクリプトを保存するとき、それはonedriveでデフォルトで保存されますDocuments/Office Scrips ASOSTS ファイルとすぐに実行可能です.
    詳細はをご覧くださいRecord, edit, and create Office Scripts in Excel on the web "

    トラックで戻りましょう:解決の「オフィススクリプト」を使ってみましょう
    としては、Excelのコンテンツを操作する無限の可能性が表示されますが、私の意見では、実際のゲームチェンジャーされている機能は、各スクリプトがFlow そして、それらの間の交換データが可能です.基本的に、各スクリプトは効果的に、前にイメージされなかった多くのシナリオを開くExcelの中でホストされるServerlessな機能になります.それでアーキテクチャは次のように変化します.

    写真.2 -オフィススクリプトの使用法
    問題は、最後の考慮事項を解決しました:ドキュメントが生で編集されることができたので、我々はプロセスの間、ファイルがこれをする方法を編集することができないと確信する必要があります?幸運にもSharePonintコネクタは私たちに実行する可能性を与えるCheck Out / Check In ファイルに.最終的な解決策

    写真.3 -リファレンスアーキテクチャ(最終回)

    結論
    この記事では、私は潜在力についてより良い理解を提供しようとしましたOffice Script インテグレートPower Automate 現在生産中の本当のユースケースを提示することによって.
    あなたが興味を持っているならば、しかし、あなたが興味があるならば、私がワークフローのいろいろなステップについて技術的な洞察を含んでいる新しい記事を準備することができたので、私に興味を起こさせられるならば、それは私の意図でありませんでした
    オフィススクリプトを楽しむ!

    Originally published at https://bsorrentino.github.io on December 19, 2021.