def METHOD_NAME(self, task):
    """
    Register job into WMBS for each task through Workflows
    """
    specURL = self.getWorkflowURL(task)
    fileSet = Fileset(name=self.getFilesetName(task), is_open=True)
    fileSet.create()
    taskFlow = Workflow(spec=specURL, owner=self.owner, dn=self.owner_dn,
                        name=self.getWorkflowName(task), task=task.name())
    taskFlow.create()
    self.workflowDict[task.name()] = taskFlow
    # Insert workflow into task
    setattr(task.data.input.WMBS, 'WorkflowSpecURL', specURL)
    # If the job is a merge job
    # Find the task it merges from
    # Then find the workflow for that task and assign it an output
    if hasattr(task.inputReference(), 'outputModule'):
        dummyStepName = task.inputReference().inputStep.split('/')[-1]
        taskName = task.inputReference().inputStep.split('/')[-2]
        outputModule = task.inputReference().outputModule
        if taskName not in self.workflowDict:
            raise Exception('I am being asked to chain output for a task %s which does not yet exist' % taskName)
        outputWorkflow = self.workflowDict[taskName]
        outputWorkflow.addOutput(outputModule, fileSet)
    logging.info('Registered workflow for step %s' % (task.name()))
    return taskFlow, fileSet