---
title: uipath ノート（一）
date: 2019-10-27 09:00:00
tags:
    - RPA
categories:
- notes
keywords:
    - RPA
    - uipath
---

## 変数

* Int32
* String
* Boolean
* GenericValue　[参照](https://docs.uipath.com/studio/lang-ja/docs/genericvalue-variables)

>UiPath Studio には GenericValue 変数の自動変換メカニズムがあり、式を正しく定義することで、目的の結果を得ることができます。式の最初の要素は、Studio から操作するガイドラインとして使用されることを考慮してください。例えば、2 つの GenericValue 変数を追加し、式の最初の変数が String として定義されてた場合、最初に代入された値を元に 2 つの値を結合し、文字列となります。 Integer として定義した場合の結果は、合計の値となります。

* Array
* DataTime
* DataTable

[.Net 変数型を参照して探す方法](https://docs.uipath.com/studio/lang-ja/docs/managing-variables#section-browsing-for-net-variable-types)

## アクティビティ

### レイアウトダイアグラム

* シーエンス：　より高度で複雑な自動化に向こう
* フローチャート：　シンプルな自動化プロジェクトに適している
* ステートマシン
* Global Exception Handler (グローバル例外ハンドラー)

>参照：[https://docs.uipath.com/studio/lang-ja/docs/workflow-design](https://docs.uipath.com/studio/lang-ja/docs/workflow-design)

### 選択肢

* 条件分岐(If)：　シーケンス用条件分岐
* フロー条件分岐(flow desicion)：　フローチャート用条件分岐
* フロースイッチ (Flow Switch)

### 繰り返し

* 繰り返し（前判定）(While)
* 繰り返し（後判定）(Do While)
* 繰り返し（コレクションの各要素）(For Each)

### データ操作

* CSVを読み込み(Read CSV)
    - オプションにエンコーディングを指定できる（日本語データがある場合、`"SHIFT-JIS"`を指定する）
    - 列名を含める(IncludeColumnNames)を指定できる
    - 出力タイプ：`System.Data.DataTable` [Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datatable?view=netframework-4.8)
    - `Select`メソッドで半角スペースを含む列名で指定する場合、半角スペースが特殊文字ではなく文字列として認識されるため、`[]`で列名を囲う

```
Names.Select("[メンバー ステータス] = 'Yes'")
```

### その他

* メッセージボックス
* 代入(assign)
* 待機 (Delay)
* 入力ダイアログ（input dialog）:
* フォルダーを選択(Select Folder)
* 一行を書き込み(Write Line)：　Debug用？
* アプリケーションを開く(Open Application)
* ブラウザを開く(Open Browser)
* ブラウザーにアタッチ(Attach Browser)
* 文字を入力(Type Into)
* ハイライト(Highlight)
* [アンカーベース(Anchor Base)](#アンカーベース-Anchor-Base)
* スクリーンショットをと撮る(Take Screenshot)
* 要素の有無を検出(Element Exists)
* 要素の消滅を待つ(Wait Element Vanish)

## レコーディング機能

<span style="color: green">\[○\]レコーディング可</span>
* 左クリック
    - ボタン
    - チェックボックス
    - ドロップダウン
    - ...
* 文字入力

<span style="color: red">\[×\]レコーディング不可</span>
* ショットカットキー
* 修飾キー（`ctrl + c`など）
* 右クリック
* マウスホバー

**ショットカット**
* F2 - 時間差で選択
* F3 - 領域を選択

### ベーシック

* 適する操作内容：複数ウィンドウ上の単一の操作
* 生成されるワークフローがシンプル

### デスクトップ

* 適する操作内容：同一ウィンドウ上の連続した操作
* 生成されるワークフローが複雑
* セレクターの保守性が良い

### ウェブ

ウェブアプリとブラウザーでレコーディングを行うためのものです。コンテナーを生成し、既定で 入力をシミュレート (Simulate Type)/クリック (Click) の入力メソッドを使用します。

## 入力/出力方法まとめ

### 入力

* デフォルト(Default)
    - 互換性が高い
    - キーボード対応
* ウィンドウメッセージ(Windows Message)
    - バックグラウンド処理
    - キーボード対応
* シミュレート(Simulate Type/Click)
    - 互換性が低い
    - バックグラウンド処理
    - フィールド内自動削除

### 出力

* フルテキスト(FullText)
    - スピード：★★★★★
    - 正確さ：100%
    - バックグラウンド処理
    - 非表示の項目を取得
* ネイティブ(Native)
    - スピード：★★★★
    - 正確さ：100%
    - 文字情報を取得
* OCR
    - スピード：★★
    - 正確さ：98%(?)
    - 文字情報を取得
    - CITRIX対応

## セレクター

* 部分セレクター
* 完全セレクター
* 動的なセレクター：ワイルドカードを使ってる
* アンカーベース(Anchor Base)
* 相対的なアンカー(Select Relative Element)

>セレクターがあまり安定しないと考えられるときには、[Anchor Base（アンカーベース）] アクティビティや、UiPath Explorer の [Select Relative Element（相対的なアンカーを選択してください）] を使用することで、信頼性の高い自動化を構築できる場合があります。

### アンカーベース(Anchor Base)

アンカーとして使用できるアクティビティ：
* 要素を探す(Find Element)
* 画像を探す(Find Image)

## EXCEL操作

* EXCELアプリケーションスコープ(Excel Application Scope)
* 範囲を追加(Append Range)
* データテーブルを並べ替え(Sort Data Table)
* データテーブルをフィルタリング(Filter Data Table)
* Build Data Table
* Generate Data Table
* Output Data Table

## PDF操作

PDF Activities Pack
`UiPath.PDF.Activities`

* PDFのテキストを読み込み(Read PDf Text)
    - 範囲(Range)：ページ範囲を指定する。ディフォルトは`"ALL"`。例： `1` `3-5`	
* OCRでPDFを読み込み(Read PDF With OCR)
* 画面スクレイピング(Screen Scraping)も適用

## MAIL操作

MailMessageの型：
```
System.Net.Mail.MailMessage
System.Web.Mail.MailMessage
```

* SMTP
* POP3
* IMAP
* Outlook
* Exchange
* IBM Notes

## Debug

* トライキャッチ(Try Catch)
* メッセージをログ(Log Message)
    - Critical
    - Error
    - Warning
    - Information
    - Trace
    - Verbose: Traceと同じレベルだが、アクティビティ start および end の両方のメッセージと、使用される変数および引数の値を記録する
