def METHOD_NAME(jobxml, wfParameters):
    jobfile = os.path.abspath(jobxml)
    if not os.path.exists(jobfile):
        gLogger.warn(f"Path to specified workflow {jobfile} does not exist")
        sys.exit(1)
    workflow = fromXMLFile(jobfile)
    gLogger.debug(workflow)
    code = workflow.createCode()
    gLogger.debug(code)
    jobID = 0
    if "JOBID" in os.environ:
        jobID = os.environ["JOBID"]
        gLogger.info(f"DIRAC JobID {jobID} is running at site {DIRAC.siteName()}")
    workflow.addTool("JobReport", JobReport(jobID))
    workflow.addTool("AccountingReport", DataStoreClient())
    workflow.addTool("Request", Request())
    # Propagate the command line parameters to the workflow if any
    for pName, pValue in wfParameters.items():
        workflow.setValue(pName, pValue)
    # Propagate the command line parameters to the workflow module instances of each step
    for stepdefinition in workflow.step_definitions.values():
        for moduleInstance in stepdefinition.module_instances:
            for pName, pValue in wfParameters.items():
                if moduleInstance.parameters.find(pName):
                    moduleInstance.parameters.setValue(pName, pValue)
    return workflow.execute()