123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import json
- import csv
- import config
- def get_converted_jobs(cfg: config.Config):
- with open(cfg.cognos11.reports_file, "r") as frh:
- reports = json.load(frh)
- report_id_to_name = dict([(r["id"], r["name"]) for r in reports])
- with open(cfg.cognos11.jobs_file, "r") as frh:
- data = json.load(frh)
- result = []
- for job in data:
- print(job["name"])
- for step in job["details"]["steps"]:
- res = {}
- res["job_name"] = job["name"]
- res["to_address"] = ",".join(
- [opt["value"] for opt in step["options"] if opt["name"] == "toAddress"][
- 0
- ]
- )
- res["params"] = {}
- if step["parameters"]:
- res["params"] = dict(
- [
- (opt["name"], opt["value"][0]["display"])
- for opt in step["parameters"]
- if len(opt["value"]) > 0
- ]
- )
- res["report_name"] = report_id_to_name[step["report_id"]]
- res["subject"] = [
- opt["value"] for opt in step["options"] if opt["name"] == "subject"
- ][0]
- print(" " + res["report_name"])
- # print(" " + ",\n ".join(res["to_address"]))
- # print(" ", res["params"])
- result.append(res)
- if len(result) == 0:
- return
- with open(
- cfg.cognos11.config_dir + "/c11_jobs.csv", "w", encoding="latin-1", newline=""
- ) as fwh:
- csv_writer = csv.writer(fwh, delimiter=";")
- csv_writer.writerow(result[0].keys())
- for row in result:
- csv_writer.writerow(row.values())
- with open(
- cfg.cognos11.config_dir + "/converted.template.csv",
- "w",
- encoding="latin-1",
- newline="",
- ) as fwh:
- csv_writer = csv.writer(fwh, delimiter=";")
- csv_writer.writerow(["Report", "Empfaenger"])
- for row in result:
- suffix = (
- "_Summe"
- if len(row["params"].values()) == 0
- else list(row["params"].values())[0]
- )
- filename = f'{row["job_name"]}\\{row["report_name"]}_{suffix}.pdf'
- csv_writer.writerow([filename, row["to_address"].lower()])
|