はじめに
本記事の対象者
- Power AutomateでユニークなIDを採番したい考えている人
- Power AutomateでformatDateTime関数の使い方を知りたい人
本記事の目的
- Power AutomateのformatDateTime関数を使用して、ユニークなIDを採番する方法を知る。
formatDateTime関数でユニークなIDを採番する方法
2021年2月から無料版Power Automateを使って今まで貯めてきたノウハウを解説していきます。
自分のノウハウのまとめは、「【業務効率向上】【備忘】PowerAutomateの使い方一覧」にあります。もしよろしければ確認してみてください!!
今回の紹介するフロー
今回は、formatDateTime関数をメインしています。
関数を操作するのが変数のコネクタ内なので、だいぶシンプルです。
今回の採番ルールについて
今回は、年月日+時間+分+秒の文字列を作ることでユニークをIDを作ります。
他には、SharePointのカスタムリストの項目のIDを混ぜたりした方が絶対にユニークなIDを作れると思っています。
ただ、簡易に作るという点や、他の人とIDを採番するのに秒単位で重なることは難しいという点で、今回の作り方を紹介します。
Power AutomateのformatDateTime関数について
今回のフローで主役となるのは、formatDateTime関数です。
formatDateTime関数は、以下の画像のように「式」-「日時関数」-「formatDateTime関数」にあります。
formatDateTime関数では、文字列のタイムスタンプ(2021/3/11 12:00など)の時間のフォーマットを整形することができます。
トリガー(手動でフローをトリガーします):同左
トリガーは、「手動でフローをトリガーします」です。
このコネクタでは、単にテストの起点として入れているだけなので、設定値などはありません。
本来であれば、ここはSharePointのカスタムリストの項目作成や、PowerAppsでアクションがあった際のトリガーが来ると考えています。
コネクタ1(変数を初期化する):同左
1つ目のコネクタは、「変数を初期化する」です。
このコネクタでは、utcNow関数で現在時刻を取得して、文字列タイムスタンプを整形してユニークなIDを作成します。
細かい分は以下の画像です。
やっていることは、現在日時情報で、年の末尾2桁を取得し、月・日・時・分・秒を一つの文字列として作成しています。
そのため、「2021-12-22 12:11:06」というタイムスタンプがあったとした場合は、
「211222121106」とう文字列が作成されます。
一応、表にもトリガーの設定値をまとめておきます。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | 名前 | ID |
文字列が取得できたら、この名前で使いまわしてください。 |
2 | 種類 | 文字列 | |
3 | 値 |
formatDateTime(※1,※2) ※1:utcNow() ※2:’yyMMddHHmmss’ |
utcNow()は現在時刻を取得する関数です。 |
実行結果
今回のフローを実行してみたいと思います。
すみません。急に、元データ確認用として、中に現時刻を取得のコネクタも入れちゃっています。
これは単に変数に設定する値をutcNow()にしただけです。
正常に実行できたので、実行結果を中身を確認します。
ちゃんと、utcNow()関数が出力している現時刻の文字列を整形して、ユニークなIDが採番されていることがわかります。
ただ、日時が日本時間になっていないので、時間の調整はaddHours関数を用いたりして実施してみてください。
参考ページは以前書いた以下のページです。
参考ページ:【業務効率向上】PowerAutomateのaddHours関数で時間を操作する方法
補足情報 今回のフローの想定用途
今回のフローの想定用途は、業務上ユニークなIDを案件ごとに紐付けるために、採番システムの根幹となるロジックとして使うことです。
今回は、日時という意味で意味ありのIDですが、ローカルルールで日時と合わせて意味ありなユニークIDを作るのであれば、concat()関数を使って文字列結合することが考えられます。
他にも考えられるものがある場合は、記事にしていきたいと思います。
まとめ
まとめに入ります。
業務効率を上げるために提供されているMicrosoft365のツール群で、今回はPower AutomateのformatDateTime関数でユニークIDの作成方法について説明しました。
業務上ユニークなIDを案件ごとに紐付けるために、採番システムの根幹となるロジックとして使えると思っています。
ローカルルールがあるところは、concat関数を使ったりして、付与したい文字列をIDに結合していってください。※記事にするかもしれません。
最後まで読んでいただきありがとうございます。
コメント