146 lines
4.5 KiB
Python
146 lines
4.5 KiB
Python
# coding=utf-8
|
||
"""
|
||
构建 Main.seq - 合同建单流程(输入驱动 + 状态中心回调版本)
|
||
|
||
说明:
|
||
Main.seq 是 iS-RPA Studio 的流程源文件,Studio 编译时据此生成 codes/Main.py。
|
||
请在关闭 Studio 的情况下运行本脚本生成 Main.seq,再重新打开项目编译。
|
||
"""
|
||
import json
|
||
import base64
|
||
|
||
def b64_apa(val):
|
||
return json.dumps({"val": base64.b64encode(str(val).encode()).decode()}, indent=4)
|
||
|
||
def b64_raw(val):
|
||
return base64.b64encode(str(val).encode()).decode()
|
||
|
||
# 单节点代码块:从 input_arg 读取业务 JSON → 调用 run_contract_create。
|
||
# run_contract_create 内部完成 start/complete/fail 回调、Selenium 起草与合同编号读取。
|
||
body = """\
|
||
import sys, os, json
|
||
from pathlib import Path
|
||
|
||
_CODES_DIR = Path(r'd:\\RPA\\AutoRpa\\codes')
|
||
if str(_CODES_DIR) not in sys.path:
|
||
sys.path.insert(0, str(_CODES_DIR))
|
||
|
||
from rpa_yisaiqi.contract_create_node import (
|
||
ContractCreateError, load_input_data, run_contract_create,
|
||
)
|
||
|
||
def _first(*values):
|
||
for value in values:
|
||
if value is not None and str(value).strip():
|
||
return str(value).strip()
|
||
return ""
|
||
|
||
raw = (self.input_arg or "").strip()
|
||
if not raw:
|
||
raise ContractCreateError("缺少业务入参:请通过 -i/--input 传入 JSON 字符串或文件路径")
|
||
|
||
data = load_input_data(raw)
|
||
|
||
state_center_url = _first(
|
||
data.get("stateCenterUrl"), data.get("stateCenterURL"),
|
||
os.getenv("STATE_CENTER_URL"), "http://127.0.0.1:8000",
|
||
)
|
||
agent_token = _first(
|
||
data.get("agentToken"), os.getenv("AGENT_TOKEN"), "dev-agent-token",
|
||
)
|
||
|
||
print("=" * 60)
|
||
print("合同建单 CONTRACT_CREATE - 开始")
|
||
print("jobId=%s sourceType=%s submitMode=%s" % (
|
||
data.get("jobId"), data.get("sourceType"), data.get("submitMode")))
|
||
print("=" * 60)
|
||
|
||
result = run_contract_create(
|
||
data,
|
||
state_center_url=state_center_url,
|
||
agent_token=agent_token,
|
||
)
|
||
print(json.dumps(result, ensure_ascii=False))
|
||
"""
|
||
|
||
begin_tag = "20260813100000"
|
||
code_tag = "20260813200000"
|
||
line_tag = "20260813300000"
|
||
|
||
main_seq = {
|
||
"LineList": [
|
||
{
|
||
"LineColor": "255, 255, 255",
|
||
"LineCommented": 0,
|
||
"LineEnd": {"Pidx": f"{code_tag}/EPin_Flow_In", "Px": "512", "Py": "300"},
|
||
"LineNote": "",
|
||
"LineSplit": {"Px": "", "Py": ""},
|
||
"LineStart": {"Pidx": f"{begin_tag}/EPin_Flow_Out", "Px": "457", "Py": "246"},
|
||
"LineTag": line_tag,
|
||
"LineType": 0,
|
||
}
|
||
],
|
||
"NodeList": [
|
||
{
|
||
"NodePanelData": {
|
||
"ExpandedGroups": [],
|
||
"InputProperty": {"mouse_x": 0, "mouse_y": 0},
|
||
"PubProperty": "",
|
||
"RetPins": [],
|
||
},
|
||
"NodeProperty": {
|
||
"EP_CONTROL": {
|
||
"EP_CONTROL_IMPORT": json.dumps(
|
||
{"PImport": b64_raw(""), "PBCode": b64_raw(body)},
|
||
indent=4,
|
||
)
|
||
},
|
||
"EP_Gen": {
|
||
"EP_Gen_AFTERDELAY": b64_apa("0"),
|
||
"EP_Gen_BEFOREDELAY": b64_apa("0"),
|
||
"EP_Gen_NOTE": b64_apa("读取入参并执行 CONTRACT_CREATE(含状态中心回调)"),
|
||
},
|
||
},
|
||
"NodeUI": {
|
||
"NodeElementID": "",
|
||
"NodeModel": "2",
|
||
"NodePropErr": False,
|
||
"NodePx": "515",
|
||
"NodePy": "270",
|
||
"NodeSubType": "EnumWidget_Code_Custom",
|
||
"NodeTag": code_tag,
|
||
"NodeTitle": "读取入参并执行合同建单",
|
||
},
|
||
},
|
||
{
|
||
"NodePanelData": {
|
||
"ExpandedGroups": [],
|
||
"InputProperty": {"mouse_x": 0, "mouse_y": 0},
|
||
"PubProperty": "",
|
||
"RetPins": [],
|
||
},
|
||
"NodeProperty": "",
|
||
"NodeUI": {
|
||
"NodeElementID": "",
|
||
"NodeModel": "2",
|
||
"NodePropErr": False,
|
||
"NodePx": "330",
|
||
"NodePy": "230",
|
||
"NodeSubType": "EnumWidget_Begin",
|
||
"NodeTag": begin_tag,
|
||
"NodeTitle": "开始",
|
||
},
|
||
},
|
||
],
|
||
"SeqTag": "Main",
|
||
"ViewCenterPx": "600",
|
||
"ViewCenterPy": "300",
|
||
"ViewScaling": "1",
|
||
}
|
||
|
||
with open(r"d:\RPA\AutoRpa\Main.seq", "w", encoding="utf-8") as f:
|
||
json.dump(main_seq, f, ensure_ascii=False, indent=4)
|
||
|
||
print("Main.seq 已生成(单节点输入驱动流程)")
|
||
print("节点: 开始 -> 读取入参并执行合同建单")
|