1
0

service_invoke.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. # -*- coding: utf-8 -*-
  2. from base64 import encode
  3. import json
  4. import os
  5. def queryService(id):
  6. with open("tasks/%d.json" % id, "r", encoding='utf-8') as f:
  7. service = json.loads(f.read())
  8. return service
  9. def invokeService(id, data):
  10. service = queryService(id)
  11. try:
  12. service["links"] = data["urlList_0"]
  13. except:
  14. pass
  15. for key, value in data.items():
  16. for i in range(len(service["inputParameters"])):
  17. if key == service["inputParameters"][i]["name"]: # 能调用
  18. nodeId = int(service["inputParameters"][i]["nodeId"])
  19. node = service["graph"][nodeId]
  20. if node["option"] == 1:
  21. node["parameters"]["links"] = value
  22. elif node["option"] == 4:
  23. node["parameters"]["value"] = value
  24. elif node["option"] == 8 and node["parameters"]["loopType"] == 0:
  25. # print("loopType 0", value)
  26. node["parameters"]["exitCount"] = int(value)
  27. # print(node)
  28. elif node["option"] == 8:
  29. node["parameters"]["textList"] = value
  30. break
  31. count = len(os.listdir("tasks")) + 1
  32. service["id"] = count # 修改id
  33. print(count)
  34. with open("execution_instances/%d.json" % count, "w", encoding='utf-8') as f:
  35. s = json.dumps(service, ensure_ascii=False)
  36. f.write(s)
  37. return count