iRPAでRPAチャレンジやってみた時の話。


この記事は [SAP Advent Calendar 2021](https://adventar.org/calendars/6252 "SAP Advent Calendar 2021") の12月14日分の記事として執筆しています。


# はじめに
この記事はTeched2021 INT160を受講した際に、
SAP Intelligent Robotic Process Automation（iRPA)を使用して
RPAChallengeに挑戦する機会があったため、その記録となります。

1.[Teched2021 INT160ハンズオンに参加しました](#1-Teched2021 INT160ハンズオンに参加しました)
2.[日本語版で登録するにあたって修正した箇所](#2-日本語版で登録するにあたって修正した箇所)

# 1.Teched2021 INT160ハンズオンに参加しました
TechedのiRPAセッション「[INT160](https://github.com/SAP-samples/teched2021-INT160)」に参加しました。
成果物はUiPathの[RPAchallenge](https://www.rpachallenge.com/)をiPRAをで挑戦するといったものです。

>※サイトより引用
1. Excelファイルをダウンロードしてください
Excelファイルには顧客データ（デモ用）が記載されています
UiPathを使用し、顧客データを登録するワークフローを作成してください
2. テキストボックスの位置は、[登録]
を押すたびに、画面上の位置が変更されることをご留意ください
入力対象と、入力情報は一致している必要があります
3.「開始」ボタンをクリック後、10回まで[登録] ができ、完了すると正解率と、処理速度が計測されます

（RPAChallengeはUipathを使って行うタイムアタックサイトですが、
ログイン等不要なので他RPAでやってみた方が多くいらっしゃるようです。）


今回のハンズオンは英語サイトで実施する内容だったのですが、RPAchallengeは日本語表示の切り替えもできたため
日本語で作成するようにしてみました。
ちょっと修正は必要でしたが、日本語でも登録は可能でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/11d4f6f5-216a-fc4c-9823-d90af9c37085.png)

個人的には
・都度テキストボックスの位置が切り替わるため、ぶれない要素の一意指定方法
・画面内のループ処理フロー設定
・データタイプの設定
あたりのテクニックが参考になりました。
Excelから画面へのデータ登録は割とあるため、処理の基本フローとして持っておくと後々便利そうです。


#2.日本語版で登録するために手を加えた点
日本語版として変更した点は以下3点だったので、成功した記念に記載します。
 2-1.画面を日本語に切り替えてから追加
 2-2.URL作成時、不要なパラメータを削除
 2-3.日本語の列名を使用せずDataTypeを登録

##2-1.画面を日本語に切り替えてから追加
これは単に日本語に切り替えてから画面を追加すれば良いです。
要素の宣言は英語版と同じ手順で追加していけば問題ありませんでした。


##2-2.URL作成時、不要なパラメータを削除
日本語にするとURLに?lang=JAが含まれるようになるため、
エクセルダウンロードのリンクを作成する際に少しそのURLを加工する必要がありました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/1db4bc21-e18d-533e-0ae6-a38cab079946.png)

・Step5には`https://www.rpachallenge.com/?lang=JA` が格納されているため
URL内の?の位置を探しurlNumberとして出力。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/074c9456-43c7-397c-5a2d-f5e08669fe41.png)

・?の手前まで文字列を取得し、`https://www.rpachallenge.com/`にしてからURLを作っていきました。ちょっといけてない気がする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/fc41a228-9ea4-edaa-f926-ddefd670d1a9.png)


##2-3.日本語の列名を使用せずDataTypeを登録
iRPAはDataType（構造体的なもの）のデータ名を
インポートするエクセルファイル一行目から取得することができるのですが
日本語はデータタイプ名として扱えないため、英語のようにExcelからは取得できません。

↓ダウンロードしたサンプルデータ（Challenge_ja.xlsx）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/9087074e-cec7-4eac-a810-fdaf00fa0652.png)

日本語選択のRPAチャレンジからダウンロードしたデータを確認し
実際にエクセルからデータ名を登録しようと試みましたが、
そのままデータ名を指定することはできませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/7accf204-8fba-5086-d50d-36ab62a9706d.png)

なので、前もって半角英字でデータタイプ名を登録し
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/adc3a220-e8d7-2e93-8da8-d78dd9daa18d.png)
タイプ名とエクセルのデータを手動で紐づけます。
・範囲をA2行開始にして1行目を除外
・ヘッダの名義で定義された列のチェックを外す
・A列～G列まで一つずつD＆DしてpersonのDataTypeに割り当てる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/24060ea9-a576-70a7-2d56-b8028c780cb9.png)

上記のように対応したところ、日本語Webサイトでも動作確認することができました。


-----20211222追記-------
上記では「ヘッダ行の名前で定義された列」のチェックを外して
ファイル項目名を一つずつ割り当てましたが
・半角英字でデータタイプを作っておく
・ヘッダ行の定義された列をチェックする
で、割り当てできました。
データタイプ名だけ先に登録しておく、だけ覚えておけばよさそうです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/146086/dc0284d8-ba19-e7a8-4b55-c7566a1d08fe.png)
-----追記ここまで-------



#最後に
この記事を書く前に過去のiRPAの記事を色々拝読したのですが
ここ1年くらいで随分と進化しているんだな…としみじみ。
他にちょっと便利だなと思った箇所や未解決なところもあったので
それは別記事で投稿したいと思います。