81
Interplay ® | MAM Process Reference Release 5

Interplay | MAM Process Reference - Avidresources.avid.com/.../InterplayMAM_55_ProcessReference.pdfInterplay MAM requires the interaction of multiple components to put Business Process

Embed Size (px)

Citation preview

Interplay® | MAM Process Reference

Release 5

Contents Using This Reference ....................................................................... 5

Symbols and Conventions .......................................................................................... 5 If You Need Help ......................................................................................................... 6 Avid Training Services ................................................................................................ 6

1 Overview ............................................................................................ 7

2 Architecture ....................................................................................... 8 Process Design ........................................................................................................... 9

Process Modeler .................................................................................................... 9 Workflow Editor ...................................................................................................... 9 Datamodel Administrator ..................................................................................... 10

Process Execution .................................................................................................... 10 Interplay MAM Desktop ........................................................................................ 11 State Machine: Process Execution Engine .......................................................... 11 Thesaurus ............................................................................................................ 11 Data Management ............................................................................................... 11 Workflow Engine .................................................................................................. 12 User Management ............................................................................................... 12

Process Monitoring ................................................................................................... 12

3 Process Notation ............................................................................. 13 Overview ................................................................................................................... 14

Processes ............................................................................................................ 14 Activities ............................................................................................................... 14 Sequence Flows................................................................................................... 15 Gateways ............................................................................................................. 16 Events .................................................................................................................. 16 Threads ................................................................................................................ 16

Common Element Properties .................................................................................... 17 Processes.................................................................................................................. 18 Activities .................................................................................................................... 19

State Task ............................................................................................................ 19 Error Task ............................................................................................................ 20 Script Task ........................................................................................................... 20 User Task ............................................................................................................. 24 Sub-Process ......................................................................................................... 26 Sequential Loop ................................................................................................... 27 Parallel Loop ........................................................................................................ 28

Flows ......................................................................................................................... 28 Sequence Flow .................................................................................................... 28

3

Conditional Flow................................................................................................... 29 Default Flow ......................................................................................................... 29

Gateways .................................................................................................................. 29 Exclusive Gateway ............................................................................................... 29 Parallel Gateway .................................................................................................. 29

Events ....................................................................................................................... 30 Process Start ........................................................................................................ 30 Process End ......................................................................................................... 30 Delay .................................................................................................................... 30

Expressions ............................................................................................................... 31 Predefined Value ................................................................................................. 31 Using a Filter in NumberOfAttachments .............................................................. 32 Access to Process Attributes ............................................................................... 33 Access to Task Attributes .................................................................................... 34 Task Aggregate Functions ................................................................................... 34 Operators ............................................................................................................. 35

Serialization ............................................................................................................... 36

4 Process Configuration .................................................................... 37 Data Model ................................................................................................................ 37

Common Types .................................................................................................... 37 Process Classes .................................................................................................. 45 Process Templates .............................................................................................. 48 User Task Templates ........................................................................................... 48

Thesaurus ................................................................................................................. 48 Workflow Scripts ....................................................................................................... 49

5 Modifying a Process Model by Configuring Profile Settings ...... 51 Overview of the BPMProcesses Profile .................................................................... 51 Overwriting Allowed Classes..................................................................................... 53 Overwriting User Task Properties ............................................................................. 54 Overwriting the Workflow Script Name for a Script Task .......................................... 57 Defining Actions Sub-Menus in MediaCentral | UX .................................................. 58 Configuring Quick Send for MediaCentral | UX ........................................................ 60 Attaching Objects from Non-MAM Systems to Processes ........................................ 63 Using Configuration Values as Script Task Inputs .................................................... 65 Using Configuration Values for Decisions ................................................................. 66

6 Best Practices ................................................................................. 68 Naming Guidelines .................................................................................................... 68

Process Models and Process Classes ................................................................ 68 Process Attributes ................................................................................................ 68 Process Element Names ..................................................................................... 68 Task State Names ............................................................................................... 69

4

Metadata Templates ............................................................................................ 69 Workflows ............................................................................................................. 69

Process Modeling ...................................................................................................... 70 State Tasks in Parallel Threads ........................................................................... 70 Restrict Access to Process Metadata .................................................................. 70

Glossary ..................................................................................................... 72

References ................................................................................................. 76

Disclaimer .................................................................................................. 77

Using This Reference

Congratulations on your purchase of Avid®

Interplay®

| Media Asset Manager

(Interplay | MAM), a powerful system for archiving and managing media in a shared storage environment. This document is a technical reference for the domain of Business Process Management and is intended for project engineers.

Symbols and Conventions

Avid documentation uses the following symbols and conventions:

Symbol or Convention Meaning or Action

A note provides important related information, reminders, recommendations, and strong suggestions.

A caution means that a specific action you take causes you to lose data.

Courier Courier on gray background indicates code examples.

Courier blue font Courier blue font on gray background emphasizes code in examples.

The arrow indicates that line breaks in code examples are not allowed when using or writing comparable code.

Italic font Italic font is used to emphasize certain words.

Courier bold font Courier bold font identifies text that you type.

> This symbol indicates menu commands (and subcommands) in the order you select them. For example, File > Import means open the File menu and then select the Import command.

This symbol indicates a single-step procedure. Multiple arrows in a list indicate that you perform one of the actions listed

<placeholder, variable> Angle brackets indicate placeholders or variables.

UPPER CASE Indicates names of processes, process classes, data model attributes, legal lists, legal list values, states of tasks, and templates

6

If You Need Help

If you are having trouble using your Avid product:

1. Retry the action, carefully following the instructions given for that task in this guide. It is especially important to check each step of your workflow.

2. Check the latest information that might have become available after the documentation was published.

You should always check online for the most up-to-date documentation because the online version is updated whenever new information becomes available. To view the online versions, visit the Knowledge Base at www.avid.com/support.

3. Check the documentation that came with your Avid application or your hardware for maintenance or hardware-related issues.

4. Visit the online Knowledge Base at www.avid.com/support. Online services are available 24 hours a day, 7 days a week. Search this online Knowledge Base to find answers, view error messages, to access troubleshooting tips, download updates, and read or join online message-board discussions.

Avid Training Services

Avid makes lifelong learning, career advancement, and personal development easy and convenient. Avid understands that the knowledge you need to differentiate yourself is always changing, and Avid continually updates course content and offers new training delivery methods that accommodate your pressured and competitive work environment.

For information on courses/schedules, training centers, certifications, courseware, and books, please visit www.avid.com/support and follow the Training links, or call Avid Sales at 800-949-AVID (800-949-2843).

1 Overview

This technical reference describes the domain of Business Process Management. The following chapters provide information for managing Business Processes in Interplay MAM:

• Architecture

• Process Notation

• Process Configuration

• Best Practices

The document is complemented by a glossary of terms related to Business Process Management, and a references section with links to the relevant standard documents and other Interplay MAM documentation.

• Glossary

• References

2 Architecture

Interplay MAM requires the interaction of multiple components to put Business Process Management into effect. The architecture diagram illustrates the main components that are involved in process management and the basic interactions between these components. Blue boxes denote Interplay MAM core services, and green boxes represent user interfaces with the system. All activities in the context of process management in Interplay MAM can be linked to Process Design, Process Execution, or Process Monitoring. These categories of activities are implemented by one or more of the components as shown in the architecture diagram.

The following topics provide information about the roles of individual components and their interactions:

• Process Design

• Process Execution

• Process Monitoring

Process Design

9

Process Design

The design of processes includes the activities:

• Creating a process model using the Process Modeler application

• Creating a workflow script in the Workflow Editor

• Providing the runtime configuration for the process in Interplay MAM using the Datamodel Administrator

These activities are typically performed by project engineers to create and configure custom processes in Interplay MAM.

Process Modeler

The Process Modeler is an application that supports the design and modeling of business processes. For these purposes, it provides the following features:

• Creates and saves new process models

• Opens and modifies existing process models

• Can be run as an embedded Web or standalone application

• Supports modeling using a subset of Business Process Model and Notation (BPMN) Version 2.0

• Stores processes as XML Process Definition Language (XPDL) files

• Supports loading, editing, saving, and uploading of processes with Interplay MAM

• Supports all BPMN features available in Interplay MAM

For information about the Process Modeler, refer to Interplay | MAM Process Modeler User’s Guide shipped with the software.

Workflow Editor

Workflows are needed to provide the custom functionality for the script tasks in a business process model.

The Workflow Editor provides the following features:

Process Execution

10

• Creates and saves workflow scripts

• Opens and modifies existing workflow scripts

• Syntax highlighting for the SWoDL scripting language that is part of Interplay MAM

• Syntax checks for SWoDL scripts

• Upload of workflow scripts into Interplay MAM

Datamodel Administrator

The Datamodel Administrator is an application that provides the necessary runtime configuration to facilitate the execution of process models.

In the context of process management, the Datamodel Administrator provides the following features:

• Creates process classes that define the runtime representation of a process model

• Creates metadata templates for the visual representation of processes and user tasks

For information about the Datamodel Administrator, refer to Interplay | MAM Datamodel Administrator User’s Guide shipped with the software.

Process Execution

Process execution is implemented by backend and frontend components. The main backend services that are involved in process execution are outlined in the following sections:

• State Machine: Process Execution Engine

• Thesaurus

• Data Management

• Workflow Engine

• User Management

Interplay MAM Desktop is the application frontend that enables users to interact with process instances.

Process Execution

11

Interplay MAM Desktop

The Web application allows:

• Creating processes

• Viewing processes and process tasks

• Editing processes and process tasks

• Searching and filtering for processes in Process Folders

For more information on MAM Desktop, refer to Interplay | MAM Desktop User’s Guide shipped with the software.

State Machine: Process Execution Engine

The State Machine is the Process Execution Engine for all process instances.

The Process Execution Engine provides the following features:

• Management of all process models in a central process repository

• Execution of process instances according to their underlying process model and their corresponding model version

Thesaurus

The Thesaurus service facilitates the process localization. Every time a process model is uploaded into the process repository, the localization for this process is automatically created or updated.

Data Management

In the context of process management, Data Management serves the following purposes:

• Persistent storage of metadata for all process instances

• Creation of events for the process execution engine depending on metadata changes

• Provision of metadata templates to visualize processes and tasks as part of the system's data model

Process Monitoring

12

Workflow Engine

The Workflow Engine executes all workflow scripts that are triggered by script tasks in the flow of process execution. Workflow scripts put service orchestration into practice.

User Management

Process models can apply restrictions on the execution of manual tasks. Users or user groups that are allowed to execute the tasks must be specified. During the execution of a process, User Management is queried to authorize users for access to the manual tasks.

Process Monitoring

Monitoring activities can be accomplished with the help of Process Administrator, a Web application that provides administrators with the following features:

• Support of uploading, downloading, and editing of processes with Interplay MAM

• Searches for processes, tasks, or events

• Creation of new processes

• Display of information about processes, events, or tasks

• Display of a graphical representation of the underlying process model for a process instance and the steps through its execution history

For more information on Process Administrator, refer to Interplay | MAM Process Administrator User’s Guide shipped with the software.

3 Process Notation

Interplay MAM uses a subset of BPMN 2.0, which is a graphical language to specify business process models.

The following process diagram is an example of a process model in Interplay MAM.

This chapter describes all BPMN process elements supported by Interplay MAM 4.1 and higher. It starts with an overview of the notation, and additional information about the various types of elements is provided by the topics:

• Common Element Properties

• Processes

• Activities

• Flows

• Gateways

• Events

• Expressions

• Serialization

Overview

14

Overview

The overview of the supported notation shows the icons for the process elements, their names, and short descriptions. Interplay MAM uses a default color scheme for the process elements. However, the colors do not convey any technical semantics.

The following types of elements are distinguished:

• Processes

• Activities

• Sequence Flows

• Gateways

• Events

• Threads

Processes

Interplay MAM supports one top-level process per process model. A process has no explicit graphical representation.

Activities

Activities are elements that have an effect and indicate the real work in a process model. Activities are graphically represented by rectangles with rounded corners. Icons inside the activity elements specify the activity. Interplay MAM implements the following activities.

Activity Element Description

State Task

Sets a new process state and progress.

Error Task

Sets a new process state and progress. Additionally, an error flag is set automatically.

Overview

15

Activity Element Description

Script Task

Starts a workflow in the Interplay MAM Workflow Engine for synchronous execution.

User Task

Requires a user action and is completed by a user action.

Embedded Sub-Process

Placeholder for a more complex structural element of the process. An embedded sub-process has no process instance of its own and therefore has no local variables.

Sequential Loop (Sub-Process)

Sub-process that is executed in a loop, <1> iteration at a time.

Parallel Loop (Sub-Process)

Sub-process that is executed in a loop, <n> iterations at a time.

Sequence Flows

Sequence Flows are represented by arrows that connect the elements in a process model. Interplay MAM distinguishes three types of Sequence Flows as shown in the following table:

Element Description

Generic Flow

Specifies a flow between two process elements.

Conditional Flow

Specifies a flow that depends on a condition.

Default Flow

Specifies the flow if no condition is met.

Overview

16

Gateways

Gateways control the flow in the process model. A Gateway itself does not have an effect on the process metadata. Interplay MAM implements the following Gateways.

Element Description

Exclusive Gateway

Represents a decision in the process model and switches the control flow depending on the evaluation of an expression. The process flow continues only on one of the outgoing flows.

Parallel Gateway (Fork/Join)

Represents a fork in the process model. The process flow continues on all outgoing flows in parallel. The Parallel Gateway also represents a join in the process model that synchronizes all incoming flows into one outgoing flow.

Events

Event elements control the sequence or timing of process activities. Interplay MAM implements the following Events.

Element Description

Process Start Event

Indicates the start of a process.

Process End Event

Indicates the end point of the process.

Delay Event

Waits for a specified amount of time or point in time.

Threads

Threads are flows that can be performed in parallel. They can be viewed as virtual process elements and they have no explicit graphical representation.

Threads are spawned either explicitly using a Parallel Gateway element or implicitly using a Parallel Loop element.

Common Element Properties

17

The following diagram shows an example of a process model containing nested threads. The threads are highlighted by blue boxes for illustration only. Otherwise, blue boxes are not displayed.

Nested threads must always be joined properly. The example shows two inner threads that must be joined before the outer threads are joined. Joining the outer thread before the inner thread leads to an incorrect process model.

Common Element Properties

Activities, gateways, and events have a specific set of properties. The following table shows the list of properties common to these elements:

Property Type Description

Description Text Textual description of the element.

Name Text Name of the element. This name must be unique for each model element in the context of one process model.

Name Localization Text Tenant- and language-dependent localization of the Name property.

Border Color Color ARGB value for the border color.

Border Visible Boolean Flag that defines if a border is shown.

Color Color ARGB value for the shape color.

Processes

18

Property Type Description

Font Color Color RGB value for the font color.

Font Name String Name of the font family.

Font Size Integer Size of the font (pt).

Height Integer Height of an element (px).

Width Integer Width of an element (px).

X-Coordinate Integer Coordinate X of an element in the diagram.

Y-Coordinate Integer Coordinate Y of an element in the diagram.

Processes

The following table lists the properties of processes:

Property Type Description

Tenants List List of tenant IDs.

Languages List List of languages.

Contributors List List of contributors. Contributors are groups and individual users that are permitted to interact with the manual tasks of a process.

Allowed Object Classes List For local MAM assets, the names of the object classes that are allowed for the process. To attach EDLs, the entry EDL must be used.

For non-local and non-MAM assets, see

Attaching Objects from Non-MAM Systems to Processes on page 63.

Allowed Objects Max Integer Maximum number of attached objects.

Allowed Objects Min Integer Minimum number of attached objects.

Allowed EDLs Max Integer Maximum number of attached EDLs.

Allowed EDLs Min Integer Minimum number of attached EDLs.

Allowed Total Max Integer Maximum number of attached objects plus EDLs.

Activities

19

Property Type Description

Allowed Total Min Integer Minimum number of attached objects plus EDLs.

Activities

The following sections provide information about the activities:

• State Task

• Error Task

• Script Task

• User Task

• Sub-Process

• Sequential Loop

• Parallel Loop

State Task

A State Task is an activity that sets a process state and progress. The unique name of the element defines the actual state of the process. Progress defines the overall progress of the process. Once a State Task is executed, the process automatically continues with the next element.

A State Task may have multiple incoming Sequence Flows, but only one outgoing Sequence Flow.

In addition to the common element properties, the State Task has the following property:

Property Type Description

Next user Text Suggests the user to perform the next task. Only a contributor to the process can be the next user.

Next group Text Suggests the group to perform the next task. Only a contributor group of the process can be the next group.

Progress Float Percentage of process completed. The fractional amount of the value can be omitted.

Activities

20

Error Task

An Error Task is a State Task that sets a process error flag in addition to process state and progress. Once an Error Task is executed, the process automatically continues.

An Error Task may have multiple incoming Sequence Flows, but only one outgoing Sequence Flow.

In addition to the common element properties, the Error Task has the following property:

Property Type Description

Next user Text Suggests the user to perform the next task. Only a contributor to the process can be the next user.

Next group Text Suggests the group to perform the next task. Only a contributor group of the process can be the next group.

Progress Float Percentage of process completed. The fractional amount of the value can be omitted.

Script Task

A Script Task is an activity that starts a workflow in the Interplay MAM Workflow Engine for synchronous execution. Once a Script Task is executed, and the corresponding workflow is finished, the process automatically continues.

A Script Task can have multiple incoming Sequence Flows, but only one outgoing Sequence Flow. In addition to the common element properties, the Script Task has the following properties:

Property Type Description

Script Name String Name of the workflow template.

Inputs Mapping Specifies a mapping of process attributes or constants to script variables.

Outputs Mapping Specifies a mapping of script variables to process attributes.

States List List of task states. Task states are symbolic names that represent the state of the task. The task states must be unique in the scope of the script task. When calling the UpdateTask method the symbolic name of one task state

Activities

21

Property Type Description

is passed in the taskState parameter.

States Localization Localization Tenant- and language-dependent localization of the task states.

When the Process Execution Engine initiates a workflow script, it automatically sets the values of the following workflow variables:

Workflow Variable Name Value

_Tenant The value of the _Tenant variable is set to the value of the metadata attribute SYSTEM_OBJECTOWNER of the process instance.

_ProcessID The value of the _ProcessID variable is set to the unique instance identifier of the process instance.

_JobID The value of the _JobID variable is set to the unique task instance identifier of the script task.

_ProcessVersion The value of the _ProcessVersion variable is set to the version of the process model underlying the process instance.

Method UpdateTask

A workflow script that is to be called by a script task must actively signal its end by calling the UpdateTask method in the Web interface of the State Machine Web service. The following code fragment shows the typical usage in a SWoDL script:

// Declarations var LC_PENDING = 0; var LC_RUNNING = 1; var LC_FINISHED = 2; var LC_ERROR = 3; var LC_TIMEOUT = 4; var StateMachineWS_StateMachine = "StateMachineWS/StateMachine"; declare void UpdateTask(processId, taskJobId, taskState, taskProgress, taskLifecycle, accessKey) @ StateMachineWS_StateMachine; // Typical call UpdateTask(_ProcessID, _JobID, "", "", LC_FINISHED, AccessKey);

Activities

22

To signal the end of the script, the parameter taskLifecycle must be set to the values 2 or 3 that define Finished or Error.

During the execution of the Script Task, the workflow script may also call the UpdateTask method at any time to update the task state and task progress of the Script Task.

The following table describes the parameters of the UpdateTask method:

Parameter Description

processId ID of the process that contains the script task. Typically, this ID is available in the workflow variable _ProcessID.

taskJobId ID of the script task that initiated this workflow. Typically, this ID is available in the workflow variable _JobID.

taskState Task state as defined in the process model. If an empty string is passed, the task state is not updated.

taskProgress Task progress as a floating-point number between 0.0 and 100.0, inclusively. A dot or comma may be used as a decimal mark. If an empty string is passed, the task progress is not updated.

taskLifecycle ID of an entry in the P_TASK_LIFECYCLE legal list as a string. Possible values are:

• 0 = Pending

• 1 = Running

• 2 = Finished

• 3 = Error

• 4 = Timeout

If an empty string is passed, the task lifecycle is not updated.

accessKey Valid access key.

Input and Output Mapping of SWoDL Variables to Process Attributes

SWoDL variables can be mapped to process attributes in different ways, as shown in the following examples for input mapping. Note that output mapping works the same way as input mapping.

• Mapping single-value attributes: The variable is populated with an attribute value in string representation, as shown in the following example:

Activities

23

• Mapping entire multi-value (MV) and multi-value compound attributes (MVC): Mapping an entire MV/MVC attribute is the same as for a single-value attribute. In this case, the variable’s value is an array of structs, where every struct is a row of the MVC attribute, with fields that are mapped to MVC sub-attributes.

• Mapping one row of an MV/MVC attribute: The index of an MV/MVC attribute may be an integer value or a LoopIndex variable. Expressions in ‘[]’ brackets are not allowed. The variable’s value in this case is a struct with fields that are mapped to MVC sub-attributes.

Activities

24

The value in ‘[]’ brackets is not an ‘index’ attribute of the MV/MVC attribute. It is an index of the MV/MVC’s row. Example: There are 3 rows in an MVC attribute that have the indices 1, 23, 99 and the mapping is P_TASK_LIST[1]. In this case, the variable will be populated by an attribute with index ‘23’.

• Mapping one sub-attribute of an MVC attribute into a variable: You can use an integer value or a LoopIndex in ‘[]’ brackets. In this case, the variable’s value is the sub-attribute’s value in string representation.

If an entire MV/MVC is mapped, it is overwritten by the value of the SWoDL variable. If mapping an MV/MVC row (for example, P_TASK_LIST[1]), the entire row is overwritten by the variable’s value.

User Task

A User Task is an activity that requires user interaction. To execute a User Task, the user must open the corresponding process in Interplay MAM Desktop or MediaCentral UX. In addition to the common element properties, the User Task has the following properties:

Activities

25

Property Type Description

Input Form String Name of the metadata template that is used to edit the user task.

States List List of task states. Task states are symbolic names that represent the state of the task. The task states must be unique in the scope of the user task. When calling the UpdateTask method the symbolic name of one task state is passed in the taskState parameter. Example: task states = Approved, Rejected

Allowed Actions List List of allowed actions for the user task. Possible actions include:

• Add objects (or EDLs)

• Remove objects

• Upload files

• Download files

Assignee Text Defines the user that should perform the task.

Assignee default Text Defines the fallback user that should perform the task. Is used if the “Next user” attribute is not set.

Group Text Defines the group from which a user should perform the task.

Group default Text Defines the fallback group from which a user should perform the task. Is used if the “Next group” attribute is not set.

Performers List List of groups and users that are allowed to process the task. A performer of a user task is also registered on the list of contributors for the process.

Delegation List Defines the delegation (decides which delegators are allowed to delegate user tasks to which delegates). Delegators and delegates of a user task are also registered on the list of contributors for the process.

Timeout Integer Defines the timeout for the user task (s).

States Localization Localization Tenant- and language-dependent localization of the task states.

Buttons Localization

Localization Tenant and language-dependent localization of the action buttons.

Activities

26

Supported Placeholders

You can use placeholders when defining the behavior of a task in the following fields:

• User task field: Assignee, Assignee default, Group, and Group default

• State and Error task field: Next user and Next group

You can use the following placeholders:

Parameter Description

%taskreference.user% The user completing a specific task.

“taskreference” must be the name of a user, state, or error task defined in the process model.

%taskreference.group% The group completing a specific task.

“taskreference” must be the name of a user, state, or error task defined in the process model.

%creator% The user or system service that created the process.

%previousUser% The user completing the previous task.

%previousGroup% The group completing the previous task.

State Machine expands the placeholders as follows:

Parameter Description

User task %taskname.user%, %creator%, and %previousUser% in Assignee and Assignee default

%taskname.group% and %previousGroup% in Group and Group default.

State and Error State task

%taskname.user%, %creator%, and %previousUser% in NextUser

%taskname.group% and %previousGroup% in NextGroup.

Sub-Process

A sub-process is an inline block that contains a set of activities. This set of activities can have only one entry point and one exit point. The sub-process is always executed in the context of the top-level process. It has no local variables and shares all data with the top-level process. It is not possible to pass parameters into a sub-process.

Activities

27

Notably, if a sub-process contains a State Task, this task sets the state of the top-level process.

• Sub-processes may be nested.

• A sub-process cannot be reused in the same process model or across different process models.

• A sub-process element has no additional properties.

Sequential Loop

The Sequential Loop is a sub-process that is executed in a loop. It can be used to repeat parts of a process. The iterations are performed successively, one at a time.

The loop control of a Sequential Loop can be set to resemble:

• A pre-test loop. If the loop condition does not evaluate to true at the beginning, the body of a pre-test loop is not executed. This corresponds to the behavior of a while-loop.

• A post-test loop. The body of a post-test loop is always executed at least once, even if the loop condition evaluates to false. This corresponds to the behavior of a do-while loop.

In addition to the common properties, a Sequential Loop has the following properties:

Property Type Description

Loop Condition String Condition that is evaluated to decide if the execution of the loop continues with the next iteration.

Loop Maximum String Specifies the maximum number of loop iterations. This may be a constant or an expression that evaluates to an integer.

Test Time String Specifies if the Loop Condition is evaluated before or after the sub-process is executed. Possible values :

Before

After

Flows

28

Parallel Loop

The Parallel Loop is a sub-process that is executed in a loop. It can be used to repeat parts of a process. All iterations are performed in parallel. Each iteration runs in its own thread context. The Parallel Loop is only finished when all threads are finished.

In addition to the common element properties, a Parallel Loop has the following property:

Property Type Description

Loop Maximum Integer Constant or expression that evaluates to an integer.

Flows

Flows are connections between two process elements and specify the next element in the flow. Sequence Flows are the basic flows from which Conditional Flows and Default Flows can be derived.

All flows have the same set of properties as shown in the following table:

Property Type Description

Name String Name of the element. For Sequence Flows this property is optional. The system does not require that all Sequence Flows have distinct names.

Description String Textual description of the element.

Condition String Expression that specifies the condition associated with a Sequence Flow. If this property has a value, the Sequence Flow becomes a Conditional Flow.

IsDefault Boolean A flag that specifies if a Sequence Flow is a Default Flow. For Default Flows the Condition property is ignored during execution.

Color Color Display color for the Flow element.

Sequence Flow

A Sequence Flow is a directed and unconditional connection between two process elements.

Gateways

29

Conditional Flow

A Conditional Flow is a Sequence Flow with a conditional expression. The Flow is only executed when the condition evaluates to true. Conditions in Conditional Flows are only evaluated when the Conditional Flow is attached to an Exclusive Gateway.

Default Flow

The Default Flow for an Exclusive Gateway is the Sequence Flow that is selected if no condition of the respective Conditional Flow evaluates to true. In all other contexts, a Default Flow is treated as a normal Sequence Flow.

Gateways

Exclusive Gateway

An Exclusive Gateway acts as a decision element that selects exactly one of the outgoing Conditional Flows to continue executing the process. The decision is based on the evaluation of the conditions associated with the outgoing Conditional Flows. The Conditional Flow with the first condition that evaluates to true is selected. The order for the evaluation of the conditions is undetermined. A Default Flow must always be provided to prevent the process from stalling if no condition is fulfilled. For additional information, see Using Configuration Values for Decisions on page 66.

An Exclusive Gateway can have multiple incoming and outgoing flows.

An Exclusive Gateway has no additional properties.

Parallel Gateway

A Parallel Gateway forks or joins parallel flows, depending on its context. All outgoing flows spawn threads that are executed independently and in parallel.

The Process Execution Engine requires that all threads that are forked by Parallel Gateways are joined subsequently. The element in the process notation is the same for the Fork and Join operation, and its function depends on the context in the process model.

Conditional Flows emitting from a Parallel Gateway are treated as normal Sequence Flows; that is, their conditions are ignored.

Events

30

Events

Process Start

The Process Start element defines where the Process Execution Engine starts executing a process model. It is used to represent the

• Start of a top-level process

• Start of an embedded sub-process

A process model contains only one Process Start event. The Process Start event must have exactly one outgoing and no incoming Sequence Flow.

A Process Start Event has no additional properties.

Process End

Process End defines where the execution of a process model ends. When this element is reached, the process enters its final state and no further processing is possible. When a process has ended, all metadata of that process should be considered as Read Only.

The Process End element is used to represent the

• End of a top-level process

• End of an embedded sub-process

A process model contains only one Process End event. The Process End event may have multiple incoming but no outgoing Sequence Flows.

A Process End event has no additional properties.

Delay

The Delay element can act as a duration timer or a date timer. A duration timer waits for a given timespan before the process flow continues. A date timer waits for a specific point in time before the process flow continues.

The type of the event cannot change during execution. The initial value can be provided directly with the element, or provided indirectly by the value of an associated attribute from the process class, as defined by the attribute mapping property.

Expressions

31

A Delay event may have multiple incoming Sequence Flows but only one outgoing Sequence Flow. A Delay event has the following properties:

Property Type Description

Use time cycle Boolean Event that acts as a duration timer if this setting is true.

Timer span Integer Time elapsed before process flow continues.

Use time date Boolean Event that acts as a date timer if this setting is true.

Timer date Date Date (and time) reached before process flow continues.

Attribute mapping String Name of the attribute in the process class that provides the initial value. If the event acts as a duration timer this attribute type is datetime. Otherwise, this attribute type must be an integer or float.

Expressions

Expressions are used to define conditions for Conditional Flows. They consist of one or more operands. Multiple operands are composed by operators.

In the context of expression, the evaluation of an operand can be a:

• Predefined value

• Process attribute

• Task attribute

• Task aggregate function

The types of operands are presented first, followed by the description of the operators.

Predefined Value

Value Type Description

ProcessHasError Boolean Evaluates to true if the process is in an error state. Effectively returns the value of the process attribute P_PROCESS_HAS_ERROR.

ProcessState String Evaluates to the current status of the process

Expressions

32

as defined in the process model.

ProcessProgress Float Evaluates to the current progress of the process. Effectively returns the value of the process attribute P_PROCESS_PROGRESS.

ProcessLifecycle Legal list value

Evaluates to the current lifecycle status of the process and is represented by the corresponding value from the legal list P_PROCESS_LIFECYCLE

NumberOfObjects Integer Evaluates to the number of entries in the process object list; that is, the attribute P_OBJECT_LIST

NumberOfEdls Integer Evaluates to the number of entries in the EDL list of the process; that is, the attribute P_EDL_LIST

NumberOfFiles Integer Evaluates to the number of entries in the File list of the process; that is, the attribute P_FILE_LIST

NumberOfAttachments Integer Evaluates to the number of entries in the Attachments list of the process; that is, the attribute P_ATTACHMENTS_LIST.

NumberOfAttachments(“filter”) Integer Evaluates to the number of entries in the Attachments list of the process which fits to the passed filter. See Using a Filter in NumberOfAttachments on page 32.

LoopIndex Integer Evaluates to the number of the current loop iteration.

Iteration count begins at 0 for all loop types.

LoopCounter (deprecated, use LoopIndex instead)

Integer Evaluates to the number of the current loop iteration.

Iteration count begins at 1 for sequential loops, and at 0 for parallel loops.

Using a Filter in NumberOfAttachments

You can use a filter with the NumberOfAttachments variable. It allows you to select a number of attachments based on their type and source. The filter has a specific format:

system-type:system-id:asset-type

Expressions

33

Input Meaning

system-type Type of system (Interplay Production, Interplay MAM, iNEWS). Currently the following system types are supported: “interplay,” “interplay-mam,” and “inews.”

system-id ID of the system. You can use the following:

• * or <empty>: Wildcard for any system

• {local}: Placeholder for the ID of the local system

• {group}: Placeholder for any system which is defined in the Interplay MAM configuration (profile Global > section Orchestration/Group > keys inews, interplay, and interplay-mam)

• Id: The ID of a specific system

asset-type Asset types that are to be allowed as attachments for the specified system type. The asset type is case-insensitive.

• For MAM object classes, use asset.<Object class name>

• For MAM EDL classes, use sequence.<EDL class name>

• For Interplay Production and iNEWS assets, use the asset name

Examples:

• *: Wildcard for any asset type

• asset.VIDEO (MAM Video class)

• asset.* (all MAM object classes)

• sequence.EDL (MAM EDL class)

• sequence (PAM Sequence)

• masterclip (PAM Video)

For additional information, see Attaching Objects from Non-MAM Systems to Processes on page 63.

Access to Process Attributes

All attributes of the process class can be accessed by using the “.” operator on the ‘Process’ scope. The result of the expression is always of type String:

Expressions

34

Process.P_PROCESS_ERRORMESSAGE

There is an option to use sub-attributes of type Compound, as shown in the following example:

Process.P_OBJECT_LIST[2].MAINTITLE

You can use variables of other tasks (such as loopIndex) with expressions as index of an MVC attribute:

Process.P_OBJECT_LIST[loopIndex + 1].MAINTITLE

You can use an MVC sub-attribute as index for another sub-attribute, as shown in the following example:

Process.P_OBJECT_LIST[Process.P_OBJECT_LIST[0].Attribute_Of_Type_Integer].MAINTITLE

Access to Task Attributes

Task attributes State and Lifecycle can be accessed by using the ‘.’ operator on the scope of the corresponding task.

Value Type Description

<Task Name>.State String Evaluates to the status of a task <Task Name>. This expression always refers to the last task.

<Task Name>.Lifecycle Integer Evaluates to the lifecycle status of a task <Task Name>and is represented by the corresponding value from the legal list P_TASK_LIFECYCLE.

Task Aggregate Functions

Task aggregate functions can be used to determine the overall result of a loop sub-process. The task aggregate functions always operate on both task list and task history.

Function Description

EXISTS(<Task Name>) Evaluates to true, if a task with the name <Task Name>

Expressions

35

exists.

COUNT(<Task Name>.State==value) Evaluates to the number of occurrences of a task <Task Name> where the state of the task equals to value.

ALL(<Task Name>.State==value) Evaluates to true if the state of all instances of <Task Name> equal to value.

ANY(<Task Name>.State==value) Evaluates to true if at least one task has a status equal to value.

NONE(<Task Name>.State==value) Evaluates to true if no task has the status equal to value.

Operators

Operators for expressions in the Interplay process notation can be of the following types:

• Precedence operator

• Unary operators

• Cast operators

• Numeric operators

• Relational operators

• Equality/inequality operators

• Conditional operators

The following table lists the operators that are supported. The operators are presented in the order of decreasing precedence.

Operator Description

(…) Braces to determine precedence of evaluation

- Numeric unary minus

! Boolean unary not

(int), (bool), (string), (float) Cast operators to modify the type of an operand

*, /, % Numeric multiplication, division, and modulus operator

Serialization

36

+, - Numeric addition and subtraction operators

<, <=, >=, > Relational operators: Less than, Less than or equal to, Greater than or equal to, Greater than

==, != Equality and inequality operator

&& Conditional AND operator

|| Conditional OR operator

Serialization

Interplay MAM uses the XML Process Description Language XPDL 1.2 for the serialization of process models.

4 Process Configuration

Data Model

The following sections provide information about the data model configurations required by each process model:

• Common Types

• Process Classes

• Process Templates

• User Task Templates

Common Types

The Process Execution Engine of Interplay MAM requires that certain elements are present in the data model. These elements are delivered in the standard data model of Interplay MAM by default. The mandatory elements are the following legal lists and multi-value compound (MVC) attributes.

Legal lists that represent:

• Process Lifecycle

• Task Lifecycle

• Task Type

• Event Type

• File Status

MVC attribute types:

• Task List and Task History

• Object List

• EDL List

• File List

Data Model

38

All of the above elements may be extended in future releases of Interplay MAM. Custom-specific modifications or extensions are not possible.

Process Lifecycle The Process Lifecycle represents the technical status of a process, as opposed to the logical Process State. It is applicable to all process classes. The Process Lifecycle is represented by the legal list P_PROCESS_LIFECYCLE and has the following entries:

ID Lifecycle Description

0 Pending Process is waiting for execution.

1 Running Process is executed by the execution engine.

2 Finished From a technical perspective, the execution of the process finished successfully. When a process is in the Finished state, all process metadata should be considered read-only.

3 Error From a technical perspective, the execution of the process failed.

Task Lifecycle The Task Lifecycle represents the technical status of a task, as opposed to the logical Task State. It is applicable to all task types. The Task Lifecycle is represented by the legal list P_TASK_LIFECYCLE and has the following entries:

ID Lifecycle Description

0 Pending Task is waiting for execution.

1 Running Task is executed by the Process Execution Engine.

2 Finished From a technical perspective, the execution of the task finished successfully.

3 Error From a technical perspective, the execution of the task failed.

4

5

Timeout

Skipped

The execution of the task timed out.

In case task type is Script Task, the execution of task was skipped

Data Model

39

Task Type The Task Type represents the type of a task. The Task Type is represented by the legal list P_TASK_TYPE and has the following entries:

ID Task Type Description

0 User Task Represents a User Task.

1 Script Task Represents a Script Task.

2 State Task Represents a State Task or an Error Task.

3 Fork Task Represents a forking Parallel Gateway.

4 Decision Task Represents an Exclusive Gateway.

5 Parallel Sub-Process Task Represents a Parallel Sub-Process.

6 Other Task Reserved for future use.

7 Thread Task Represents a virtual Thread element.

8 Join Task Represents a joining Parallel Gateway.

9 Sequential Sub-Process Task Represents a Sequential Sub-Process.

10 Sub-Process Task Represents a Sub-Process.

11 Delay Represents a Delay Event.

The legal list P_TASK_TYPE may be extended in future releases of Interplay MAM. Avid strongly discourages custom-specific adaptation.

Event Type The Event Type represents the type of an internal processing event. The Event Type is represented by the legal list P_EVENT_TYPE and has the following entries:

ID Task Type Description

0 Process Started Event that is triggered by a Process Start element.

1 State Task Start Event that is triggered by a State Task element.

2 Script Task Start Event that is triggered when a Script Task starts.

3 Script Task Changed Event that is triggered when a Script Task is updated.

Data Model

40

ID Task Type Description

4 Script Task Completed Event that is triggered when a Script Task is completed.

5 User Task Start Event that is triggered when a User Task is started.

6 User Task Completed Event that is triggered when a User Task is completed.

7 Decision Start Event that is triggered when an Exclusive Gateway element is processed.

8 Fork Start Event that is triggered when a forking Parallel Gateway element is processed.

9 Join Start Event that is triggered when a joining Parallel Gateway element is processed.

10 Sub-Process Start Event that is triggered when the execution of a sub-process starts.

11 Child Process Start Reserved for future use.

12 Wait Child Process Start Reserved for future use.

13 End Event Start Event that is triggered by a Process End element.

14 User Task Timeout Event Event that is triggered when a timeout occurs on a User Task.

15 Script Task Timeout Event Reserved for future use.

16 Sequential Sub-Process Start Event that is triggered when the execution of a Sequential Sub-Process starts.

17 Sub-Process Complete Event that is triggered when the execution of a Sub-Process is completed.

18 Sequential Sub-Process Complete

Event that is triggered when the execution of a Sequential Sub-Process is completed.

19 Parallel Sub-Process Start Event that is triggered when the execution of a Parallel Sub-Process starts.

20 Parallel Sub-Process Complete

Event that is triggered when the execution of a Parallel Sub-Process is completed.

21 Delay Task Start Event that is triggered when the execution of a Delay Event starts.

Data Model

41

ID Task Type Description

22 Delay Task Changed Event that is triggered because of an Attribute Changed event for the Delay Events that are mapped to the same attribute.

23 Delay Task Complete Event that is triggered when the execution of a Delay Event is completed.

24 Attribute Changed Event that is triggered when the value of a process attribute changes. The event is triggered only for attributes that are configured accordingly in the data model.

File Status The File Status represents the status of attached files. The File Status is represented by the legal list P_FILE_LIST_STATUS and has the following entries:

ID Lifecycle Description

0 Completed Upload is completed.

1 Failed Upload failed.

2 Cancelled Upload was cancelled by user.

3 Deleted File was deleted.

4 Downloaded File was downloaded.

5 In Progress Upload is in progress.

6 Waiting Queued and waiting for upload.

Task List and Task History Process tasks are managed in two lists. The task list is the list of pending tasks, P_TASKLIST, and the task history is the list of completed tasks, P_TASKHISTORY. Both lists are MVC attributes and by default share the same set of sub-attributes.

Attribute Description

P_TASK_JOBID Unique ID of the task instance. The ID is created at execution time. Type: Text[64]

Data Model

42

Attribute Description

P_TASK_NAME Name of the task. Type: Thesaurus[STATEMACHINE]

P_ACTIVITY_ID Unique ID of the task as defined in the process model. Type: Text[64]

P_TASK_CREATION_DATETIME Date and time when the task was created. Type: Datetime

P_TASK_MODIFICATION_USERLOGIN ID of the user who handled the task. Type: Text[64]

P_TASK_END_DATETIME Date and time when the task was completed. Type: Datetime

P_TASK_TYPE Type of the task. Type: Legal List[P_TASK_TYPE]

P_TASK_LIFECYCLE Current technical status of the task. Type: Legal list[P_TASK_LIFECYCLE]

P_TASK_THREAD_STACK Internal thread stack for the task. Type: Text

P_TASK_THREADLEVEL Internal thread identification. The attribute is deprecated and not used any more. Type: Integer[5]

P_TASK_LOOP_NO (deprecated, use P_TASK_LOOP_IND instead)

Number of current loop iteration. Loop iterations always start with 1. The value is 0 if the task is not executed in the context of a loop. Type: Integer[8]

P_TASK_LOOP_IND Number of current loop iteration. Loop iterations always start with 0. Type: Integer[8]

P_TASK_STATE Status of this task instance. Type: Thesaurus[STATEMACHINE]

P_TASK_PRIORITY Reserved for future use. Type: Integer[5]

P_TASK_PROGRESS Percentage of completion of the task. Type: Float[3,2]

P_TASK_ERRORMESSAGE Textual description of the error condition.

Data Model

43

Attribute Description

Type: Text

P_TASK_INPUTFORM The name of the metadata template used for editing the task. Applies only to User Tasks. Type: Text

P_TASK_RESPONSIBLE_GROUP List of user groups that are authorized to work on this task. Applies only to User Tasks. Text[256]

P_TASK_DELEGATION List of delegators and delegates. Applies only to User Tasks. Type: Text

P_TASK_GROUP The group to which the task was assigned. Applies only to User Tasks. Type: Text[256]

P_TASK_USER Name of the user that completed the task. Applies only to User Tasks. Type: Text[256]

P_TASK_ALLOWED_ACTION_BUTTONS List of action buttons for the task. Applies only to User Tasks. Type: Text

P_TASK_ALLOWED_STATE_LABELS List of states for the task. Applies only to User Tasks. Type: Text/Xml

P_TASK_ALLOWED_STATES List of states for the task. Applies only to User Tasks. Type: Text/Xml

P_TASK_ALLOW_ADD_OBJECTS Flag that defines if adding objects is allowed. Applies only to User Tasks. Type: Boolean

P_TASK_ALLOW_REMOVE_OBJECTS Flag that defines if removing objects is allowed. Applies only to User Tasks. Type: Boolean

P_TASK_ALLOW_UPLOAD Flag that defines if uploading files is allowed. Applies only to User Tasks. Type: Boolean

P_TASK_ALLOW_DOWNLOAD Flag that defines if downloading files is allowed. Applies only to User Tasks.

Data Model

44

Attribute Description

Type: Boolean

Object List The Object List is an MVC attribute that contains the list of attached objects. The Object List is represented by the MVC type P_OBJECT_LIST.

Attribute Description

DMGUID_ID DMGUID of the object Type: Text[64]

EDL List The EDL List is an MVC attribute that contains the list of attached EDLs. The EDL List is represented by the MVC type P_EDL_LIST.

Attribute Description

EDLID EDL Identifier Type: Text[64]

MAINTITLE Title of the EDL Type: Text[256]

File List The File List is an MVC attribute that contains the list of attached files. The File List is represented by the MVC type P_FILE_LIST.

Attribute Description

P_FILENAME Name of the attached file. Type: Text[256]

P_FILESIZE Size of the attached file in bytes. Type: Integer[20]

P_ORGPATH Original path of the file. Type: Text[256]

P_STATUS Status of the attached file. Type: Legal list[P_FILE_LIST_STATUS]

Data Model

45

Attachment List The Attachment List is an MVC attribute that contains the list of attached non-MAM assets (assets from Interplay Production or iNEWS systems). The Attachment List is represented by the MVC type P_ATTACHMENT_LIST.

Attribute Description

A_NAME Display name of the attachment; for example, the maintitle of the asset. Type: Text[256]

A_REFERENCE The Common Object ID {system type, system instance id, asset type, (asset) id};; cod://{common-object-id}. Type: Text[2048]

P_SYSTEM_NAME Human readable system label such as “kl-pm-mam53”. Type: Text[256]

Process Classes

The data model of Interplay MAM contains a process class for each process type. The name of the process class matches the name of the process model. Each process class provides the same mandatory set of attributes. Additionally, any number of custom-specific attributes may be added to each process class.

The following table lists the mandatory set of attributes for each process class:

Attribute Description

DMGUID Unique identifier of the process instance. Type:

MAINTITLE Title of the process instance. Type: Text[256]

REGISTRATION_DATE Creation date of the process instance. Type: Date

REGISTRATION_TIME Creation time of the process instance. Type: Time

REGISTRATION_DATETIME Creation date and time of the process instance. Type: Datetime

REGISTRATION_USERLOGIN ID of the user who created the process instance. Type: Text[128]

Data Model

46

Attribute Description

MODIFICATION_DATETIME Last modification of date and time of the process instance. Type: Datetime

MODIFICATION_USERLOGIN ID of the user who modified the process instance. Type: Text[128]

SYSTEM_OBJECTOWNER ID of the tenant for whom the process instance has been created. Type: Text[64]

P_PROCESS_ASSIGNEE The user to which the task is assigned. Marked with the ‘Triggers State Machine changed event’ flag. Type: Text[256]

P_PROCESS_CONTRIBUTORS The contributors that can be assigned to user tasks. Type: Text

P_PROCESS_GROUP The group to which the task is assigned. Marked with the ‘Triggers State Machine changed event’ flag. Type: Text[256]

P_PROCESS_NEXT_GROUP Suggests the user to perform the next task. Type: Text[256]

P_PROCESS_NEXT_USER Suggests the user to perform the next task.. Type: Text[256]

P_PROCESS_PREVIOUS_GROUP The group that was set as performer of the previous user task. Type: Text[256]

P_PROCESS_ PREVIOUS_USER The user that performed the previous task. Type: Text[256]

P_PROCESS_PRIORITY Reserved for future use. Type: Integer[5]

P_PROCESS_VERSION Creation date and time when the process model was uploaded into the process repository. This also constitutes the version number of the process model. Type Datetime

P_PROCESS_STATE Current semantic status of the process in terms of the underlying process model.

Data Model

47

Attribute Description

Type: Thesaurus[STATEMACHINE]

P_PROCESS_PROGRESS Percentage of completion of the process. Type: Float[3, 2]

P_PROCESS_LIFECYCLE Current technical status of the process. Type: Legal list[P_PROCESS_LIFECYCLE]

P_PROCESS_END_DATETIME Date and time when the execution of the process instance was completed. Type: Datetime

P_PROCESS_HAS_ERROR Flag that signals an error condition. Type: Boolean

P_PROCESS_ERRORMESSAGE Textual description of the error condition. Type: Text

P_PROCESS_MIN_ATTACHMENTS Minimum allowed number of file attachments. Type: Integer[5]

P_PROCESS_MAX_ATTACHMENTS Maximum allowed number of file attachments. Type: Integer[5]

P_PROCESS_MIN_OBJECTS Minimum allowed number of object attachments. Type: Integer[5]

P_PROCESS_MAX_OBJECTS Maximum allowed number of object attachments. Type: Integer[5]

P_PROCESS_MIN_EDLS Minimum allowed number of EDL attachments. Type: Integer[5]

P_PROCESS_MAX_EDLS Maximum allowed number of EDL attachments. Type: Integer[5]

P_TASKLIST List of active tasks for this process instance. Type: MVC[P_TASKLIST]

P_TASKHISTORY List of completed tasks for this process instance. Type: MVC[P_TASKHISTORY]

P_ALLOWED_OBJECT_CLASSES List of object classes that can be attached to the process. Type: Text

P_ATTACHMENT_LIST List of attached non-MAM assets (assets from Interplay Production or iNEWS systems).

Thesaurus

48

Attribute Description

Type: MVC[P_ATTACHMENT_LIST]

P_OBJECT_LIST List of objects that are attached to the process. Type: MVC[P_OBJECT_LIST]

P_EDL_LIST List of EDLs that are attached to the process. Type: MVC[P_EDL_LIST]

P_FILE_LIST List of files that are attached to the process. Type: MVC[P_FILE_LIST]

Process Templates

Metadata templates are defined in the data model for displaying and editing process objects.

User Task Templates

Metadata templates are defined in the data model for editing user tasks.

Thesaurus

A thesaurus with the thesaurus id STATEMACHINE must exist in Interplay MAM. This thesaurus is used to provide the localization for all process classes.

Each time a process model is uploaded into the process repository, the content is automatically inserted and updated.

The following example shows the general structure of the STATEMACHINE thesaurus.

Example:

STATEMACHINE - MATERIAL_PROCESS - FILE_SYNC - INGEST_ORDER - TRANSCODE - QC_FILECHECK - EDL_EXPORT

Each top-level node of the thesaurus represents a process. The indentations represent the technical sub-node relationships in the thesaurus.

The next example depicts the common term structure for each individual process.

Workflow Scripts

49

Example:

STATEMACHINE MATERIAL_PROCESS Events Start End Retry_Timer Start_Sub_MaterialIdentification End_Sub_MaterialIdentification Gateways Decision_Materialtype Script Tasks Script 1 LABELS Succeeded Failed State Tasks State 1 State 2 Sub Processes MaterialIdentification User Tasks User Task 1 BUTTONS Attach Cancel LABELS Attached Canceled

The indentation represents the technical sub-node relationships in the thesaurus.

The blue terms are structural nodes. Structural nodes exist for each process model independently. Their only purpose is to improve the overview and to ease navigation of the thesaurus tree.

The black terms are the terms that contain the actual content of the specific process model.

The thesaurus STATEMACHINE is a system thesaurus. The structure of the terms is automatically created and maintained. Avid recommends not modifying this thesaurus manually.

Workflow Scripts

In a process model, a corresponding workflow script is provided for each Script task. The workflow script might be changed by setting the script name in the settings of the BPMProcesses profile (for additional information, see Overwriting the Workflow Script

Workflow Scripts

50

Name for a Script Task on page 57). All workflows that are required by a process model are uploaded into the workflow repository.

5 Modifying a Process Model by Configuring Profile Settings

The followings topics provide information on how to modify a process model by configuring profile settings:

• Overview of the BPMProcesses Profile

• Overwriting Allowed Classes

• Overwriting User Task Properties

• Overwriting the Workflow Script Name for a Script Task

• Defining Actions Sub-Menus in MediaCentral UX

• Configuring Quick Send for MediaCentral UX

• Attaching Objects from Non-MAM Systems to Processes

• Using Configuration Values as Script Task Inputs

• Using Configuration Values for Decisions

Overview of the BPMProcesses Profile

The BPMProcesses profile is an optional profile that can be added to an Interplay MAM system to overwrite a process model’s individual process or task properties without having to change the process XPDL. You can configure the following process model elements:

• Objects, EDLs, and process classes that are allowed as process attachments

• Workflow scripts started by Script tasks

• User task properties

You can also configure specific process handling in MediaCentral UX:

• Define different starting conditions for the same process in MediaCentral UX by creating Actions sub-menu items.

Overview of the BPMProcesses Profile

52

• Define processes that can be executed without further user interaction from the MediaCentral UX Media pane by creating Quick Send menu items.

• Define non-local and non-MAM assets that can be attached to processes in MediaCentral UX.

Sample Sections

The BPMProcesses profile contains the following sample sections, which can be used as a template:

Section Function

QUICK_SEND_EXAMPLE Defines processes that can be triggered from the MediaCentral UX Media pane that do not require user interaction. See Configuring Quick Send for MediaCentral UX on page 60.

_ExampleProcessName Defines the names of objects, EDLs, and process classes that are allowed as process attachments. See Overwriting Allowed Classes on page 53.

_ExampleProcessName/ ActionMenuItems

Defines different starting conditions for the same process in MediaCentral UX. See Defining Actions Sub-Menus in MediaCentral UX on page 58.

_ExampleProcessName/ ScriptTasks

Defines the names of script tasks to overwrite the SWoDL script name (workflow) that is started in Workflow Engine. See Overwriting the Workflow Script Name for a Script Task on page 57.

_ExampleProcessName/ UserTasks

Defines the names of user tasks for which properties are overwritten. See Overwriting User Task Properties on page 54.

Overwriting Allowed Classes

53

Basic Actions on the Section Level

Working with the BPMProcesses profile involves the following basic actions on the section level:

1. Copy the _ExampleProcessName section and its subsections.

2. Rename the sections: Replace _ExampleProcessName with the name of the process definition file uploaded to the State Machine.

3. (Option for Script tasks): Replace _ExampleScriptTaskName with the name of the workflow script uploaded to the Workflow Engine.

4. (Option for User tasks): Replace _ExampleUserTasks with the name of the user task specified in the process model.

5. (Option for Actions menu items): Replace _ExampleActionMenuItemName with the name of the Actions sub-menu item you want to create.

Overwriting Allowed Classes

When designing a process model in Process Modeler you can define which objects, processes, and EDL classes can be used as process attachments.

You can overwrite the allowed object class definition by using the AllowedObjectClassses key in the _ExampleProcessName section of the BPMProcesses profile.

Overwriting User Task Properties

54

To overwrite the AllowedObjectClasses definition:

1. Select the _ExampleProcessName section.

2. Select the key AllowedObjectClasses and enter one of the following:

Input Meaning

<empty> If you do not provide a value, the Allowed Object Classes definition of the process model is not overwritten.

Names of classes For local MAM assets, type the name of the object, EDL, or process class as defined in the data model. If you want to use several classes, type the names as a comma-separated list. For non-local and non-MAM assets, see

Attaching Objects from Non-MAM Systems to Processes on page 63.

Asterisk (*) If you type an asterisk, all objects, EDLs, and process classes defined in the data model are allowed as process attachments.

Overwriting User Task Properties

When designing a process model in Process Modeler you define the behavior of user tasks.

Overwriting User Task Properties

55

You can overwrite user task properties by using the following keys in the _ExampleProcessName/UserTasks/_ExampleUserTaskName section of the BPMProcesses profile:

Configuration Key Process Property Meaning

AllowedActions Allowed Actions Defines which user actions are allowed when the user task is reached during process execution.

AllowedActionsButtons States Defines the states that the user task can reach when the user performs the task.

DisplayForm Display Form Defines a display form template for the user task.

InputForm Input Form Defines an input form template for the user task.

ResponsibleGroup and ResponsibleUsers

Performers Assigns performers to the user task (user or groups that are allowed to process the task.)

Overwriting User Task Properties

56

To overwrite user task properties:

Except for InputForm and DisplayForm you can set several values for a key. Type the values as a comma-separated list.

If you do not provide a value for a key, the corresponding property of the process model is not overwritten.

1. Select the _ExampleProcessName/UserTasks/_ExampleUserTaskName section.

2. Select the key AllowedActions and enter the needed value(s).

Input Meaning

ADDOBJECTS Objects or EDLs can be added to the task.

REMOVEOBJECTS Objects or EDLs can be removed from the task.

UPLOAD Files can be uploaded to the task.

DOWNLOAD Files can be to downloaded from the task.

3. Select the key AllowedActionButtons and enter the states that the user task can reach when the user performs the task. Note that you can only use states that are defined in the user task’s State property.

4. Select the key DisplayForm and enter the name of the display template that is shown when the user task is reached during process execution. The template name must match the name of the corresponding template defined in the data model.

5. Select the key InputForm and enter the name of the input template that is shown when the user task is reached during process execution. The template name must match the name of the corresponding template defined in the data model.

6. Select the key ResponsibleGroups and enter the ID of the user group that is allowed to perform the user task. The ID must match the user group ID defined in MAM User Management.

7. Select the key ResponsibleUsers and enter the ID of the user that is allowed to perform the user task. The ID must match the user ID defined in MAM User Management.

Overwriting the Workflow Script Name for a Script Task

57

Overwriting the Workflow Script Name for a Script Task

When designing a process model in Process Modeler you define which workflow script is triggered by a script task.

You can overwrite the workflow script definition and skip the workflow script execution by using the following key in the _ExampleProcessName/ScriptTasks/ _ExampleScriptTaskName section of the BPMProcesses profile:

Configuration Key Process Property Meaning

ScriptName Script Name Defines the name of the workflow script called by the script task.

If you do not provide a value for a key, the corresponding property of the process model is not overwritten.

To overwrite the workflow script definition:

1. Select the __ExampleProcessName/ScriptTasks/_ExampleScriptTaskName section.

2. Select the key ScriptName and enter one of the following:

Enter the name of the workflow script that is to be triggered. The name must match the name of the corresponding workflow that is uploaded to the Interplay MAM Workflow Engine.

Defining Actions Sub-Menus in MediaCentral | UX

58

Enter _skip_ The script task is skipped during process execution and its workflow script is not triggered. The Lifecycle of the script task is set to SKIPPED.

Defining Actions Sub-Menus in MediaCentral | UX

In Interplay MAM Desktop you can configure process folders by assigning process types and Create templates with different default values for attributes — with at least one default (read-only) value for an attribute — and control user group access to folders by using Folder-sharing controls. For example, you can define multiple Export destinations for an export process and assign these predefined destinations to user groups.

Starting with version 2.2, in MediaCentral UX, Actions sub-menu items are used to implement the same feature. By using the BPMProcesses profile you can configure sub-menus for processes and configure the Create template and labels for each sub-menu item. Access to sub-menus is controlled by user rights.

If the Mam.Foundation.Base package is installed, the BPMProcesses profile contains preconfigured settings for Actions sub-menus to be used with the MAM Export process. You can use these settings as reference when modelling your own Actions sub-menus for another process.

The following illustrations show the preconfigured folder in MAM Desktop’s Workspace, and the Actions sub-menu items in MediaCentral UX for the MAM Export process.

MAM Desktop’s Workspace: MAM Export process folders

MediaCentral UX: MAM Export sub-menu items in the Actions menu

The Mam.Foundation.Base package includes the required user rights for sub-menu items and subsections for sub-menu items in the BPMProcesses profile:

Defining Actions Sub-Menus in MediaCentral | UX

59

MAM User Manager: Rights for Actions sub-menu items

BPMProcesses profile: Subsections for Actions sub-menu items

If the Mam.Foundation.Base package is not used in your installation, use the _ExampleProcessName/ActionMenuItems/_ExampleActionMenuItemName subsection of the BPMProcesses profile as a point of reference.

Configuring Actions sub-menu items requires the following basic steps:

1. (Option) In Datamodel Administrator, create specific templates.

2. In System Administrator, create sub-sections with the name of the sub-menu items and configure the values in the BPMProcesses profile, as described in the following procedure.

3. In User Manger, create the right Processes/Create_<ProcessName>/<MenuItemName> for each sub-menu item and assign the rights to the desired user groups.

To create settings for Actions sub-menus:

1. Copy the _ExampleProcessName section and rename it with the name of the process definition file uploaded to the State Machine.

Configuring Quick Send for MediaCentral | UX

60

2. Copy the _ExampleProcessName /ActionMenuItems/_ExampleActionMenuItemName section, replace _ExampleProcessName with the process name used in step 1, and replace _ExampleActionMenuItemName with the name of the Actions sub-menu you want to create.

3. Within the renamed _ExampleActionMenuItemName section, provide values for the following keys:

Input Meaning

ItemLabel Default display name for the Actions sub-menu item. It is used as the label in a single-language environment and the fallback label if language-specific labels are missing.

ItemLabel_en Language-specific (English) display name for the Actions sub-menu item.

Rank Integer value that is used for sorting the sub-menu items in MediaCentral UX. The higher the Rank, the higher the item’s position in the sub-menu. Sub-menu items with the same Rank appear in the order of the section name in the profile. If the Rank is empty it defaults to zero.

TemplateName Name of the template used for process creation. The name must match the name of the template in the data model. If TemplateName is empty, the section is skipped and the sub-menu item is not shown in the Actions menu.

4. Create an ItemLabel_<language> key for each needed language and provide the localized label. MediaCentral UX supports the following languages: English (_en), French (_fr), German (_de), Italian (_it), Spanish (_es), Chinese (_zh), Japanese (_ja), Korean (_ko), Arabic (_ar), and Turkish (_tr).

5. Repeat steps 2 through 4 for all sub-menus you want to create.

Configuring Quick Send for MediaCentral | UX

For a quick transfer of material to a certain destination, users of Interplay MAM Desktop can set Mark In and Mark Out and then initiate the transfer. Starting with version 2.4, MediaCentral UX also supports the “Quick Send” feature for Interplay MAM assets. By using the BPMProcesses profile you can configure sub-menus for Quick Send processes and configure the Create template and labels for each sub-menu item. Access to sub-menus is controlled by user rights.

Configuring Quick Send for MediaCentral | UX

61

If the Mam.Kit.DemoQuickSend package is installed, the BPMProcesses profile contains preconfigured settings for a Quick Send sub-menu to be used in MediaCentral UX Media pane. You can use these settings as a reference when modelling your own Quick Send sub-menus.

The following illustration shows an example of a Quick Send sub-menu item in MediaCentral UX.

The Mam.Kit.DemoQuickSend package includes the required process definition, process class and template, user rights, and subsection in the BPMProcesses profile for the example Quick Send process.

MAM User Manager: Rights for Actions sub-menu items

BPMProcesses profile: Subsections for Quick Send sub-menu items

Configuring Quick Send sub-menu items requires the following basic steps:

Configuring Quick Send for MediaCentral | UX

62

1. (Option) If you want to create specific Quick Send processes, do the following:

a. In Process Modeler, create specific Quick Send process definitions.

b. In Process Administrator, upload the process definition to the State Machine.

c. In Datamodel Administrator, create the Quick Send process classes and specific Quick Send templates.

2. In System Administrator, create sub-sections with the name of the Quick Send items and configure the values in the BPMProcesses profile, as described in the following procedure.

3. In User Manager, create the right Processes/Create_<QuickSend>/<MenuItemName> for each QuickSend sub-menu item and assign the rights to the desired user groups.

To create settings for Quick Send sub-menus:

1. Copy the QUICK_SEND_EXAMPLE section and rename it with the name of the process definition file uploaded to the State Machine.

2. Copy the QUICK_SEND_EXAMPLE/ActionMenuItems/1DEFAULT section, replace QUICK_SEND_EXAMPLE with the process name used in step 1, and replace 1DEFAULT with the name of the Quick Send sub-menu you want to create.

3. Within the renamed section, provide values for the following keys:

Input Meaning

EnableQuickSend Shows or hides the Quick Send menu item.

ItemLabel Default display name for the Quick Send sub-menu item. It is used as the label in a single-language environment and the fallback label if language-specific labels are missing.

ItemLabel_en Language-specific (English) display name for the Quick Send sub-menu item.

Rank Integer value that is used for sorting the sub-menu items in MediaCentral UX. The higher the Rank, the higher the item’s position in the sub-menu. Sub-menu items with the same Rank appear in the order of the section name in the profile. If the Rank is empty it defaults to zero.

TemplateName Name of the template used for Quick Send process creation. The name must match the name of the template in the data model. If TemplateName is empty, the section is skipped and the sub-menu

Attaching Objects from Non-MAM Systems to Processes

63

Input Meaning

item is not shown in the Quick Send menu.

4. Create an ItemLabel_<language> key for each required language and provide the localized label. MediaCentral UX supports the following languages: English (_en), French (_fr), German (_de), Italian (_it), Spanish (_es), Chinese (_zh), Japanese (_ja), Korean (_ko), Arabic (_ar), and Turkish (_tr).

5. Repeat steps 2 through 4 for all sub-menus you want to create.

Attaching Objects from Non-MAM Systems to Processes

Starting with version 2.4, the options for attaching assets to MAM processes in MediaCentral UX are enhanced. You can now also add assets to a process:

• From other MAM systems (“non-local” MAM systems), and

• From other systems such as Interplay Production and iNEWS (“non-MAM systems”).

Adding non-local and non-MAM assets to a process is possible in MediaCentral UX, but not in Interplay MAM Desktop.

All non-local and non-MAM assets are attached to the P_ATTACHMENT_LIST attribute. To attach assets from non-local and non-MAM systems, configure the allowed systems and asset types:

• In the Allowed Object Classes property of the process definition in Process Modeler, or

• In the AllowedObjectClassses key in the _ExampleProcessName section of the BPMProcesses profile, if you want to overwrite the process definition. See Overwriting Allowed Classes on page 53.

In any case, you must specify the filter for AllowedObjectClassses in the following format:

[system-type:system-id]:asset-type["[" [from "-"] to "]" ]

Input Meaning

system-type Type of system (Interplay Production, Interplay MAM, iNEWS). Currently, the following system types are supported: “interplay,”

Attaching Objects from Non-MAM Systems to Processes

64

Input Meaning

“interplay-mam,” and “inews.”

system-id ID of the system. You can use the following:

• *: Wildcard for any system

• {local}: Placeholder for the ID of the local system

• {group}: Placeholder for any system that is defined in the Interplay MAM configuration (profile Global > section Orchestration/Group > keys inews, interplay, and interplay-mam)

• Id: The ID of a specific system

asset-type Asset types that are to be allowed as attachments for the specified system type. The asset type is case-insensitive.

• For MAM object classes, use asset.<Object class name>

• For MAM EDL classes, use sequence.<EDL class name>

• For Interplay Production and iNEWS assets, use the asset name.

Examples:

• *: Wildcard for any asset type

• asset.VIDEO (MAM Video class)

• asset.* (all MAM object classes)

• sequence.EDL (MAM EDL class)

• sequence (PAM Sequence)

• masterclip (PAM Video)

["[" [from "-"] to "]" ] Number and range of objects that can be attached (optional). You can use the following:

• * or <empty>: no limitation

• [n]: Up to the specified number (including 0)

• [0-0]: None

• [n-n]: Exactly the specified number

• [n-m]: From - to

If you want to apply several filters, do the following:

In the AllowedObjectClassses key in BPMProcesses profile, type the filter definitions as a comma-separated list.

Using Configuration Values as Script Task Inputs

65

In the Allowed Object Classes property of the process definition, create a value for each filter definition.

The following table shows examples for filters that can be applied to Allowed Object Classes:

Filter Meaning

interplay:*:sequence Allows any Interplay Production sequence

interplay:WG3:sequence[1-2] Allows one or two sequences from an Interplay Production system with the ID “WG3”

interplay:{group}:sequence[1] Allows a maximum of one sequence that comes from the assigned Interplay Production system (one of the systems defined in the MAM configuration)

interplay-mam:*:sequence.my_edl

Accepts EDLs of the EDL class “MY_EDL” from any Interplay MAM system

interplay::[1-1] Accepts any Interplay Production asset type — but exactly one

Using Configuration Values as Script Task Inputs

When designing a process model in Process Modeler you can use attribute mapping for script tasks. When attribute mapping you define which values are passed to the workflow script by

Using Configuration Values for Decisions

66

specifying the target’s variable name in the script, as well as either the source property or a constant. The specified script variables are set to initial values by the State Machine before the script starts the execution.

You can use a configuration key as a script task’s input. Here are the requirements (as shown in the illustration):

1. The variable must be a constant.

2. Its value must be a URI to the configuration key. The URI syntax is MAMConfig://Profile/Section/Key

The value is taken dynamically when the workflow script is launched. If the URI is not correct or the associated configuration key does not contain a value, an “empty string” is used as the value of the variable.

Using Configuration Values for Decisions

When designing a process model in Process Modeler you can define the behavior for transitions of a decision. A decision connects transitions to other elements of the process model (“activities”). At runtime, the concrete control flow (“concrete decision”) is based on the conditions defined in the individual transitions. You have to use special syntactical constructs to define the conditions (“expressions”).

You can use a configuration key as a value for a condition. The following is required:

The value must be a URI to the configuration key. The URI syntax is MAMConfig://Profile/Section/Key

Example: You want to reference a key “DoPosttranscode” in the CommonSettings section of the MAM_Export profile.

Using Configuration Values for Decisions

67

In this case, the URI for the condition would be: MAMConfig://MAM_Export/CommonSettings/DoPosttranscode ==1

The following illustration shows the condition that references the DoPosttranscode key in the CommonSettings section of the MAM_Export profile:

If the URI is not correct or the associated configuration key does not contain a value, an “empty string” is used as the value.

6 Best Practices

The followings topics provide information about best practices in process design:

• Naming Guidelines

• Process Modeling

Naming Guidelines

Process Models and Process Classes

The name of the process model must match the name of the corresponding process class in the Interplay MAM data model, and follow the naming rules for object and process classes; that is, no spaces or special characters are allowed in the name.

Avid recommends that the names of process models and process classes only contain uppercase characters, digits, or underscores.

Example: P_<Name of Process>

Process Attributes

The names of mandatory process attributes use the character sequence P_ as a prefix. In the context of process classes, the prefix P_ is therefore reserved for future extensions of the Process Execution Engine. Custom process attributes should not use the prefix P_ for their names.

Process Element Names

Avid recommends that the names of process elements only contain characters, digits, and underscores.

To improve readability, element names should begin with an uppercase letter and continue with lowercase. Multiple words should be separated by underscores.

Example: Approve_or_Reject

Naming Guidelines

69

Task State Names

Avid recommends that the names of task states only contain uppercase characters, digits, and underscores. APPROVED and REJECTED are two recommended names for task states, for example.

Metadata Templates

Process Creation The name of the metadata template that is used for process creation consists of the prefix CREATECAT_ followed by the name of the process class.

Example: CREATECAT_<Name of Process Class>

If a template with such a name does not exist, the default template for creating processes is used.

Process Display The name of the metadata template that is used for displaying processes consists of the prefix CAT_ followed by the name of the process class.

Example: CAT_<Name of Process Class>

If a template with such a name does not exist, a default template is automatically created and used to display processes.

User Task Templates The name of the metadata template that is used for displaying user tasks consists of the prefix CAT_ followed by the name of the process class and the name of the user task.

Example: CAT_<Name of Process Class>_<Name of User Task>

Workflows

In general, the names of workflow scripts should be preceded by the character sequence P_ to indicate that these scripts are primarily used from within business processes.

Generic workflows that are potentially reusable in different process models are named by the character sequence P_ and the unique name of the workflow.

Example: P_<Workflow Name>.wf

Process Modeling

70

Workflows that are specific to a process model are named by inserting the name of the process model into to the workflow name.

Example: P_<Name of Process Class>_<Workflow Name>.wf

Reusing a workflow across process models requires sound change management, because modifying such a workflow may affect a number of process models.

Process Modeling

State Tasks in Parallel Threads

The use of State Tasks in parallel execution threads of a process model is not recommended. In this case, the process model contains an inherent race condition. Depending on the business logic of the process model, this may lead to unexpected results.

The following fictional process model illustrates the problem:

There are two parallel execution threads that both emerge from the Fork Task. If the thread with the User_Task finishes first and sets the process state, this process state is subsequently overwritten by the thread with the Script_Task, and vice versa. If the following decision contains conditions that evaluate the process state, then the outcome of the entire process varies. This behavior of a process model is undesirable.

Restrict Access to Process Metadata

Some mandatory attributes of each process class should be considered private to the process. Only the Business Process Engine should be allowed to modify these attributes. For technical

Process Modeling

71

reasons they cannot be write-protected, and their modification by workflow scripts cannot be prevented, for example. Avid strongly recommends that you do not modify these attributes directly via the Data Manager interface.

This applies to the following attributes:

• P_PROCESS_VERSION

• P_PROCESS_STATE

• P_PROCESS_PROGRESS

• P_PROCESS_LIFECYCLE

• P_PROCESS_END_DATETIME

• P_PROCESS_HAS_ERROR

• P_PROCESS_ERRORMESSAGE

• P_PROCESS_MIN_ATTACHMENTS

• P_PROCESS_MAX_ATTACHMENTS

• P_PROCESS_MIN_OBJECTS

• P_PROCESS_MAX_OBJECTS

• P_PROCESS_MIN_EDLS

• P_PROCESS_MAX_EDLS

• P_TASKLIST

• P_TASKHISTORY

• P_ALLOWED_OBJECT_CLASSES

Glossary

This section explains the key terms that are used in the context of Business Process Management in Interplay MAM. The terms are presented in alphabetical order.

Term Description

Attachment EDLs Attachment EDLs are EDL references that are attached to a process instance. Typically, the process works on the attached EDLs

Attachment Files Attachment files are file references that are attached to a process instance. Typically, the process works on the attached files.

Attachment Objects Attachment objects are object references that are attached to a process instance. Typically, the process works on the attached objects.

AXF Attribute Exchange Format: Default XML format for the exchange of object and process metadata in Interplay MAM.

BPMN Business Process Model and Notation by the Object Management Group.

Data Management Data Management is a technical subsystem of Interplay MAM that manages all metadata.

Data Model Data model refers to the metadata model of an Interplay MAM system. The data model can, to a large extent, be configured.

Datamodel Administrator

Datamodel Administrator is a tool that is used to define the data model interactively for Interplay MAM.

Decision Decision is a synonym for Exclusive Gateway.

DMGUID Data Management Globally Unique Identifier: A DMGUID is a unique identifier for objects and processes in Interplay MAM.

Embedded Sub-Process

Embedded sub-process is a synonym for sub-process.

Exclusive Gateway An Exclusive Gateway acts as a decision and chooses exactly one of multiple outgoing flows to continue process execution.

Fork Fork is a synonym for Parallel Gateway. Fork only refers to parallel gateways that spawn parallel execution threads.

73

Term Description

Join Join is a synonym for Parallel Gateway. Join only refers to parallel gateways that synchronize parallel execution threads.

MVC Multi-Value Compound: Refers to an attribute type in the Interplay MAM data model. The value of an MVC attribute consists of multiple items, where each item itself is of a compound type.

Object An entity in Data Management that consists of the metadata describing a media object.

Object Class An object class is the description of the structure of a certain type of objects. Object classes can be created using the Datamodel Administrator. The description of the structure is stored in the data model.

Parallel Gateway A parallel gateway forks multiple threads for simultaneous execution. Threads that have been spawned by a parallel gateway must be joined later in another matching parallel gateway. The role of a parallel gateway, whether either a fork or a join operation, is deducted automatically from the process model. Consequently, parallel gateways are always used in pairs.

Parallel Loop A parallel loop simultaneously executes the loop iterations in parallel threads.

Parallel Sub-Process Parallel sub-process is a synonym for parallel loop.

Process Used just as Process Instance.

Process Class An object class in Data Management with object type process.

Process End Timestamp

The process end timestamp is the timestamp a process receives when the process execution engine reaches the End element in the process model and finishes the execution of the process.

Process Instance A process instance is an instance of a process class. Every single execution of a business process results in a process instance of its own. A process instance is represented by an object in Data Management and contains technical metadata and custom-specific data that are associated with the business process.

Process Lifecycle Process lifecycle is an attribute of a process class that represents the technical status of a process. The status can be Pending, Running, Finished, or Error. This process lifecycle applies to all process classes. The type of the process lifecycle is implemented by the legal list P_PROCESS_LIFECYCLE.

74

Term Description

Process Model A process model is the representation of a business process in BPMN.

Process Progress Process progress is an attribute of a process class that represents the overall percentage of completion of the process. Process progress is only used for informational purposes.

Process State Process state is an attribute of a process class that represents the semantic status of a process. The set of possible values for the semantic status depends on the business process.

Process Start Timestamp

A process start timestamp is the timestamp a process receives when it is initially created in Data Management.

Process Task History Process task history is a list of all completed tasks of the process. It is maintained by the process execution engine.

Process Task List A Process task list is a list of all active tasks in a process. It is maintained by the process execution engine.

Script Task A script task is a task that starts a workflow script for synchronous execution in the Workflow Engine.

Sequential Loop A sequential loop sequentially executes the loop iterations within a single thread.

Sequential Sub-Process

Sequential sub-process is a synonym for sequential loop.

State Machine State Machine is the technical name of the Process Execution Engine in Interplay MAM.

State Task A state task is a process element that is used to set the logical process state and process progress.

Sub-Process A sub-process is a macro for a logical unit in a business process model. The macro contains a partial process model with a single entry and exit point. Sub-processes are used to improve the readability in complex process models.

SWoDL Simple Workflow Description Language: Scripting language that is used to write workflow scripts for Interplay MAM.

Task A task is an elementary step within a process that is automatically carried out by the process engine, or manually carried out by a user.

Task Job ID A task job ID is a unique identifier that is created for each task instance at runtime.

75

Term Description

Task Name A task name is the display name of the task.

Task Progress Task progress is an attribute of a task that represents the overall percentage of completion of the task.

Task State Task state is an attribute of a task that represents the sematic status of a task. The set of possible values for the semantic status depends on the definition of the task in the specific business process. Conditional expressions can refer to the task state.

Task Lifecycle Task lifecycle is an attribute of a task that represents the technical status of a task. The status can be Pending, Running, Finished, Error, or Timeout. Task lifecycle applies to all process classes and task types. The type of the task lifecycle is implemented by the legal list P_TASK_LIFECYCLE.

Task Timeout A task timeout is a timespan associated with a user task in a process model. It defines the time that is available for users to finish that task. When a user task has timed out, it is finished forcefully. This behavior can be used to implement automatic escalation procedures for time-critical processes.

Thesaurus Thesaurus is a service of Interplay MAM that manages hierarchical term structures. In the context of business process execution, a Thesaurus holds hierarchies of terms that contain the localization for the process models. The term Thesaurus is also used for a specific term hierarchy under the control of the Thesaurus service.

Thread A thread is a flow of control within a business process that can occur in parallel to other flows. Threads can be created explicitly by fork tasks. Such threads must be terminated by a matching join task. Threads can also be created implicitly by parallel loop sub-processes. All process models contain at least one thread that is started by a Process Start element and terminated by a Process End element.

User Task A user task is a process element that requires interaction by a human user. User tasks can be finished by an explicit user action or by a timeout if the task has not been attended to for a certain amount of time.

Workflow Engine Workflow Engine is a service of Interplay MAM that executes workflow scripts. Workflow scripts are written in SWoDL.

XPDL XML Process Definition Language by the Workflow Management Coalition

References

Business Process Model and Notation, BPMN 2.0, Object Management Group, http://www.omg.org/spec/BPMN/2.0/

XML Process Definition Language, XPDL 1.2, The Workflow Management Coalition, http://www.wfmc.org/xpdl.html

The following documents are shipped with the software:

The following documents are shipped with the software:

• Interplay | MAM Desktop User’s Guide

• Interplay | MAM Process Modeler User’s Guide

• Interplay | MAM Process Administrator User’s Guide

• Interplay | MAM Datamodel Administrator User’s Guide

Disclaimer

Product specifications are subject to change without notice and do not represent a commitment on the part of Avid Technology, Inc.

This product is subject to the terms and conditions of a software license agreement provided with the software. The product may only be used in accordance with the license agreement.

This product may be protected by one or more U.S. and non-U.S. patents. Details are available at www.avid.com/patents.

This document is protected under copyright law. An authorized licensee of Avid Interplay | Media Asset Manager may reproduce this publication for the licensee’s own use in learning how to use the software. This document may not be reproduced or distributed, in whole or in part, for commercial purposes, such as selling copies of this document or providing support or educational services to others. This document is supplied as a guide for Avid Interplay | MAM. Reasonable care has been taken in preparing the information it contains. However, this document may contain omissions, technical inaccuracies, or typographical errors. Avid Technology, Inc. does not accept responsibility of any kind for customers’ losses due to the use of this document. Product specifications are subject to change without notice.

Copyright © 1998-2016 Avid Technology, Inc. and its licensors. All rights reserved.

The following disclaimer is required by Apache Commons Logging: Copyright © 2003-2013 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

The following disclaimer is required by Apache Commons Net: Copyright © 2001-2013 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

The following disclaimer is required by Apache Jakarta Commons HttpClient: Copyright © 2004 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

The following disclaimer is required by Apache log4net: Copyright © 2004-2011 The Apache Software Foundation Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

The following disclaimer is required by Apache Xerxes: Copyright © 2008 Apache Software Foundation Licensed under the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)

The following disclaimer is required by Behaviour.js: This product includes software developed by Ben Nolan and his contributors. Copyright © 2006, 2007 Ben Nolan. All rightsreserved.

The following disclaimer is required by CFlatToolbar: Portions of this product are Copyright © 2002 Roger Onslov, all rights reserved.

The following disclaimer is required by Cross-Browser X Library: Copyright © 2000-2009 Michael Foster, distributed under the terms of LGPL (http://cross-browser.com/license.html)

The following disclaimer is required by CSXButton: Copyright © 1998 Michael Santoro, all rights reserved

The following disclaimer is required by CVersionInfo: Portions of this product are Copyright © 1997 Roberto Rocco, all rights reserved.

The following disclaimer is required by Assisted Solutions InputMask:

78

Portions of this product are Copyright © Data Reasearch Group. All rights reserved.

The following disclaimer is required by dicas: Portions of this product are Copyright © dicas digital image coding GmbH. All rights reserved.

The following disclaimer is required by DirectShowLib: Copyright (C) 2007 http://sourceforge.net/projects/directshownet, distributed under the terms of LGPL V2.1 (http://www.gnu.org/licenses/lgpl-2.1.html)

The following disclaimer is required by Divelements: Portions of this product are Copyright © 2003-2011 Divelements Limited.

The following disclaimer is required by DockPanelSuite: This product includes software developed by Mark Twombley, Steve Overton, and Weifen Luo and their contributors. Copyright © 2009 Mark Twombley, Steve Overton, and Weifen Luo.

The following disclaimer is required by FFmpeg: FFmpeg is Copyright © 2000-2003 Fabrice Bellard and is licensed under the terms of the GNU Lesser General Public License, which is included with this product.

The following disclaimer is required by GDCL Sample Parser: Copyright 2004 GDCL (http://www.gdcl.co.uk)

The following disclaimer is required by getElementsByAttribute: Copyright © 2006 Robert Nyman (http://www.robertnyman.com)

The following disclaimer is required by GoXam: Portions of this product are Copyright © 1995-2011 Northwoods Software. All rights reserved.

The following disclaimer is required by IC#Code #ZipLib: Copyright © 2000-2009 Michael Foster, distributed under the terms of GNU GPL with the following exception: As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

The following disclaimer is required by IFilter Text Extracter: IFilter Text Extracter Microsoft Public License (Ms-PL)

The following disclaimer is required by ImageMagick: Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization dedicated to making software imaging solutions freely available. (http://www.imagemagick.org/script/license.php)

The following disclaimer is required by Interplay Common Playback Service: This product includes FFmpeg, which is covered by the GNU Lesser General Public License. This product includes software that is based in part of the work of the FreeType Team. This software is based in part on the work of the Independent JPEG Group. This product includes libjpeg-turbo, which is covered by the wxWindows Library License, Version 3.1. Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 by Cold Spring Harbor Laboratory. Funded under Grant P41-RR02188 by the National Institutes of Health. Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002 by Boutell.Com, Inc. Portions relating to GD2 format copyright 1999, 2000, 2001, 2002 Philip Warner. Portions relating to PNG copyright 1999, 2000, 2001, 2002 Greg Roelofs. Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002 John Ellson ([email protected]). Portions relating to gdft.c copyright 2001, 2002 John Ellson ([email protected]). Portions relating to JPEG and to color quantization copyright 2000, 2001, 2002, Doug Becker and copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, Thomas G. Lane. This software is based in part on the work of the Independent JPEG Group. See the file README-JPEG.TXT for more information. Portions relating to WBMP copyright 2000, 2001, 2002 Maurice Szmurlo and Johan Van den Brande. Permission has been granted to copy, distribute and modify gd in any context without fee, including a commercial application, provided that this notice is present in user-accessible supporting documentation.This does not affect your ownership of the derived work itself, and the intent is to assure proper credit for the authors of gd, not to interfere with your productive use of gd. If you have questions, ask. "Derived works" includes all programs that utilize the library. Credit must be given in user-accessible

79

documentation.This software is provided "AS IS." The copyright holders disclaim all warranties, either express or implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to this code and accompanying documentation.Although their code does not appear in gd, the authors wish to thank David Koblas, David Rowley, and Hutchison Avenue Software Corporation for their prior contributions.

The following disclaimer is required by Interplay Entertainment Corp.: The Interplay name is used with the permission of Interplay Entertainment Corp., which bears no responsibility for the product.

The following disclaimer is required by JavaZoom: Portions of this product are Copyright © JavaZoom. All rights reserved.

The following disclaimer is required by JQuery: Copyright 2013 jQuery Foundation and other contributors (http://jquery.com/)

The following disclaimer is required by JQuery Plugin Autocomplete: Copyright (c) 2009 Jörn Zaefferer. (http://www.opensource.org/licenses/mit-license.php)

The following disclaimer is required by jquery.contextMenu: Copyright © 2008 A Beautiful Site, LLC

The following disclaimer is required by jquery.jqDnR: Copyright © 2007 Brice Burgess (<[email protected]>, http://www.iceburg.net)

The following disclaimer is required by Ui.dropdownchecklist: Copyright © 2008-2010 Adrian Tosca, Copyright (c) 2010-2011 Ittrium LLC

The following disclaimer is required by jquery.json: Copyright © 2009 Brantley Harris

The following disclaimer is required by jquery.metadata: Copyright © 2006 John Resig, Yehuda Katz, Jörn Zaefferer, Paul McLanahan

The following disclaimer is required by jquery.jqModal: Copyright © 2007,2008 Brice Burgess (<[email protected]>)

The following disclaimer is required by jquery.jTemplates: Copyright © 2009 Tomasz Gloc

The following disclaimer is required by jquery.treeview: Copyright © 2007 Jörn Zaefferer

The following disclaimer is required by jquery UI: Copyright © 2011, Scott Gonzalez et al. (http://jqueryui.com/about)

The following disclaimer is required by JScape: Portions of this product are Copyright © JScape. All rights reserved.

The following disclaimer is required by JScript Hashtable: Copyright © 2003 Michael Synovic This is a Javascript implementation of the Java Hashtable object.

The following disclaimer is required by JScript Table Sorter: © 2010 Michael Leigeber. All Rights Reserved This script has been tested in all major browsers and is available free of charge for both personal or commercial projects under the creative commons license.

The following disclaimer is required by Libjpeg-turbo: libjpeg-turbo is Copyright © 1998-2005 Julian Smart, Robert Roebling et al and is licensed under the terms of the wxWindows Library Licence, Version 3.1, which is included with this product.

The following disclaimer is required by Limited Concurrency Task Scheduler: Portions Copyright © Microsoft Corporation Inc. All Rights Reserved. Microsoft Limited Public License version 1.1

The following disclaimer is required by MediaLooks:

80

Portions of this product are Copyright MediaLooks. All rights reserved.

The following disclaimer is required by Microsoft Corporation: Portions of this product are Copyright © Microsoft Corporation. All rights reserved.

The following disclaimer is required by Microsoft.Net Framework Base Class Libraries, BigRational: Portions of this product are Copyright © Microsoft Corporation. All rights reserved.

The following disclaimer is required by Microsoft Prism: Microsoft patterns & practices License; Creative Commons Attribution License 3.0 Unported

The following disclaimer is required by MOG Solutions: Portions of this product are Copyright © MOG Solutions. All rights reserved.

The following disclaimer is required by MPEG Audio: MPEG Audio technology may be included with this product. Audio MPEG, Inc. and S.I.SV.EL., S.P.A. require this notice: This product contains MPEG Audio technology licensed by Audio MPEG and SISVEL only for use in accordance with Avid's EULA. Last Updated: March 2010

The following disclaimer is required by MSTS-adapter: Copyright © 2008 Will Ballard / Duane Fields / ExactMagic

The following disclaimer is required by MVVM Lite: Copyright (c) 2009 - 2011 Laurent Bugnion

The following disclaimer is required by nUnit: Copyright (c) 2004-2009 Charlie Poole

The following disclaimer is required by Obout Software: Portions of this product are Copyright © Obout Software. All rights reserved.

The following disclaimer is required by OpenSSL: This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)

The following disclaimer is required by PixieLib: Portions of this program borrowed from PixieLib.NET, Copyright 2005 Paul DiLascia.

The following disclaimer is required by FilterCode: Copyright © 2011 phpleo

The following disclaimer is required by PlainIt Works JeeGooContext: Copyright © 2009 - 2010 by Erik van den Berg

The following disclaimer is required by Prototype JavaScript Framework: Copyright © 2005-2008 Sam Stephenson

The following disclaimer is required by ScintillaNET: Copyright © 1998-2006 by Neil Hodgson ([email protected]) All Rights Reserved ScintillaNET bindings are Copyright © 2002-2006 by Garrett Serack ([email protected]) All Rights Reserved

The following disclaimer is required by RabbitMQ: Copyright © 2013 GoPivotal, Inc. All rights reserved

The following disclaimer is required by Script.Aculo.Us Web 2.0 JavaScript: Copyright © 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)

The following disclaimer is required by Search Highlighter: Copyright (c) 2002, 2007, 2008 Stuart Langridge ([email protected])

The following disclaimer is required by Silverlight Menu: Microsoft Public License (Ms-PL) http://sl3menu.codeplex.com/license

81

The following disclaimer is required by Silverlight Serializer: Copyright © Mike Talbot, Microsoft Public License (Ms-PL)

The following disclaimer is required by tipsy: Copyright (c) 2008 Jason Frame ([email protected]). The software and documentation is released under the MIT license. https://github.com/jaz303/tipsy/blob/master/LICENSE

The following disclaimer is required by WPF Themes: Licensed under the Microsoft Public License (Ms-PL) http://wpf.codeplex.com/license

The following disclaimer is required by WPF Toolkit: Microsoft Public License (MS-PL)

The following disclaimer is required by Xmlextras.js: Copyright © 2006 Erik Arvidsson Licensed under the Apache License, Version 2.

The following disclaimer is required by XNView: Portions of this product are Copyright © XNView. All rights reserved.

Attn. Government User(s). Restricted Rights Legend U.S. GOVERNMENT RESTRICTED RIGHTS. This Software and its documentation are “commercial computer software” or “commercial computer software documentation.” In the event that such Software or documentation is acquired by or on behalf of a unit or agency of the U.S. Government, all rights with respect to this Software and documentation are subject to the terms of the License Agreement, pursuant to FAR §12.212(a) and/or DFARS §227.7202-1(a), as applicable.

Trademarks 003, 192 Digital I/O, 192 I/O, 96 I/O, 96i I/O, Adrenaline, AirSpeed, ALEX, Alienbrain, AME, AniMatte, Archive, Archive II, Assistant Station, AudioPages, AudioStation, AutoLoop, AutoSync, Avid, Avid Active, Avid Advanced Response, Avid DNA, Avid DNxcel, Avid DNxHD, Avid DS Assist Station, Avid Ignite, Avid Liquid, Avid Media Engine, Avid Media Processor, Avid MEDIArray, Avid Mojo, Avid Remote Response, Avid Unity, Avid Unity ISIS, Avid VideoRAID, AvidRAID, AvidShare, AVIDstripe, AVX, Beat Detective, Beauty Without The Bandwidth, Beyond Reality, BF Essentials, Bomb Factory, Bruno, C|24, CaptureManager, ChromaCurve, ChromaWheel, Cineractive Engine, Cineractive Player, Cineractive Viewer, Color Conductor, Command|24, Command|8, Control|24, Cosmonaut Voice, CountDown, d2, d3, DAE, D-Command, D-Control, Deko, DekoCast, D-Fi, D-fx, Digi 002, Digi 003, DigiBase, Digidesign, Digidesign Audio Engine, Digidesign Development Partners, Digidesign Intelligent Noise Reduction, Digidesign TDM Bus, DigiLink, DigiMeter, DigiPanner, DigiProNet, DigiRack, DigiSerial, DigiSnake, DigiSystem, Digital Choreography, Digital Nonlinear Accelerator, DigiTest, DigiTranslator, DigiWear, DINR, DNxchange, Do More, DPP-1, D-Show, DSP Manager, DS-StorageCalc, DV Toolkit, DVD Complete, D-Verb, Eleven, EM, Euphonix, EUCON, EveryPhase, Expander, ExpertRender, Fader Pack, Fairchild, FastBreak, Fast Track, Film Cutter, FilmScribe, Flexevent, FluidMotion, Frame Chase, FXDeko, HD Core, HD Process, HDpack, Home-to-Hollywood, HYBRID, HyperSPACE, HyperSPACE HDCAM, iKnowledge, Image Independence, Impact, Improv, iNEWS, iNEWS Assign, iNEWS ControlAir, InGame, Instantwrite, Instinct, Intelligent Content Management, Intelligent Digital Actor Technology, IntelliRender, Intelli-Sat, Intelli-sat Broadcasting Recording Manager, InterFX, Interplay, inTONE, Intraframe, iS Expander, iS9, iS18, iS23, iS36, ISIS, IsoSync, LaunchPad, LeaderPlus, LFX, Lightning, Link & Sync, ListSync, LKT-200, Lo-Fi, MachineControl, Magic Mask, Make Anything Hollywood, make manage move | media, Marquee, MassivePack, Massive Pack Pro, Maxim, Mbox, Media Composer, MediaFlow, MediaLog, MediaMix, Media Reader, Media Recorder, MEDIArray, MediaServer, MediaShare, MetaFuze, MetaSync, MIDI I/O, Mix Rack, Moviestar, MultiShell, NaturalMatch, NewsCutter, NewsView, NewsVision, Nitris, NL3D, NLP, NSDOS, NSWIN, OMF, OMF Interchange, OMM, OnDVD, Open Media Framework, Open Media Management, Painterly Effects, Palladium, Personal Q, PET, Podcast Factory, PowerSwap, PRE, ProControl, ProEncode, Profiler, Pro Tools, Pro Tools|HD, Pro Tools LE, Pro Tools M-Powered, Pro Transfer, QuickPunch, QuietDrive, Realtime Motion Synthesis, Recti-Fi, Reel Tape Delay, Reel Tape Flanger, Reel Tape Saturation, Reprise, Res Rocket Surfer, Reso, RetroLoop, Reverb One, ReVibe, Revolution, rS9, rS18, RTAS, Salesview, Sci-Fi, Scorch, ScriptSync, SecureProductionEnvironment, Serv|GT, Serv|LT, Shape-to-Shape, ShuttleCase, Sibelius, SimulPlay, SimulRecord, Slightly Rude Compressor, Smack!, Soft SampleCell, Soft-Clip Limiter, SoundReplacer, SPACE, SPACEShift, SpectraGraph, SpectraMatte, SteadyGlide, Streamfactory, Streamgenie, StreamRAID, SubCap, Sundance, Sundance Digital, SurroundScope, Symphony, SYNC HD, SYNC I/O, Synchronic, SynchroScope, Syntax, TDM FlexCable, TechFlix, Tel-Ray, Thunder, TimeLiner, Titansync, Titan, TL Aggro, TL AutoPan, TL Drum Rehab, TL Everyphase, TL Fauxlder, TL In Tune, TL MasterMeter, TL Metro, TL Space, TL Utilities, tools for storytellers, Transit, TransJammer, Trillium Lane Labs, TruTouch, UnityRAID, Vari-Fi, Video the Web Way, VideoRAID, VideoSPACE, VTEM, Work-N-Play, Xdeck, X-Form, Xmon and XPAND! are either registered trademarks or trademarks of Avid Technology, Inc. in the United States and/or other countries.

Adobe and Photoshop are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. Apple and Macintosh are trademarks of Apple Computer, Inc., registered in the U.S. and other countries. Windows is either a registered trademark or trademark of Microsoft Corporation in the United States and/or other countries. All other trademarks contained herein are the property of their respective owners.

Avid Interplay | MAM Process Reference v5.5, Created 3/17/2016. This document is distributed by Avid in online (electronic) form only, and is not available for purchase in printed form.