Power Automate Desktopを使用していて初めて遭遇した事象を記載します。
人によっては「そんな当たり前なことを…」となるかもしれません。初学者の方向けの記事になるかもです。
今回は、開発を始めたばかりの人から頂いた質問です。
「CurrentItem[0]を使うと、何故か先頭の文字しか表示されないのですがどうしてですか?」
…そんな場面遭遇したことなかったので回答に困りました。
今回実装したいフローは以下の通りでした。
やりたいこと:キーワードを含むリンクを抽出したい。
手順:
①今回チェックしたいキーワードをリストとして保存
②Web上のデータを抽出。テーブルとして保存。
③テーブルのデータを一行ずつ確認。リストの中の単語を含んでいるかどうか一件ずつチェック。
今回は類似サンプルとして以下のようなロボットを作ってみたいと思います。
「yukikanekoが投稿したQiita記事の中で、PAD・PowerAutomate・PowerPlatformというキーワードがあるものだけ抽出する」
手順通りに実施してみます。
【①今回チェックしたいキーワードをリストとして保存】
今回は、「PAD」「PowerAutomate」「PowerPlatform」の3種類とします。

【②Web上のデータを抽出。テーブルとして保存】
【テーブルのデータを一行ずつ確認。リストの中の単語を含んでいるかどうか一件ずつチェック】
上記までをふまえて、問い合わせをいただいたときは以下のような状況でした。
パッと見、質問の意図が分かりにくいですよね。
CurrentItem[0]を使うと、先頭の文字しか表記されなくなる…?
結論からすると、アクション番号8番のCurrentItem[0]は問題なく動いているもののアクション番号10番のCurrentItem[0]は先頭の文字しか表示されない状況になってしまいます。
変数「ブラウザ上タイトル」は問題ないものの、変数「キーワード」は先頭の文字だけになります。

原因は、変数の型でした。
DataFromWebPageはデータテーブル型です。
そのため、CurrentItem[0]は先頭の列の値が返されます。

それに比べてキーワードリストはリスト型です。列の定義がありません。
そのため、CurrentItem[0]とすると先頭文字だけ抽出されてしまいました。

特に初学者の方から、「なんでCurrentItemの最後に0ってつけるんですか?」という質問をいただきます。
「0列目のデータを使用したい」場合は必ず0をつけます。
列の定義がされていないデータの場合、0をつけてはいけません。
知識の再確認をしたケースでした。
似たようなシーンに遭遇した方はお試しください。


