|
StringBuilder variableList=new StringBuilder(); |
|
|
|
|
|
void Main() |
|
{ |
|
variableList.AppendLine("Group\tJob\tStep\tVariable\tValue"); |
|
using (var session = Scheduler.Connect(".", LoginAuthenticationType.Windows, "", "")) |
|
{ |
|
using (var context = session.NewDataContext()) |
|
{ |
|
//fetch the root group |
|
var root = context.GetJobGroup(null); |
|
|
|
EnumerateVariables(root); |
|
} |
|
} |
|
|
|
using(var file=File.CreateText(@"d:\temp\variablelist.txt")) |
|
{ |
|
file.Write(variableList); |
|
} |
|
} |
|
|
|
|
|
void EnumerateVariables(JobGroup group) |
|
{ |
|
ListVariables(group, null, null, group.JobVariables); |
|
|
|
//get all jobs in the group. Use FullFetch so their variables and steps are all retrieved in a single server call |
|
var jobs=group.GetJobs(ObjectFetchOptions.FullFetch,false); |
|
foreach(var item in jobs) |
|
{ |
|
EnumerateVariables(group, item); |
|
} |
|
|
|
//get all the child groups. Use FullFetch so their variables and steps are all retrieved in a single server call |
|
var childGroups=group.GetGroups(ObjectFetchOptions.FullFetch,false); |
|
foreach(var item in childGroups) |
|
{ |
|
EnumerateVariables(item); |
|
} |
|
} |
|
|
|
void EnumerateVariables(JobGroup group, Job job) |
|
{ |
|
ListVariables(group, job, null, job.JobVariables); |
|
|
|
foreach (var step in job.Steps) |
|
{ |
|
ListVariables(group, job, step, step.JobVariables); |
|
} |
|
} |
|
|
|
void ListVariables(JobGroup group, Job job, JobStep step, ArcanaDevelopment.adTempus.Client.Collections.JobVariableCollection variables) |
|
{ |
|
foreach(var item in variables) |
|
{ |
|
WriteVariable(group, job, step, item); |
|
} |
|
} |
|
|
|
void WriteVariable(JobGroup group, Job job, JobStep step, JobVariable variable) |
|
{ |
|
variableList.AppendFormat("{0}\t{1}\t{2}\t{3}\t{4}\r\n", group?.Name ?? "", job?.Name ?? "", step?.StepNumber.ToString() ?? "", variable.Name,variable.Value); |
|
} |