def METHOD_NAME(self):
    """Creates the runbook subprocess based on the script language and using properties set by the derived class.
    Requires self.base_cmd & self.runbook_file_path to be set by derived class.
    """
    cmd = self.base_cmd + [self.runbook.runbook_file_path]
    job_parameters = self.job_data.parameters
    if job_parameters is not None and len(job_parameters) > 0:
        for parameter in job_parameters:
            tracer.log_debug_trace("Parameter is: \n" + str(parameter))
            if (self.runbook.definition_kind_str == "PowerShell" or self.runbook.definition_kind_str == "PowerShell7") and parameter["Name"]:
                # Handle named parameters for PowerShell arriving out of order
                cmd += ["-%s" % parameter["Name"]]
            try:
                cmd += [str(json.loads(parameter["Value"]))]
            except:
                cmd += [str(parameter["Value"])]
    # Do not copy current process env var to the sandbox process
    env = os.environ.copy()
    env.update({"AUTOMATION_JOB_ID": str(self.job_data.job_id),
                "AUTOMATION_ACTIVITY_ID": str(tracer.u_activity_id),
                "PYTHONPATH": str(configuration.get_source_directory_path()),
                "HOME": str(os.getcwd())})  # windows env have to be str (not unicode)
    self.runbook_subprocess = subprocessfactory.create_subprocess(cmd=cmd,
                                                                  env=env,
                                                                  stdout=subprocess.PIPE,
                                                                  stderr=subprocess.PIPE)