こんにちは!UiPath メンターです。
「ロボットを作っていたら、縦に長くなりすぎてスクロールが大変……」
「以前作った『ログイン処理』を、別のロボットでも使いたい」
そんな時は、ワークフローを**「部品(ファイル)」**に分けましょう。
例えば、「ログイン.xaml」「データ抽出.xaml」「メール送信.xaml」のようにファイルを分け、メインのロボット(司令塔)がそれらを順番に呼び出す形にします。
こうすることで、修正が楽になり、他のロボットでも部品を再利用できるようになります。
今回は、ファイルを分ける方法と、ファイル間でデータを受け渡しする**「引数(ひきすう)」**について学びます。
1. 新しいワークフローを作る
まずは、メインとは別の新しいファイルを作ってみましょう。
手順
- UiPath Studioの左下にある [プロジェクト] パネルを開きます。
- プロジェクト名(フォルダアイコン)の上で右クリックし、[追加] > [シーケンス] を選びます。
- 名前を付けます(例:
Login.xaml)。 - [作成] を押すと、新しい白いキャンバスが開きます。
この新しい `Login.xaml` の中に、Webサイトを開いてログインする処理を作っていけば良いのです。
2. 部品を呼び出す:「ワークフロー ファイルを呼び出し」
部品ができたら、それを `Main.xaml` から使ってみましょう。
手順
- `Main.xaml` のタブを開きます。
- [プロジェクト] パネルにある `Login.xaml` を、メインのキャンバスに直接ドラッグ&ドロップします。
すると、[ワークフロー ファイルを呼び出し (Invoke Workflow File)] というアクティビティが自動的に配置されます。
これで、ロボットはここに来たら `Login.xaml` に寄り道して、終わったら戻ってくるようになります。
3. 最難関:「引数(ひきすう)」を理解する
ここで大きな壁にぶつかります。
「Mainで持っているIDとパスワードを、どうやってLogin部品に渡すの?」
変数は、そのファイル(家)の中でしか使えません。
別のファイル(隣の家)にデータを渡すには、「引数」という専用のポストを使う必要があります。
| 方向 | 意味 | イメージ |
|---|---|---|
| 入力 (In) | 外からデータをもらう | 部品にとっての「材料」 (例:ログインID) |
| 出力 (Out) | 外へデータを渡す | 部品からの「成果物」 (例:抽出したデータ) |
4. 引数の設定手順
例として、「Main」から「Login」へ「ユーザー名」を渡す設定をしてみましょう。
Step 1:受け取る側(Login.xaml)の設定
- `Login.xaml` を開きます。
- 画面下の [引数] タブをクリックします(変数の隣にあります)。
- 新しい引数を作ります。
- 名前:
in_UserName(入力なので頭にin_を付けるのがお作法) - 方向:入力
- 型:String
- 名前:
- 作成した処理(文字を入力など)の中で、この
in_UserNameを使います。
Step 2:渡す側(Main.xaml)の設定
- `Main.xaml` に戻ります。
- 配置してある [ワークフロー ファイルを呼び出し] アクティビティの [引数をインポート (Import Arguments)] ボタンをクリックします。
- 画面が開き、先ほど作った
in_UserNameが見えているはずです。 - 「値」の欄に、Main側で持っている変数(例:
str_MyID)や、固定の文字("admin")を入力します。
これでパイプが繋がりました!
Mainの str_MyID の中身が、Loginの in_UserName にコピーされて渡されます。
5. 出力(Out)も同じ考え方
逆に、部品で作ったデータ(例:スクレイピングしたデータテーブル)をMainに持ち帰りたい場合は、部品側で引数の方向を「出力 (Out)」にし、名前を out_ResultTable のようにします。
Main側の [引数をインポート] 画面で、その値を受け取るための変数(空の箱)を指定すれば、処理が終わった瞬間にデータが入ってきます。
今回のまとめ
- ワークフローを分けると、見やすく、再利用しやすくなる。
- 別のファイルにデータを渡すには「引数 (Arguments)」を使う。
- 入力 (In) は「渡すデータ」、出力 (Out) は「持ち帰るデータ」。
- 呼び出す側(Main)で [引数をインポート] して、変数と引数を紐付ける。
💡 メンターからのアドバイス:変数と引数の違い
初心者が一番混乱するポイントです。
変数: 私室のゴミ箱。家族(他のファイル)は見えない。
引数: 玄関のポスト。家族(他のファイル)とやり取りできる。
「このデータは他のファイルでも使うかな?」と考えて、使うなら「引数」に昇格させましょう。
次回からは第4章、最終章となる「Orchestrator連携」編です。
「パスワードをコードに直書きするのは危険!」
そう思ったあなたに、クラウド上でパスワードを安全に管理し、ロボットにこっそり渡す技術「アセット (Assets)」を紹介します。