Robotic Crowd
Search…
Data
配列・変数などのデータを取り扱うアクション一覧です。

CreateList

概要

CreateListは、リストを作成するアクションです。

パラメーター

*は、必須パラメーター
名前
概要
items*
配列
作成するリスト
["夏目漱石","太宰治","三島由紀夫","川端康成"]

リストビルダーを使ってリストを作成する

複数のアウトプットをリストに追加したい場合は、パラメーター右のメニューから「アウトプットからリストを作成する」を選択すると、簡単にリストを作成することもできます。
リストビルダーを開く

アウトプット

タイプ
概要
List
配列
作成したリスト
["夏目漱石","太宰治","三島由紀夫","川端康成"]

使用例

1
+create_list_1:
2
action>: CreateList
3
items: ["夏目漱石","太宰治","三島由紀夫","川端康成"]
4
# => ["夏目漱石","太宰治","三島由紀夫","川端康成"]
Copied!

CreateObject

概要

CreateObjectは、オブジェクトを作成するアクションです。keysパラメータを設定すると、各キーの型を指定することができます。

パラメーター

*は、必須パラメーター
名前
概要
object*
オブジェクト
作成するオブジェクト
{ id: 123, name: 'taro', mail: '[email protected]' }
keys
配列
各キーの型を指定する場合は、配列で記載
[["id","integer"],["name","string"]]

アウトプット

タイプ
概要
JSON
JSON形式
作成したオブジェクト
{ id: 123, name: 'taro', mail: '[email protected]' }

使用例

1
+create_object_1:
2
action>: CreateObject
3
object:
4
id: 123
5
name: taro
7
keys: [["id","integer"],["name","string"]]
8
# => {
9
# "id": 123,
10
# "name": "taro",
11
# "mail": "[email protected]"
12
#}
Copied!

GetItemFromList

概要

GetItemFromListは、リストから要素の場所を指定して値を取得するアクションです。

パラメーター

*は、必須パラメーター
名前
概要
list*
配列
対象のリスト
["夏目漱石","太宰治","三島由紀夫","川端康成"]
index*
数値
取り出したい要素のインデックス(0から始まる)
1

アクションのアウトプットを list に指定し、ピッカーで index を選択する

アクションのアウトプットを list に指定し、ピッカーで index を選択する場合、入力するアクションが実行済みである必要があります。

アウトプット

タイプ
概要
Anything
返却された値による
取り出した要素
"太宰治"

使用例

1
+get_item_from_list_1:
2
action>: GetItemFromList
3
list: ["夏目漱石","太宰治","三島由紀夫","川端康成"]
4
index: 1
5
# => "太宰治"
Copied!

GetValueWithKey

概要

GetValueWithKeyは、オブジェクトからキーを指定して値を取得するアクションです。

パラメーター

*は、必須パラメーター
名前
概要
object*
オブジェクト
対象のオブジェクト
{"author":"夏目漱石","title":"我輩は猫である"}
key*
文字列
キー
author

アクションのアウトプットを object に指定し、ピッカーで key を選択する

アクションのアウトプットを object に指定し、ピッカーで key を選択する場合、入力するアクションが実行済みである必要があります。

アウトプット

タイプ
概要
Anything
返却された値による
キーの値
"夏目漱石"

使用例

1
+get_value_with_key_1:
2
action>: GetValueWithKey
3
object:
4
author: '夏目漱石'
5
title: '我輩は猫である'
6
key: author
7
# => "夏目漱石"
Copied!

JoinList

概要

JoinListは、リストの要素を文字列として結合するアクションです。

パラメーター

*は、必須パラメーター
名前
概要
list*
配列
結合するリスト
["夏目漱石","太宰治","三島由紀夫","川端康成"]
separator*
文字列
結合区切り文字
","

list についての補足

多次元配列(配列内の配列)の場合は、入れ子になってる配列をフラットにしてから結合します。
1
+join_list_1:
2
action>: JoinList
3
list: [["夏目漱石","太宰治"],["三島由紀夫","川端康成"]]
4
separator: '/'
5
# => "夏目漱石/太宰治/三島由紀夫/川端康成"
Copied!

アウトプット

タイプ
概要
Text
文字列
作成されたテキスト
"夏目漱石,太宰治,三島由紀夫,川端康成"

使用例

1
+join_list_1:
2
action>: JoinList
3
list: ["夏目漱石","太宰治","三島由紀夫","川端康成"]
4
separator: ','
5
# => "夏目漱石,太宰治,三島由紀夫,川端康成"
Copied!

SearchItemFromList

概要

SearchItemFromListは、リスト内を文字列で検索するアクションです。この検索にはワイルドカードが利用できます。

パラメーター

*は、必須パラメーター
名前
概要
list*
配列
対象のリスト
["夏目漱石","太宰治","三島由紀夫","川端康成"]
query*
文字列
検索クエリ
太宰*

アウトプット

タイプ
概要
List
配列
検索にマッチしたもののリスト
["太宰治"]

使用例

1
+search_item_from_list_1:
2
action>: SearchItemFromList
3
list: ["夏目漱石","太宰治","三島由紀夫","川端康成"]
4
query: '太宰*'
5
# => ["太宰治"]
Copied!

StoreValue

概要

StoreValueは、変数に値を保存するアクションです。変数は、 ${...} により呼び出しが可能になります。また、同じ変数名に値を保存することで変数の値を更新することができます。nullの値が定義された場合、空の文字列として登録されます。

パラメーター

*は、必須パラメーター
名前
概要
key*
文字列
変数名
time
value
格納する値による
保存する値
${moment().zone("Asia/Tokyo").format("YYYY年MM月DD日")}

アウトプット

タイプ
概要
Anything
返却された値による
keyとvalueがオブジェクト型で返却される
{"time":"2019年3月12日"}

使用例

ScrapePageアクションで取得した情報をStoreValueアクションで変数に保存する。
1
+store_value_1:
2
action>: StoreValue
3
key: titles
4
value: +scrape_page_1
5
# => {
6
# "titles": [
7
# "決定版猫と一緒に生き残る防災BOOK",
8
# "牝の猫と女のネコ",
9
# "通い猫アルフィーの奇跡",
10
# "猫をよろこばせる本",
11
# "猫の困った行動解決ハンドブック"
12
# ]
13
#}
Copied!

StoreValueアクションで保存した変数titlesを他アクションで呼び出す

1
+text_1:
2
action>: Text
3
text: ${titles[0]} # 変数を呼び出す際は、${変数名}の形式で記載
4
# => "決定版猫と一緒に生き残る防災BOOK"
Copied!

GetState

概要

GetState は、ロボットの動作中の状態を取得することができるアクションです。 取得できる状態の種類は、限られています。また、取得されるのは、直前に残っているステートです。新たにステートを変更するアクションがあった場合は、上書きされます。

取得できる状態

名前
概要
downloads_count
整数値
ブラウザアクションのクリックでダウンロードされたファイルの総数
redirect_paths
オブジェクト
クリックやGoToで画面遷移した際に、リダイレクトされたり、途中に表示されたりしたURLの情報
dialog
オブジェクト
直前に表示されたアラート表示の対応状況を記録しています。

パラメーター

*は、必須パラメーター
名前
概要
key*
文字列
キー
redirect_paths

アウトプット

タイプ
概要
Anything
返却された値による
オブジェクト型で返却される

使用例

例えば、ページ遷移時に、通常の遷移(クリックやJavaScriptでの遷移)の場合は、200ステータス、サーバー側でリダイレクトされた時は、302など、次のように返却されます。
1
+get_state_1:
2
action>: GetState
3
key: redirect_paths
4
# これは例えばこのように表示されます
5
# [
6
# {
7
# "status": 200, # ページ自体の遷移
8
# "url": "https://javascript.redirect.path.example.com/1"
9
# },
10
# {
11
# "status": 302, # サーバー側でリダイレクトされた時
12
# "url": "https://redirected.path.example.com/1"
13
# },
14
# {
15
# "status": 200,
16
# "url": "https://javascript.redirect.path.example.com/2"
17
# }
18
# ]
19
20
+get_state_2:
21
action>: GetState
22
key: dialog.message
23
# これは例えばこのように表示されます
24
# "使えない文字列が入力されました。"
Copied!

RunScript

概要

アクション内で、JavaScript実行することができます。StoreValueで保存された変数は、同名の変数名でコード内で使用できます。コードはSandbox環境で実行され、利用できるコードは、JavaScriptのにBuilt-inされたオブジェクトのみが利用できます。30秒後にTimeoutします。

パラメーター

*は、必須パラメーター
名前
概要
code*
文字列
実行したいJavaScriptのコード
※code例参照

code例

ScrapePageアクションで情報を取得し、StoreValueアクションで変数booksに格納した後、RunScriptアクションでbooksの値を整える。
1
var element = books;
2
var newBook = [];
3
for ( let book of element ) {
4
 newBook.push(book.split("\n"));
5
}
6
return newBook;
Copied!

アウトプット

タイプ
概要
Anything
返却された値による
RunScriptの結果
※使用例のアウトプット参照

使用例

1
+run_script_1:
2
action>: RunScript
3
code: 'var element = books; var newBook = []; for ( let book of element ) { newBook.push(book.split("\n")); } return newBook;'
4
# => [
5
# [
6
# "決定版猫と一緒に生き残る防災BOOK",
7
# "猫びより編集部",
8
# "http://books.google.co.jp/books?id=a5JSvwEACAAJ&dq=%E7%8C%AB&hl=&source=gbs_api",
9
# ""
10
# ],
11
# [
12
# "牝の猫と女のネコ",
13
# "岩井志麻子",
14
# "https://play.google.com/store/books/details?id=VFgVDgAAQBAJ&source=gbs_api",
15
v ""
16
# ],
17
# [
18
# "通い猫アルフィーの奇跡",
19
# "レイチェル・ウェルズ 中西和美",
20
# "https://play.google.com/store/books/details?id=WhkVDQAAQBAJ&source=gbs_api",
21
# ""
22
# ],
23
# [
24
# "猫をよろこばせる本",
25
# "沼田朗",
26
# "https://play.google.com/store/books/details?id=kcgMBvj8pzgC&source=gbs_api",
27
# ""
28
# ],
29
# [
30
# "猫の困った行動解決ハンドブック",
31
# "高崎一哉",
32
# "http://books.google.co.jp/books?id=Szcc61SiSHYC&dq=%E7%8C%AB&hl=&source=gbs_api",
33
# ""
34
# ]
35
#]
Copied!

Compare

概要

Compareは、二つの値を比較して真理値を返すアクションです。

パラメーター

*は、必須パラメーター
名前
概要
subject*
指定する値による
この値を主語にして比較
10
compare_with*
指定する値による
主語をこの値と比較
100
method*
セレクト
比較方法を指定
"より小さい"("LESS_THAN")
not*
真理値
反対の結果を返したい場合、trueに設定
false

アウトプット

タイプ
概要
Boolean
真理値
結果が正であれば true
true

使用例

1
+compare_1:
2
action>: Compare
3
subject: 10
4
compare_with: 100
5
method: LESS_THAN
6
not: false
7
# => true
Copied!

ConvertTable

概要

ConvertTableは、テーブルデータ(二次元配列)を変換して返すアクションです。

パラメーター

*は、必須パラメーター
名前
概要
header*
真理値
変換元のテーブルデータにヘッダーが存在する場合は true
true
table*
配列
変換元のテーブルデータ
[['name', 'age'],['bob', 10], ['john', 30]]
transform*
配列
処理方式を指定
[{type: 'filter', column: 'age', operator: '>=', operand: 20, include_blank: true}]

アクションのアウトプットを table に指定し、ピッカーで transform を選択する

アクションのアウトプットを table に指定し、ピッカーで transform を選択する場合、入力するアクションが実行済みである必要があります。

transform についての補足

type は、filter, column, sortColumn から選択します。
● フィルタ指定の場合のトランスフォームオブジェクトの説明
名前
概要
type
文字列
テーブルデータに対するフィルタリング処理を行う。
"filter"
column
指定する値による
headerが存在する場合はヘッダー名、存在しない場合は列番号
"age"
operator
文字列
比較演算子。利用できるものは "==", "!=", "<", "<=", ">", ">=", "~", "!~" のみ。
">="
operand
指定する値による
比較対象の値
20
include_blank
真偽値
指定のcolumnが空だった場合の行の扱い方。trueの場合は空のcolumnを含む行を残し、falseの場合は省く。
true

operator についての補足

比較演算子
概要
==
operandと一致する
"bob" == "bob"
!=
operandと一致しない
"bob" != "john"
<
operandに指定した数値より小さい
20 < 30
<=
operandに指定した数値以下
20 <= 30
>
operandに指定した数値より大きい
40 > 30
>=
operandに指定した数値以上
40 >= 30
~
operandに指定した文字を含む
"Hello World" ~ "Hello"
!~
operandに指定した文字を含まない
"Hello World" !~ "Japan"
● カラム指定の場合のトランスフォームオブジェクトの説明
名前
概要
type
文字列
テーブルデータに対するヘッダー行の追加、ヘッダー名の変更、列の抽出を行う
"column"
columns
オブジェクト
keyは処理対象となるヘッダー名もしくは列番号。valueは新しいヘッダー名。ヘッダーが存在しない場合はヘッダー行が追加される。
{name: '名前',age: '年齢'}
● ソートカラム指定の場合のトランスフォームオブジェクトの説明
名前
概要
type
文字列
テーブルデータの列の移動を行う。
"sortColumn"
map
オブジェクト
列の移動前後の位置を列番号でマッピングしたオブジェクト。{元の列番号:移動後の列番号}の形式
{"0":1,"1":0,"2":2,"3":3}

アウトプット

タイプ
概要
List
配列
変換後のテーブルデータ
[['name', 'age'], ['john', 30]]

使用例

age 列の値が20以上の行を出力する。
1
+convert_table_1:
2
action>: ConvertTable
3
header: true
4
table: [['name', 'age'],['bob', 10], ['john', 30]]
5
transform: [
6
{
7
type: 'filter',
8
column: 'age',
9
operator: '>=',
10
operand: 20,
11
include_blank: true,
12
}
13
]
14
# => [['name', 'age'], ['john', 30]]
Copied!
ヘッダーを['name', 'age'] から ['名前', '年齢']へ変更する。
1
+convert_table_1:
2
action>: ConvertTable
3
header: true
4
table: [['name', 'age'], ['bob', 10], ['john', 30]]
5
transform: [
6
{
7
type: 'column',
8
columns: {
9
name: '名前',
10
age: '年齢'
11
}
12
}
13
]
14
# => [['名前', '年齢'],['bob', 10],['john', 30]]
Copied!
['名前', '年齢']というヘッダー行をテーブルデータに追加する。
1
+convert_table_1:
2
action>: ConvertTable
3
header: false
4
table: [['bob', 10], ['john', 30]]
5
transform: [
6
{
7
type: 'column',
8
columns: {
9
0: '名前',
10
1: '年齢'
11
}
12
}
13
]
14
# => [['名前', '年齢'],['bob', 10],['john', 30]]
Copied!
name 列のみ抽出する。
1
+convert_table_1:
2
action>: ConvertTable
3
header: true
4
table: [['name', 'age'],['bob', 10],['john', 30]]
5
transform: [
6
{
7
type: 'column',
8
columns: {
9
name: 'name'
10
}
11
}
12
]
13
# => [['name'],['bob'],['john']]
Copied!
['name', 'age'] の列を移動し ['age', 'name'] にする。
1
+convert_table_1:
2
action>: ConvertTable
3
header: true
4
table: [['name', 'age'], ['bob', 10], ['john', 30]]
5
transform: [
6
{
7
type: "sortColumn",
8
map: {
9
"0": 1,
10
"1": 0
11
}
12
}
13
]
14
# => [['age', 'name'],[10, 'bob'],[30, 'john']]
Copied!

ConvertJSONToArray

概要

ConvertJSONToArray は、JSON をテーブルデータ(二次元配列)に変換して返すアクションです。

パラメーター

*は、必須パラメーター
名前
概要
json*
JSON または JSON 配列
変換元の JSON
※使用例のサンプル JSON 参照
header*
配列
出力する配列のヘッダーに指定したい json のキーを、配列で入力
※使用例の yaml 参照
unwind
配列
行に分割したい配列のキーをパス指定し、配列で入力
※使用例の yaml 参照
stringify
配列
文字列化したい配列のキーをパス指定し、配列で入力
※使用例の yaml 参照

アクションのアウトプットを json に指定し、ピッカーで header や他パラメータを選択する

アクションのアウトプットを json に指定し、ピッカーで header を選択する場合、入力するアクションが実行済みである必要があります。 またピッカーで配列が value の key を header に選択すると、カラム名の横にメニューボタンが現れ、メニューから配列の処理方法を選択できます。
ヘッダーピッカーを開く

アウトプット

タイプ
概要
Array
配列
ヘッダつきの二次元配列
※使用例のアウトプット参照

使用例

サンプル JSON
1
{
2
"data": [
3
{
4
"name": "プロモーションA",
5
"id": "abcde",
6
"id_data": [
7
{
8
"impressions": [10, 20, 30],
9
"installs": 1,
10
"date": "2021-01-01"
11
},
12
{
13
"impressions": [40, 50, 60],
14
"installs": 2,
15
"date": "2021-01-02"
16
}
17
]
18
},
19
{
20
"name": "プロモーションB",
21
"id": "fghij",
22
"id_data": [
23
{
24
"impressions": [100, 200, 300],
25
"installs": 10,
26
"date": "2021-01-01"
27
},
28
{
29
"impressions": [150, 250, 350],
30
"installs": 15,
31
"date": "2021-01-02"
32
}
33
]
34
}
35
]
36
}
Copied!
上記サンプル JSON をデータ行が1行のフラットな二次元配列に変換する。 value に配列がある場合は各要素を列に展開する。
1
+convert_json_to_array_1:
2
action>: ConvertJSONToArray
3
json: sampleJSON
4
header: ["data.name","data.id","data.id_data.impressions","data.id_data.installs","data.id_data.date"]
5
unwind: []
6
stringify: []
7
8
# => [
9
# [
10
# "data.name",
11
# "data.id",
12
# "data.id_data.impressions.0",
13
# "data.id_data.impressions.1",
14
# "data.id_data.impressions.2",
15
# "data.id_data.installs",
16
# "data.id_data.date"
17
# ],
18
# [
19
# "プロモーションA",
20
# "abcde",
21
# 10,
22
# 20,
23
# 30,
24
# 1,
25
# "2021-01-01"
26
# ],
27
# [
28
# "プロモーションA",
29
# "abcde",
30
# 40,
31
# 50,
32
# 60,
33
# 2,
34
# "2021-01-02"
35
# ],
36
# [
37
# "プロモーションB",
38
# "fghij",
39
# 100,
40
# 200,
41
# 300,
42