【エクセルでは簡単に行えなかったことが、Power Platformでは簡単に行えます】
作業を行う際にID管理表をエクセルで作成している方も多いと思います
今回はPower Appsを起点にして、次のような2段構成の管理IDを簡単に発行、管理できるようにします
①230001-②0001
①は新規に発行するIDとなり、発行時に②は自動的に「0001」となります
②は①のIDに紐づく内容で修正があった時に「0001⇒0002・・・」と繰り上がっています
上記のGIF画像では、左上の「NO」が空欄なので、新規にIDを発行しています
上記のGIF画像では、既存の「230008-0001」の最初の6桁をNO欄に入力しているので「0002」が採番されています
今回の記事では、詳細な内容(特にPower Automateのフロー)が多いのでポイントを絞り解説していきます
目次
ポイント
IDの2段構成を実現するために、管理用のSharepointリストを作成しておきます
Sharepointリスト連携
SharepointリストにはNewとOldを記載する列を作成しておきます
こうすることで、IDの構成に応じて最後のIDを抽出しやすくなります
Power Automate連携
Power Automateのフローは「新規用」と「既存用」の2つを作成し、IF式で切り分けて動かせるようにします
Set(myID,TextInput_IN.Text);If(IsBlank(myID),Set(ID,flowNew.Run()),Set(ID,flowOld.Run(myID)))
上記は採番ボタンの「Onselect」の欄の数式になります
Power Apps画面左上のNO欄に入力がある場合とそうでない場合(IsBlankがfalse、true)に分けて、動かすフローを切り分けられるようなっています
Power Automateの起動
前述のように、Power Appsから新規の採番か既存の採番かにより動かすフローを切り分けます
そして、既存の採番の場合にはPower Automateのフローに「既存6桁」を渡します
以下は再び採番ボタンの数式です
Set(A:myID,TextInput_IN.Text);If(IsBlank(B:myID),Set(ID,flowNew.Run()),Set(ID,flowOld.Run(C:myID)))
まずAでSet関数で変数:myIDにNO欄の内容を設定します
もし、BにてIDが空欄の場合には「flowNew」を起動/Runします
そうでない場合は「flowOld」に変数:myIDを渡して起動/Runします
flowOldでは受け取った変数:myIDを基に採番を行います
Power Automateフローの実際
既存
Power Appsを受け取った変数:myID=IDの左側6桁を基にして左側6桁の最終発行情報を取得します
最終発行情報の取得には「複数の項目の取得」アクションを使用します
事前にPower Appsから受け取ったIDの左側6桁は、substring関数を使用して6桁の変数「digit6」に変換しておきます
そして、フィルタークエリを以下のように指定することで「digit6」に一致するものをSharepointリストより抽出します
*ApplyNOは管理IDのことです
抽出といっても最終のものを抽出するだけですので、ID列の最後の行を抽出します
最後は抽出したIDに「1」をadd関数で足します
新規
新規の場合は、Sharepointoリストの「New」のものの中から最終のものを抽出します
例えば、冒頭のGIF画像では「New」の最後「230007」を抽出して「1」を足す形になります
SharepointリストでのID作成及びPower Appsでの受け取り
Power Automateで作成したIDはSharepointリストに「項目の作成」アクションを使用して書き込みます
更にIDはPower Appsに返します
上の画像では変数:ID_FromPAとして値を返しています
値を返されたPower Apps側では更に受け取った値を変数に格納し直します
以下は再び採番ボタンの数式です
Set(myID,TextInput_IN.Text);If(IsBlank(myID),Set(ID,flowNew.Run()),Set(ID,flowOld.Run(myID)));Refresh(ApplyNO)
上記の「Set(ID・・・」の箇所は、フローをRun/起動したことで返ってきた値を変数:IDに格納しています
注意点としては、実際に返ってきた値を表示する際には、次のように「ピリオド.」をうまく使わないと表示ができません
上記の画像ではインプットボックスに「ID.id_Frompa」を設定して、返ってきた値を表示しています
中身としてはPower Apps内で生成した変数:IDの中のPower Automateから返ってきた「id_frompa」というような込み入った表現になっています
<まとめ>
今回の記事ではSharepointリストやPower Apps、Power Automateを使用してIDを2段で管理する方法を解説しました
エクセルではVBAを使用するような内容ですが、Power Platformでは工夫すればかなり簡単に行えます
尚、今回の記事ではPower Automateのフローを細かく解説すると長くなりそうなので、詳細は割愛しました
ポイントだけ解説すると、変数を細かく分けて初期設定するのがポイントになります
上記は1例ですが、管理IDの左2桁部分や6桁部分などを宣言することで柔軟なフローが描けるようになります
例えば、左2桁を切り分けて管理することで「今年/yyyyの右2桁の採番」などの管理も柔軟に行えるようになります
コメントを残す