# rrJob submit xml file

## Submission .xml file export

Note that rrControl has an "export database .xml file" menu item.
This cannot be used for submission.

But there is another python command if you right-click on a job "Once | Export as Submission xml".

This can be used to be loaded into the rrSubmitter.

## XML header

The XML structure is

<rrJob_submitFile syntax_version="6.0">

<DeleteXML>1</DeleteXML>

<Job>

...

</Job>

<Job>

...

</Job>

<Job>

...

</Job>

<Job>

...

</Job>

</RR_Job_File>

DeleteXML:

DeleteXML tells the submitter to delete this file after it has been loaded.

<Job> </Job>:

This section includes all scene settings (scene file name, camera, layer, ...) for each job as xml nodes.

Example Submitter file without RR settings

You can add as many jobs to one xml file as you like.

All jobs that are in one file get the same base rrJob {ID} in RR.
The preID (last small letter of the ID "a", "b", "c", ...) changes automatically.

A job can be anything, you may create an xml file with

•one scene only

•one scene with multiple cameras or layers

•multiple scene files

•multiple scene files of different render applications. (e.g. render with Maya and directly comp that rendering with Nuke.)

Default settings:

You do not have to set everything.
If you do not set a parameter in the xml file, then the default is used.

## <Job> XML Attributes - required

Software | Name of your render application. Same as in the render config file. (Maya, Softimage)
Renderer | Renderer you use. Same as in the render config file (VRay, Mental Ray, Arnold)
Version | Version you want to render with. (5.11, 2010, 12)
SceneName | Name of the scene file with full path.
IsActive | Is the job enabled for submission?
SeqStart, SeqEnd, SeqStep, SeqFileOffset | Sequence settings of this job
SeqFrameSet | Set a frameset string instead of start/end/step. Example: 1003, 1006-1014+4, 1017, 1030, 1050 ,1065-1075+5 Note: The frameset length is currently limited to 150 characters. Frameset via Boolean String List: There is one alternative by using a Boolean String List instead. The disadvantage is that you cannot view or edit the frameset in rrControl. To use it, please set <SeqFrameSet> to the value BinaryFrameSetLock Then add another xml variable <CustomBinaryFrameSet>. The format of CustomBinaryFrameSet value is [firstFrame]-[boolString]. [firstFrame] is the first frame of the frameset. [boolString] is a boolean list with 0 and 1. Example: The frameset 1003, 1006-1014+4, 1017, 1030, 1050, 1065-1075+5 as CustomBinaryFrameSet is: 1003-1001000100010010000000000001000000000000000000010000000000000010000100001 Note: RR might compress the value "1003-1001000100010010000000000001000000000000000000010000000000000010000100001" at submission. So in rrControl it will look like this "4!!!!z:BGvhzzzm/!!!@BW@;Yqn/Orx4B!". Note that we have a python class to create this boolean list if you do not want to create it on your own: from rr_python_utils.load_rrsubmit import rrSubmitLib import rrJob binFrameSet=rrJob._binaryFrameSet() binFrameSet.setStartFileFrame(1003) #the first frame of your job binFrameSet.setFrame(1006, True) binFrameSet.setFrame(1010, True) binFrameSet.setFrame(1014, True) binFrameSet.setFrame(1017, True) print(binFrameSet.asString_BitA85()) #export as small coded string print(binFrameSet.asString_Bool()) #export as boolean string list print(binFrameSet.asString_FrameSet()) #export as frameSet string list, auto-sequence detection to optimize the length if len(binFrameSet.asString_FrameSet()<150): #use the default submission for a better user experience (able to read and modify) xml.add(“SeqFrameSet”, binFrameSet.asString_FrameSet()) else: xml.add(“SeqFrameSet”, rrSubmitLib.get_frameSetBinaryLock_name() ) xml.add(“CustomBinaryFrameSet”, binFrameSet.asString_Bool() ) #you may use asString_BitA85() as well.
ImageDir, ImageFilename, ImageExtension | If you specify ImageDir, then ImageFilename should have no path. If you do NOT specify ImageDir, then ImageFilename has to include the path. Same for ImageExtension. If you specify an extension, then the ImageFilename must not have any extension Important: Do not forget any _ or . in front or after the frame numbering. Usually ImageExtension always starts with a . (.tga .sgi .exr)
ImageFileNameVariables | Some renderer require you to use variables in the filename. For example older Maya versions automatically add the Layer name if you have not added <Layer> to the filename.
ImagePreNumberLetter | Some applications always add a . or _ in front of the frame number. Set this variable to that character. The user can then change the filename at the rrSubmitter and the submitter keeps track of this character.
ImageSingleOutputFile | If you render a single file, e.g. Quicktime or Avi, then you have to set this value. Videos have to be rendered at once on one client.
SceneOS | The OS the scene was created on, all texture paths are set on that OS. Possible values are windows, linux, osx

Required for some render applications or jobs:

SceneDatabaseDir | The database of your scene file. In Maya and XSI called "project", in Lightwave "content dir"
ImageWidth, ImageHeight | Required if you want to split frames on multiple clients.
Camera | Flag that may be used as render commandline parameter. Shown in a rrControl column.
Layer | Flag that may be used as render commandline parameter. Shown in a rrControl column.
AOV | Flag that may be used as render commandline parameter. Shown in rrControl column "Layer"
SceneState | Flag that may be used as render commandline parameter. Shown in rrControl column "Layer"
SceneTake | Flag that may be used as render commandline parameter. Shown in rrControl column "Layer"
rendererVersion | Information shown in Job Info tab in rrControl. May be used for rrEnv files to use the right renderer version

## <Job> XML Attributes - optional

rrSubmitterPluginVersion | An information about the application that created the xml file.
RequiredLicenses | Used for the RR render license function. If you render with Nuke and you use Furnace plugins in your comp, add Furnace. A renderer licenses count can be set in rrConfig
CustomSceneName CustomSequenceName CustomShotName CustomVersionName | CustomSceneName overrides the scene name displayed in rrControl. Sequence/Shot/Version is shown in rrControl within its own column. The can be used in render config or postscript as well. (e.g. imprint into rrCreateVideo post-script)
CustomA, CustomMyData, CustomMore, ... | Custom variables, that can be used in a render config or postscript.
ImageFramePadding | Frame Padding of the frame number in the rendered filename. Some render config files are setting the padding at render time.
OverrideImageFormat | Some render applications support overriding the image format at the render commandline.
AOVFilename AOVExtension | rrControl displays the name of additional AOVs that are rendered. Each channel requires these two values. AOVFilename has to contains the full path. (Might be automatically converted into a relative path to main output for shorter display)
PreID | A value between 0 and 255. Each job gets the Pre ID attached as small letter to the main ID. A new main ID is generated for every machine for every 5/1000s.
WaitForPreID | This jobs waits for an other job. When the job is received by the server, the server checks for other jobs send from your machine in the last 12 minutes. The server then gets the latest job with the same PreID as the WaitForPreID. Note: This attribute can be used multiple times to wait for multiple jobs. Note: If you set it to 255, then the rrServer takes the last job that was submitted from your machine in the last 12 minutes. No matter the ID of the old job.
WaitForWholeID | The job waits for the job with the job ID <value>. The job ID has to be any existing job in the queue. The ID is a 64bit number. There are some ways to get the ID of jobs: •Right-click on any job in the first column of the job table in rrControl •Via python scripts (external, rrControl or rrServer plugins) •When you submit a job via rrSubmitterconsole or python module pyRR_submit, then it returns the ID number. Note: This attribute can be used multiple times to wait for different jobs.
Division | You set a custom division name for the job. Division names can be used in rrConfig to prefer jobs over other jobs. Grouping jobs after JobType in rrControl planed. Exporting into HistoryDB planed.
JobType | Information only Exported into the HistoryDB. Grouping jobs after JobType in rrControl planed.
CompanyProjectName | Override the company name of the job
rrJob_OCIO_File rrJob_OCIO_View ColorSpace_ConfigFile | The OCIO color space the file was saved with Your view color space (NOT display color space) The OCIO config file that you use
OverrideIcon | If you want to have a different icon for the job in rrControl. Specify the filename only. The file has to exist in folder RR/render_apps/_config_inhouse
ImageStereoL ImageStereoM ImageStereoR | If you render stereo images, then we recommend you to use <Stereo> inside the main filename. And use these variables to specify the actual filename part of the stereo file. The rrViewer will display both views. You can simply test to submit a stereo Nuke file to see it.
shotgunID | The ID of this shot in Shotgun or FTrack
rrEnvFile rrEnvList | Environment variables. Please see Render Environment.
CommandPassword | If you specify a command password for the job, then you can use this password in any script to change/control the job. (In case your RR setup requires user authorization)

## Use variables inside values

Note that you can use variables inside some other xml tags.
For example
<ImageFilename> \\fileserver\share\projectX\render\testrender_&lt;User&gt;.###.exr </ImageFilename>

Available variables inside variables are:

•<User>

•<LocalHost>

•<NetworkShare>

•<CompanyProject>

•<Layer>

•<Channel>

•<CustomScene>

•<CustomShot>

•<CustomVersion>

•<Scene>

•<SceneFolder>

•<Database>

•<../>

Special xml variables

The xml parser supports some special variables:

•<xmlFolder>
The directory where this xml file is located.

Note:
If you do NOT use any xml writer plugin/module,
then do not forget to escape/replace < and > with &lt; and &gt;

## Submitter / rrJob Options

The <job> flags include everything about the scene.

But you have a lot of additional Render parameter (Priority, Verbose, Quality ) and Royal Render options (Which client, Post-scripts, Notification ).

These settings are not scene related and usually controlled by "Submitter Defaults Files".

These "Submitter Defaults Files" are stackable. And the rrSubmitter commandline or this .xml is just another stack item for the default settings.

But you can set these rrJob Settings via the xml file as well.

There are two modes:

•Global per Submission:
This is the recommended way.
Add a global xml node and include the same parameter as you would in a commandline.
For example an .xml file could start like this:
<rrJob_submitFile syntax_version="6.0">
<DeleteXML>1</DeleteXML>
<SubmitterParameter> RenderPreviewFirst=1~0 </SubmitterParameter>
<SubmitterParameter> "CustomSeQName=1~345" "CustomSHotName= 1~17a" </SubmitterParameter>
<Job>
.
.
.

</Job>

•Local per job:
You can set these settings per job. But this has some disadvantages:
1) You will not see the settings in the UI of the rrSubmitter.
2) Usually the Submitter Default Files "last" and "non_admin" are applied after the artist changes the rrSubmitter UI, sets flags via commandline or via a global xml setting.
In this case the settings are applied after these files. But before the render config overrides non-valid settings.
<Job>
<SubmitterParameter> "CustomSeQName=1~345" "CustomSHotName= 1~17a" </SubmitterParameter>
.
.
.
</Job>

Some option examples (full and short name)

Please read Submitter Defaults Files for more information about these settings and their names.

"CustomUserInfo=0~My custom message for the job"

"CUI=0~My custom message for the job"

"RenderPreviewFirst=0~1"

"RPF=0~1"

"SeqDivMIN=0~10"

"SDMIN=0~10"

"UserName=0~myUserName"

"UN=0~myUserName"

"CustomSeQName=1~P12" "CustomSHotName=1~50" "CustomVersionName=1~3B"

"CSCN=1~P12" "CSHN=1~50" "CVN=1~3B"

How to get an options name?

You have multiple ways to get the name of an option:

•Open the rrSubmitter, menu item Default Values, "Edit preset file - via text editor".
Use the editors search function to search for a part of the option name as shown in the rrSubmitter.
Note: This does now show new options added by an Update of RR or by your custom changes like new post-scripts.

•Open the rrSubmitter, menu item Default Values, "Edit preset file - via UI".
Press the first Edit/Read button.
Enter a part of the option name as shown in the rrSubmitter into the filter box.
See "string value loaded" in the title line of the option.
Note: This shows all recently added options as well.

•Open one of the files \sub\cfg_global\submitter_*.txt in any text editor.
Use the editors search function to search for a part of the option name as shown in the rrSubmitter.
Note: This does now show new options added by an Update of RR or by your custom changes like new post-scripts.

•There is an example file with most settings in this help as well.

## Python script

If you want to create your own xml file via python, please take a look in one of your python script.

For exapmple RR\render_apps\_submitplugins\rrSubmit_Nuke.py

The file includes some functions that will help you to create .xml files.

You will want to use these two sections:

##############################################

# JOB CLASS #

##############################################

##############################################

# GLOBAL FUNCTIONS #

##############################################