A few job/frame dependency questions

I’ve got a couple of different sets of questions about job and frame dependencies.

First, I have a Python dependency script that allows me to create job dependencies between different Deadline repositories, and I’d like to add support for the frame dependency offset values for completeness. However, from what I’ve been able to find, the behavior of the FrameDependencyOffsetStart/End job settings aren’t documented very well anywhere. I have two questions about these values:

  1. The Start value partially makes sense, except that the direction in which it is applied is unclear: Does a value of 1000 make frame 1001 of the job depend on frame 1 or 2001 of its dependencies?
  2. Can someone explain what purpose the OffsetEnd parameter serves, and give an example of its behavior?

Second, is it possible to change the override settings for individual dependencies, either at submission via the JobInfo, or using the API? All of the job-dependency-related properties on the Job object seem to be top-level only…

Finally, for script dependencies, since I can get an array of ScriptDependency objects, will something like this be enough to apply changes to them?

job = RepositoryUtils.GetJob(jobid, True)
for dep in job.JobScriptDependencies:
    dep.Notes = 'here are some notes'
RepositoryUtils.SaveJob(job)

Or is there more I need to do?

Thanks.

Hello Nathan,

If the start value is set to 2, then the dependent jobs task will not be able ot start until the task x+2 from the first job is complete. The end value when larger then the start value will give you a range of tasks that must be complete: if start is 1 and end is 3 then tasks 2, 3, and 4 must be complete before task 1 can start. I had one of our devs look your code over, and they advised the following:

“Their code works for modifying script dependencies to modify job dependencies they need to use job.jobdependencies which each contain the seperate override settings. The settings in the job dependencies that can be modified using the python api are: EndOffset, IgnoreFrameOffsets, JobID, Notes, OverrideFrameOffsets, OverrideResumeOn, ReferenceEquals, ResumeOnComplete, ResumeOnDeleted, ResumeOnFailed, ResumeOnPercentageCompleted, ResumeOnPercentageValue, StartOffset”

I hope this helps clear things up.

Cheers,

Dwight

Thanks for the information Dwight. My confusion about the job dependencies stemmed from the fact that Job.JobDependencies seems to be undocumented.

Hello Nathan,

I will try to see if we can get this better documented. Thanks for the heads up.