Executing Jobs Using Flex Objects

Assets and Non-Assets on Execution

Enterprise allows you to run jobs using any object in Flex, including user defined objects (UDO). For example: create a job using a user defined object (UDO); run a JEF job on a UDO in the same way as in Enterprise. The plugin developer must fetch information about the object being used before the job is executed, which can be done using FlexObjectReference.

  • In ActionExecutor you can obtain the flexObjectReferences attribute, from which you can get an instance of the FlexObjectReference:
    • id: The ID of the object (e.g. UDO id)
    • uuid: the uuid of the object (e.g. UDO uuid)
    • objectType: the object type name (e.g. user-defined-objects)

The plugin developer can use this information to learn more about the object by accessing the Enterprise REST API.

Groups and Group Members on Execution

JEF allows you to execute jobs against a group asset, or against individual members of a group. To support this, JEF includes:

  • groupExecutionSupported: executing against the group
  • groupMemberExecutionSupported: executing against each of the individual group members.

To run an action against members of a group asset (for example, smoke receiving a group asset), you must initiate groupMemberExecutionSupported from a workflow, or the power bar in Enterprise, for example using * as hierarchy context in the ActionConfig of the workflow action node.

When groupMemberExecutionSupported is enabled and a group asset selected to execute a job, Enterprise expands a workflow action job from group members into multiple jobs, which raises a number of jobs in JEF. JEF then processes these jobs independently, regardless of whether they belong to the same group of jobs in Enterprise.

Example:

public class AsyncSmokeActionTypeConfiguration extends ActionTypeConfiguration {

    public AsyncSmokeActionTypeConfiguration() {

        runRuleExpression = "#{mioObject.entity instanceof T(tv.nativ.mio.enterprise.asset.MioAsset)
                             && !mioObject.deleted}";
        workflowSupported = true;
        referenceNameSupported = false;
        manualLaunchSupported = true;
        groupExecutionSupported = true;
        groupMemberExecutionSupported = true;
    }
}

Selecting Asset children using Hierarchy Context

You can use JEF to execute jobs against a selection of children for Asset hierarchy context. For example, use any of the following expressions to select specific children:

'*/COPY' or './COPY'
'*/PROXY' or './PROXY'
'*/INGEST' or './INGEST'
'*/TRANSCODE[0]' or './TRANSCODE[0]'
'..' will execute a job against the parent asset

When multiple children are selected, Enterprise raises a number of jobs in JEF. JEF then processes these jobs independently, regardless of whether they belong to the same job in Enterprise.