def METHOD_NAME(self, data, parent_data):
    executor = parent_data.get_one_of_inputs("executor")
    client = get_client_by_user(executor)
    if parent_data.get_one_of_inputs("language"):
        setattr(client, "language", parent_data.get_one_of_inputs("language"))
        translation.activate(parent_data.get_one_of_inputs("language"))
    biz_cc_id = data.get_one_of_inputs("biz_cc_id", parent_data.inputs.biz_cc_id)
    supplier_account = supplier_account_for_business(biz_cc_id)
    cc_select_set_parent_method = data.get_one_of_inputs("cc_select_set_parent_method")
    if cc_select_set_parent_method == SelectMethod.TOPO.value:
        # topo类型直接通过cc_format_tree_mode_id解析父节点bz_inst_id
        cc_set_parent_select = cc_format_tree_mode_id(data.get_one_of_inputs("cc_set_parent_select_topo"))
    elif cc_select_set_parent_method == SelectMethod.TEXT.value:
        cc_set_parent_select_text = data.get_one_of_inputs("cc_set_parent_select_text")
        cc_list_select_node_inst_id_return = cc_list_select_node_inst_id(
            executor, biz_cc_id, supplier_account, BkObjType.LAST_CUSTOM, cc_set_parent_select_text
        )
        if not cc_list_select_node_inst_id_return["result"]:
            data.set_outputs("ex_data", cc_list_select_node_inst_id_return["message"])
            return False
        cc_set_parent_select = cc_list_select_node_inst_id_return["data"]
    else:
        data.set_outputs("ex_data", _("请选择填参方式"))
        return False
    cc_set_names = data.get_one_of_inputs("cc_set_name")
    cc_set_template = data.get_one_of_inputs("cc_set_template")
    result = {"fail": [], "success": []}
    for parent_id in cc_set_parent_select:
        cc_kwargs = {
            "bk_biz_id": biz_cc_id,
            "bk_supplier_account": supplier_account,
            "data": {"bk_parent_id": parent_id},
        }
        for cc_set_name in cc_set_names.split(","):
            try:
                attr_data_list = data.get_one_of_inputs("cc_set_attr")
            except Exception:
                attr_data_list = []
            cc_kwargs["data"].update(
                {"bk_parent_id": parent_id, "bk_set_name": cc_set_name, "set_template_id": cc_set_template}
            )
            if attr_data_list:
                for attr_data in attr_data_list:
                    cc_kwargs["data"].update({attr_data["attr_id"]: attr_data["attr_value"]})
            cc_result = client.cc.create_set(cc_kwargs)
            if not cc_result["result"]:
                message = cc_handle_api_error("cc.create_set", cc_kwargs, cc_result)
                self.logger.error(message)
                result["fail"].append(message)
            else:
                result["success"].append(cc_result["data"])
    if result["fail"]:
        data.set_outputs("ex_data", result["fail"])
        return False
    return True