Simple Data Processor
A simple workflow demonstrating data processing capabilities
Workflow Information
ID: simple_data_processor
Namespace: default
Version: 1.0.0
Created: 2025-07-08
Updated: 2025-07-08
Tasks: 2
Quick Actions
Inputs
| Name | Type | Required | Default |
|---|---|---|---|
data_list |
array | Optional |
['apple', 'banana', 'apple', 'orange', 'banana', 'apple']
|
operation |
string | Optional |
count
|
Outputs
| Name | Type | Source |
|---|---|---|
final_report |
string | Final report with summary |
processing_results |
string | Results of data processing |
Tasks
process_data
scriptNo description
generate_report
scriptNo description
YAML Source
id: simple_data_processor
name: Simple Data Processor
tasks:
- id: process_data
type: script
script: "import json\nimport os\nfrom collections import Counter\n\n# Get inputs\n\
data_list = ${data_list}\noperation = \"${operation}\"\n\nresult = {}\n\nif operation\
\ == \"count\":\n # Count occurrences\n counts = dict(Counter(data_list))\n\
\ result = {\n \"operation\": \"count\",\n \"total_items\": len(data_list),\n\
\ \"unique_items\": len(counts),\n \"item_counts\": counts,\n \
\ \"most_common\": max(counts.items(), key=lambda x: x[1]) if counts else\
\ None\n }\nelif operation == \"unique\":\n # Get unique items\n unique_items\
\ = list(set(data_list))\n result = {\n \"operation\": \"unique\",\n\
\ \"original_count\": len(data_list),\n \"unique_count\": len(unique_items),\n\
\ \"unique_items\": sorted(unique_items)\n }\nelif operation == \"sort\"\
:\n # Sort items\n sorted_items = sorted(data_list)\n result = {\n \
\ \"operation\": \"sort\",\n \"total_items\": len(data_list),\n \
\ \"sorted_items\": sorted_items\n }\n\nprint(f\"__OUTPUTS__ {json.dumps(result)}\"\
)\n"
timeout_seconds: 30
- id: generate_report
type: script
script: "import json\nimport os\nfrom datetime import datetime\n\n# Get processing\
\ results\nprocess_results = json.loads(os.environ.get('process_data', '{}'))\n\
\n# Generate a simple report\nreport = {\n \"report_generated_at\": datetime.utcnow().isoformat(),\n\
\ \"processing_summary\": {\n \"operation_performed\": process_results.get('operation',\
\ 'unknown'),\n \"items_processed\": process_results.get('total_items',\
\ 0),\n \"execution_id\": \"${execution.id}\"\n },\n \"results\"\
: process_results,\n \"status\": \"completed\"\n}\n\nprint(f\"__OUTPUTS__ {json.dumps(report)}\"\
)\n"
depends_on:
- process_data
timeout_seconds: 30
inputs:
- name: data_list
type: array
default:
- apple
- banana
- apple
- orange
- banana
- apple
description: List of items to process
- enum:
- count
- unique
- sort
name: operation
type: string
default: count
description: Operation to perform
outputs:
final_report:
source: generate_report
description: Final report with summary
processing_results:
source: process_data
description: Results of data processing
version: 1.0.0
description: A simple workflow demonstrating data processing capabilities
| Execution ID | Status | Started | Duration | Actions |
|---|---|---|---|---|
c6c88905...
|
COMPLETED |
2025-07-08
13:25:32 |
N/A | View |