The Task Extra Info was meant mostly for passing data back from the Tasks to the Monitor.
You can only override the names of the columns during a Job Submission, but it would be the Job’s plugin, pre/post scripts, event scripts etc. that would update the data in these properties. So I am not sure these are useful as an INPUT to the Job.
However, you can pass arbitrary data to a Job in the Plugin Info or Job Info submission parameters.
You could either dump a single value with a comma-separated list of values and then index into it using the Task ID, or you could write each value to a separate key with an index in the name. We use this in the Texture Baking and the FumeFX baking Workflow scripts in the 3dsMax integration. However these are written in MAXScript and are not as universal as what you might be after.
For example, you could write to the Plugin Info something like
CharacterIDs = Bobo, Masha, TheBear, Wolf1, Wolf2
Then in your scripts or integration plugin you just need to get the value of the Plugin Info entry, split by the comma into a list, and index into it based on the current TaskID.
Or you could submit a job with Plugin Info containing
CharacterID0=Bobo
CharacterID1=Masha
CharacterID2=TheBear
CharacterID3=Wolf1
CharacterID4=Wolf2
In the integration plugin, you can then just call
taskId = int(self.Plugin.GetCurrentTaskId())
keyValue = self.Plugin.GetPluginInfoEntryWithDefault( 'CharacterID'+ str(taskId) , '' )
if keyValue != '':
#do something to process that character
and you would get “Bobo” if rendering Task 0, “Masha” if rendering Task 1, and so on…
You could also update the Task Extra Info from an Event script that is triggered when a Job is submitted. The Event script could scan for “CharacterID*” entries in the Plugin Info metadata and update all the fields in the Monitor’s Task Extra Info columns so you have a visual representation of what each Task will be rendering.
This won’t allow you to modify the Character IDs assigned to specific Tasks though. They will be defined at submission time, populated in the Monitor by the Event script, and used by the integration script to control what is processed by the Worker on each Task…
Note that a Job has a default limit of 5000 Tasks set in the Repository. You might want to increase that if you need more than 5000 Tasks…