As far as I can tell there is no way to automate the creation of a new
submission using DSSO. There are some undocumented methods on the
DeviceScript class that sound promising. CreateNewSubmissionStart
looks like it would give you everything you need, which can then be
passed into CreateSubmission(SubmissionStart start). However you can
never full initialize a SubmissionStart object because you can't get
specify OperatingSystem (IQualificationOperatingSystem), Level
(IQualificationLevel), or Program (IQualificationProgram). The
DeviceScript object has methods to return object arrays of all three
of these types (GetQualificationOperatingSystems,
GetQualificationLevels, GetQualificationPrograms) but they all return
null. ROAR!
Another approach I took was to create a 'template' submission in the
Studio UI, then retrieve its Descriptors and DeviceData
programmatically. After creating a new submission, I can set the
descriptors retrieved from the template but running
SetDeviceData(Object[] DevData) always throws a DataStoreCommitFailed
exception. I surmise this is due to information about the original
Submission being stored in the SubmissionDeviceData object. And of
course there's no way to manually create a SubmissionDeviceData object
from scratch.
This whole process has been very frustrating, and given that the
feeble documentation hasn't been touched in years it's clear Microsoft
doesn't give a rats tail about anyone getting this to work. Hopefully
one of you out there knows the magic incantations to create a
submission and schedule jobs against it.