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 = [] if len(data) == 0: return print("\nZusaetzlicher C11-interner Versand:") for job in data: print(job["name"]) for step in job["details"]["steps"]: res = {} res["job_name"] = job["name"] if not step["options"]: continue step_options = dict([(opt["name"], opt["value"]) for opt in step["options"]]) res["to_address"] = ",".join(step_options.get("toAddress", [])) 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.get(step.get("report_id", "ungültig"), "Verknüpfung ungültig!") res["subject"] = step_options.get("subject", "") print(" " + res["report_name"]) # print(" " + ",\n ".join(res["to_address"])) # print(" ", res["params"]) result.append(res) 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()])