Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
細かすぎて伝わらないAAあるある
Search
IQBocchi
December 27, 2020
Technology
0
900
細かすぎて伝わらないAAあるある
IQBocchi
December 27, 2020
Tweet
Share
Other Decks in Technology
See All in Technology
EM完全に理解した と思ったけど、 やっぱり何も分からなかった話 / EM Night Fukuoka #1
hirutas
0
280
How to do well in consulting–Balkan Ruby 2024
irinanazarova
0
140
M5stackで使用できるpHセンサの開発
shinrinakamura
0
170
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
160
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
1.6k
Cypress or Playwright?
rainerhahnekamp
0
170
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
360
Além do else! Categorizando Pokemóns com Pattern Matching no JavaScript
wmsbill
0
710
ワールドカフェI /チューターを改良する / World Café I and Improving the Tutors
ks91
PRO
0
150
2024春 注目のWeb系 OSS & SaaS 3選
makies
0
180
社内アプリで Cloudflare D1を プロダクト運用してみた体験談(Tokyo)
haochenx
0
120
Max out Local LLM in Challenging Environments
sashimimochi
1
110
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
GraphQLとの向き合い方2022年版
quramy
33
12k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Done Done
chrislema
178
15k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
A designer walks into a library…
pauljervisheath
201
23k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Six Lessons from altMBA
skipperchong
22
3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
22
1.6k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Transcript
細かすぎて ベンダーも 知らなかった 便利機能& AAあるある オートメーション・エニウェア・ジャパン 佐野千紘 (IQぼっち)
最初に 5分のLTにしては 内容を詰め込みすぎました。 めっちゃダッシュで話しますが ご了承ください。 ※ LT内で紹介するBotの作り方や詳細が 知りたい方は、Twitterでからんでください!
自己紹介 $ 名前 $ 佐野千紘(IQぼっち) $ 出身 $ 山梨県 $
細かすぎて伝わらないモノマネ選手権 っぽく、今日のLTをネタ振り $ オレンジが好きという理由だけで RPAベンダーに就職し、 まもなく1年半が経過するにも関わらず 諸般の事情でBot開発経験をあまり積んで来なかったエンジニアが AAを使って今さら驚いた初心者のような発見 ※ 本日の発表内容は所属企業に関係なく、個人の見解です
作ったBot つぶやきをExcel上で書きためて TweetDeckで一気に予約投稿するBot
こんなBotです 本文を入力し、「Schedule Tweet」ボタンを押下 【ネタ①】Excelから列名指定で値取得 投稿年月と現在年月の差分から、 カレンダーの「次の月へ」ボタンを必要な回数押下 【ネタ②】四則演算のやりかた 【ネタ③】子Botを呼ぶときあるある 日・時・分の設定 【ネタ④】プロパティを変数指定して画面操作
AM/PMボタンの設定 【ネタ⑤】取得したプロパティの状態に応じて操作
最初のネタ 本文を入力し、「Schedule Tweet」ボタンを押下 【ネタ①】Excelから列名指定で値取得 投稿年月と現在年月の差分から、 カレンダーの「次の月へ」ボタンを必要な回数押下 【ネタ②】四則演算のやりかた 【ネタ③】子Botを呼ぶときあるある 日・時・分の設定 【ネタ④】プロパティを変数指定して画面操作
AM/PMボタンの設定 【ネタ⑤】取得したプロパティの状態に応じて操作
① Excelから列名で値を取得 細かすぎて度 : ★★☆☆☆ レコーダーアクションの プロパティ画面 (本文を入力する部分) レコーダーが自動取得した オブジェクトプロパティ
入力内容 Excel上の 列名に合わ せて指定 こういう指定が できることを 知らなかった (・_・;)
① Excelから列名で値を取得 細かすぎて度 : ★★☆☆☆ ベンダーのくせに知らなかった理由 - レコード型(ExcelやCSVの1行をまるっと格納するタイプの変数) の 値取得には2つのモードがある
→ インデックス別 / 名前別 - 以前はインデックス別がデフォルト (今は名前別がデフォルト) - ハンズオンもインデックス別で実施 - インデックス別の指定に慣れすぎて、 名前別の指定について全く調べて いなかった ごめんなさい - 女子部の指摘により初めて調べ、判明 女子部のみなさんありがとう♡ インデックス別の場合 $変数名[インデックス]$ 名前別の場合 $変数名{”列名”}$ 名前別/イン デックス別では、 かっこの形が 変わります
続きまして 本文を入力し、「Schedule Tweet」ボタンを押下 【ネタ①】Excelから列名指定で値取得 投稿年月と現在年月の差分から、 カレンダーの「次の月へ」ボタンを必要な回数押下 【ネタ②】四則演算のやりかた 【ネタ③】子Botを呼ぶときあるある 日・時・分の設定 【ネタ④】プロパティを変数指定して画面操作
AM/PMボタンの設定 【ネタ⑤】取得したプロパティの状態に応じて操作
② 四則演算のやりかた 細かすぎて度 : ★☆☆☆☆ 数字を扱うアクションの一覧 ?! 四則演算が ない・・・ (・_・;)
?! !! 「代入」のアクションの中で 実施するシステム!! このボタンを 押す回数を 求めたい!
② 四則演算のやりかた 細かすぎて度 : ★★★★★ 実は……「文字列変換」の中でも計算できる その後計算に使わない 値を表示/設定する ときには便利かも?
③ 子Botを呼ぶときあるある 細かすぎて度 : ★★★★★ 親Bot → 子Botを呼び出す方法 親Bot 子Bot
入力変数 引数 親からもらいたい値を 入力変数に指定 親に渡したい値を 出力変数に指定 $ディクショナリ名{”子Botの出力変数名”}$ の要領で使用
③ 子Botを呼ぶときあるある 細かすぎて度 : ★★★★★ 細かすぎる話はここからです ここの「説明」って、 入れる意味ある ・・・(・_・;)? 子Botにおける入力変数の編集画面
③ 子Botを呼ぶときあるある 細かすぎて度 : ★★★★★ 意味ありました!!!!!!!!!!!!!!!! 親Botにおける子Bot呼び出しのプロパティ画面 入れておいたコメントが こんなところに (◎ロ◎;)!!
どひゃーっ!と 驚いて ひっくりカエル
続きまして 本文を入力し、「Schedule Tweet」ボタンを押下 【ネタ①】Excelから列名指定で値取得 投稿年月と現在年月の差分から、 カレンダーの「次の月へ」ボタンを必要な回数押下 【ネタ②】四則演算のやりかた 【ネタ③】子Botを呼ぶときあるある 日・時・分の設定 【ネタ④】プロパティを変数指定して画面操作
AM/PMボタンの設定 【ネタ⑤】取得したプロパティの状態に応じて操作
④ プロパティを変数指定して画面操作 細かすぎて度 : ★★★☆☆ 1日をクリックしたときの素の状態 RPAが自動取得&判定子として適切と判断したオブジェクトがまず表示される カレンダーから投稿日の日付をクリックする処理
④ プロパティを変数指定して画面操作 細かすぎて度 : ★★★☆☆ 展開すると、さらに いろんな要素が出てくる この3つの要素は、 1日をクリックした際に 「1」だった。
→ ここが日付を判定 する根拠になるかも? ……と、 まずは仮説 を立てる。
④ プロパティを変数指定して画面操作 1日をクリックしたときの オブジェクト 2日をクリックしたときの オブジェクト 3日をクリックしたときの オブジェクト 細かすぎて度 :
★★★☆☆ 1 1 1 2 2 2 3 3 3 うむ! やはり、 「要素の内容= 日付」という 規則性が 成り立っておる!
④ プロパティを変数指定して画面操作 細かすぎて度 : ★★★☆☆ レコーダーの使いこなし方 - レコーダーが自動認識したオブジェクトの中から、 取得したいボタンや入力欄を安定的に判定できる 要素を特定し選択する(DOMXPathなど)
- オブジェクトプロパティの規則性を見つけ出し、 該当する要素を変数にして対象を取得する Tweetdeckのカレンダーでは、 innerHTML / HTML InnerText / HTML Hrefの最終要素が 必ず日付と一致する → この3つを変数に! 最終的なオブジェクト プロパティの状態
最後のネタ 本文を入力し、「Schedule Tweet」ボタンを押下 【ネタ①】Excelから列名指定で値取得 投稿年月と現在年月の差分から、 カレンダーの「次の月へ」ボタンを必要な回数押下 【ネタ②】四則演算のやりかた 【ネタ③】子Botを呼ぶときあるある 日・時・分の設定 【ネタ④】プロパティを変数指定して画面操作
AM/PMボタンの設定 【ネタ⑤】取得したプロパティの状態に応じて操作
⑤ 取得したプロパティの状態に応じて画面操作 細かすぎて度 : ★★★★☆ AM/PMを指定した状態にする処理 クリックすることによって、 ボタンの状態が切り替わる ボタンの現在の 状態を根拠に、
押すか押さないか を判断する
⑤ 取得したプロパティの状態に応じて画面操作 細かすぎて度 : ★★★★☆ AM/PMを指定した状態にする処理 オブジェクトのプロパティを取得し 変数に格納
⑤ 取得したプロパティの状態に応じて画面操作 細かすぎて度 : ★★★★☆ AM/PMを指定した状態にする処理 ① ボタンの 現在の状態 (さっき取得したプロパティ)
が… ② 投稿したいAM /PMの指定 (Excelの該当列) と…… ③ 違っていたら …… ④ クリック!
最後に 芸人らしい おもしろい つぶやき! - ネタの一部(③)は 先輩SEでも知りませんでした - BotのおかげでIQ ぼっちのツイートは
2021年2月9日分まで予約完了♪ - 同じBotをCommunity Edition (無料)でも作って動かせます - ハンズオンやってほしい人は Twitterでからんでください♪