Python または JavaScript のコードを記述して、独自のデータ変換ロジックを実装できます。標準の変換タスクでは対応が難しい、複雑な条件分岐や計算、データの結合などに利用します。
入力項目(ワークフロー作成時)
| 項目名 | 入力条件 | 詳細 |
|---|---|---|
| 表示名 | 必須 | タスクに表示する任意の名称を入力 |
| 言語 | 必須 | 記述するプログラミング言語を選択 ( Python / JavaScript ) |
| バージョン | 必須 | 言語のバージョンを選択 |
| コード | 必須 | 実行するコードを入力(詳細は以下の詳細機能を確認してください) |
| タイムアウト(分) | 必須 | タイムアウト時間を指定(1〜180分) |
詳細機能
※ Pythonでの記述例を中心に掲載していますが、JavaScriptを選択した場合も、変数名(inputs, output_rows)や基本的なルールは共通です。
クイックスタート(Python)
本タスクを正常に終了させるための最もシンプルなコードです。入力データを加工せずにそのまま出力します。
output_rows = inputs['売上データ']
※ inputs[' '] 内には、下図のようにワークフロー上で接続している入力元タスクの「表示名」を記述してください。
入力データの参照
接続された入力元タスクのデータは、変数 inputs から参照します。
・ 参照方法
inputs['表示名'] の形式で全行データをリストとして取得できます。
・ データの形式
各行は列名をキーとした辞書形式です。
構造イメージ: [ {"商品名": "A", "金額": "1000"}, {"商品名": "B", "金額": "2000"} ]
・ データの型
すべて文字列型として渡されます。数値計算を行う場合は型変換が必要です(詳細はご利用にあたっての注意を参照)。
出力データの設定
処理結果を変数 output_rows にリスト形式で代入すると、それがタスクの出力になります。リストの各要素が1行分のデータに対応します。
・ 設定方法
各行を辞書形式にしたリストを代入します。
・ 注意事項
output_rows を設定せずにコードが終了するとエラーになります。
・ 記述例(Python)
# 各行を辞書形式 {} にし、全体をリスト [] で囲みます
output_rows = [
{"商品名": "A", "金額": "1000"},
{"商品名": "B", "金額": "2000"}
]・ データの仕様
代入された値は、最終的にすべて文字列型として保存されます。また、列名には命名ルールがあります(詳細はご利用にあたっての注意を参照)。
実装例(Python)
パターン1:単一タスクのデータ加工
入力データを1行ずつ取り出し、計算や加工を行ってから出力する例です。
# 1. 入力データの取得(入力元タスクの表示名を指定)
rows = inputs['売上データ']
result = []
# 2. データの加工(1行ずつループ処理)
for row in rows:
# 新しい列を作成し、リストに追加
result.append({
'item_name': row['商品名'],
'tax_incl_amount': int(row['金額']) * 1.1 # 数値型に変換して計算
})
# 3. 処理結果の代入
output_rows = resultパターン2:複数タスクの結合(マスタ参照)
2つのタスクをIDで紐付ける例です。
# 1. 各入力元タスクからデータを取得
users = inputs['ユーザーマスタ']
orders = inputs['注文履歴']
# 2. ユーザーIDをキーにした辞書を作成
user_map = {u['id']: u['name'] for u in users}
result = []
# 3. 注文履歴を1行ずつ処理
for order in orders:
result.append({
'user_name': user_map.get(order['user_id'], '不明'), # 名前を引き当てる
'amount': order['amount']
})
# 4. 処理結果の代入
output_rows = resultご利用にあたっての注意
列名の命名ルール
出力データの列名には以下の制約があります。ルールに反する名前を指定すると、実行時にエラーとなります。
| 項目 | ルール |
|---|---|
| 使用可能文字 | 半角英数字またはアンダースコア |
| 先頭文字 | 英字またはアンダースコア |
| 最大文字数 | 128文字 |
| 重複判定 |
大文字・小文字は区別されません(例: Data と data は重複とみなされます)
|
| 最大列数 | 10,000列 |
データ型と制限事項
・ 入出力の型
すべての値は最終的に文字列型として扱われます。
入力データの数値計算には int() 等の型変換が必須であり、出力データもすべて文字列として保存されます。
・ file型データ
サポート対象外です。本タスクでは扱えません。
実行環境とセキュリティ制限
・ 利用可能な言語
・ Python(バージョン 3.11) ※ json, re, datetime, math 等の標準ライブラリが利用可能です。
・ JavaScript(バージョン ECMAScript 2025)
・ タイムアウト
最大180分。設定時間を超えた場合、処理は強制終了(エラー)になります。
・ 禁止操作(セキュリティ)
ファイルの読み書き、外部ネットワーク通信、外部プロセスの起動、環境変数の参照