Trigger Reference

This section defines the triggers installed to work with some of the components of ENOVIA Business Process Services.

Triggers are installed with the applications and common components; for Version 10.8, V6R2009 and higher triggers are installed with ENOVIA Business Process Services. For lists of triggers installed with an application, see that application's Administrator's Guide.

Utility Trigger Programs

This section describes these trigger programs used by many ENOVIA products, called utility trigger programs.

These programs are installed with ENOVIA Business Process Services. For each program, the section lists the purpose of the program, accepted argument inputs, processing details, and returns. The procedure for specifying input values is the same for all trigger programs and is described in Modifying Inputs and Execution Sequence for Trigger Programs.

To see which trigger programs are used by an ENOVIA product and to find out which administrative object contains the trigger, see the Administrator Guide for the product.

Make sure you use the symbolic name for any administrative objects that you specify as an argument input. For example, if you need to specify a relationship for an argument input, use the symbolic name for the relationship and not the standard name (relationship_ECAffectedItem instead of EC Affected Item).

Previous Revision Promotion

The trigger program eServicecommonPreviousRevisionPromotion_if.tcl is an action trigger for a promote event.

The program promotes to a specified state the previous revision of the object that is being promoted. This ensures that when an object is promoted to a particular state, its previous revision is also promoted. If the program encounters a trigger attached to the state to which the revision is getting promoted, the program presents an error message.

Arguments:

Arguments:Argument Argument Name Description and Inputs

1

sState

The state to which the program should promote the previous revision. The program gets the state names from the policy that governs the object. The program accepts three values for this argument:

next--Indicates the previous revision for the object has to be promoted to its next state regardless of the current state of the object being promoted.

last--Indicates the previous revision has to be promoted to its last state in the lifecycle.

[specific state]--Indicates the revision has to be promoted to that state.

If null is passed as the input, the program takes the current state of the object being promoted as the state to which the revision should be promoted.

Returns:

0 if the previous revision is successfully promoted; otherwise 1 and an error message.

Required Connection Check

This trigger program eServicecommonTrigcRequiredConnection_if.tcl checks to see if an object has specific connections.

This table shows the kinds of information the program can check for:

Does the selected object have any: For example:

Connections with other objects.

Does the object have any relationships?

Connections with other objects in one direction.

Does the object have any relationships in which the object is on the From end?

Connections with other objects through specified relationships.

Does the object have any connections to other objects with the Includes Part relationship.

Relationships with objects of specified types.

Does the object have any connections to a Part object?

You can combine the checks listed above. For example, you can have the program check if the object has a connection in which the object is on the From end of any Supplier Response relationship and in which the connected object is an Initial Quotation type.

Arguments:

Argument Argument Name Description and Inputs

1

Direction

The direction(s) the program should search from the selected object to connected objects. The program accepts three values:

from--Search only connections in which the selected object is on the From side of the relationship. For example, suppose three objects are connected like this:

Object 1 --> Object 2 --> Object 3

If the direction input is "from" and Object 2 is the selected object, then the program only considers the connection between Objects 2 and 3.

to--Search only connections in which the selected object is on the to side of the relationship.

"" (blank)--Search all connections, regardless of the direction.

2

RelationList

The relationships the program should check for, formatted as a comma-delimited list of symbolic names for the relationships. For example, to check for the Includes Part and Supplier Response relationships, the input would be:

relationship_IncludesPart,relationship_SupplierResponse

3

TypeList

The types the program should check for, formatted as a comma-delimited list of symbolic names for the types. For example, to check for connections with Initial Quotation and Final Quotation objects, the input would be:

type_IntitialQuotation,type_FinalQuotation

This table shows how to configure the argument inputs depending on the kind of check you want to perform.

To check for: Use these inputs:
Direction RelationList TypeList

Any connection

blank

blank

blank

Any connection in specified direction

To or From

blank

blank

Any connection to objects of specified type

To, From, blank

blank

specified

Any connection of specified relationship

To, From, blank

specified

blank

Any connection of specified relationship to objects of specified type

To, From, blank

specified

specified

Returns:

0 if at least one specified connection exists. Otherwise the program returns 1 along with an error message indicating no connection was found and giving details of the specified connection.

Required File Check

The program eServicecommonTrigcRequiredFormat_if.tcl can check to see if any files are checked in to the:


  • Selected object
  • Selected object for the default format
  • Selected object for a specified format

Arguments:

Argument Argument Name Description and Inputs

1

sSearchKey

Specifies the format(s) to check for. The argument accepts three values:

list--Check formats listed in lFormatPropertyList argument.

default--Check only default format of selected object.

all--Check all the formats supported by selected object.

2

lFormatPropertyList

This argument has meaning only if sSearchKey is set to "list". The argument accepts a list of the symbolic names for of the formats to check for. For example, {format_Word format_generic ?}.

3

bSizeCheck

Checks whether the size of checked in files is 0 bytes. The argument accepts two values:

True--The program checks the size of all the checked files (of the format specified by the sSearchKey argument) and fails if all the checked in files are 0 bytes.

False--The program does not check the file sizes.

Returns:


  • If bSizeCheck is False and:

The program finds a checked in file of the specified format, it returns 0 for success.

The program does not find a checked in file of the specified format, it returns 1 along with an MQL message that explains the reason for failure.


  • If bSizeCheck is True and:

The program finds a checked in file of the specified format and the checked in files are not 0 bytes, it returns 0 for success.

The program does not find a checked in file of the specified format or the checked in files are all 0 bytes, it returns 1 along with an MQL message that explains the reason for failure.

Check Relative State

The trigger program eServicecommonCheckRelState_if.tcl is a check trigger for a promote event. It searches a specified relationship looking for a specified object type and determines if all of the objects found are at the minimum acceptable state that has been specified.

Arguments:

Argument Argument Name Description and Inputs

1

sRelationship

The relationship type to search for. If the argument input is null, the program checks all the relationships in the direction specified for sDirection. If the specified relationship is not assigned to the target object type, the program returns a FAIL.

2

sTargetObject

The object type to search for at the other end of the relationship. If null, the program checks all the objects that can be reached through the relationship specified for sRelationship.

3

sTargetState

The state the target objects should be in. If the specified state is not a valid state defined for the target object, then the program returns a FAIL.

4

sDirection

The direction to search for. The program accepts three values: TO, FROM, BOTH. If null, the program searches in the FROM direction.

5

sComparisonOperator

The operator the program should use for checking the target state. The values are:

LT (Less Than)--The program returns a FAIL if the target object is in a state greater than the target state.

GT (Greater Than)--The program returns a FAIL if the target object is in a state less than the specified state.

EQ (Equal)--The program returns a FAIL if the target object is in a state other than the specified state.

LE (Less Than Or Equal)--The program returns a FAIL if the target object is in a state greater than or equal to the specified state.

GE (Greater Than Or Equal)--The program returns a FAIL if the target object is in a state less than or equal to the specified state.

NE (Not Equal)--The program returns a FAIL if the target object is in the specified state.

If null, the program uses EQ.

6

sObjectRequirement

A flag that specifies whether the object is required or optional. The values are: Required and Optional. If null, the program uses Optional.

Returns:

Pass if all objects are in the minimum required state. Otherwise, the program returns fail. The specific conditions for passing and failing depend on the Comparison Operator.

For example, suppose the comparison operator is LT (less than) and the target object has states defined as A, B, and C.

If the target state is: And the current state is: The program returns:

A

A, B, C

fail

B

A

pass

B

B, C

fail

C

A, B

pass

C

C

fail

Now suppose the comparison operator is EQ (equals).

If the target state is: And the current state is: The program returns:

A

A

pass

A

B, C

fail

B

A, C

fail

B

B

pass

C

C

pass

C

A, B

fail

Valid Revision Sequence

The program eServiceValidRevisionChange_if.tcl is a check trigger for a create event. This program ensures the revision sequence is maintained for a business object by not allowing an object to be created if there is an existing object of the same type and name and of any revision.

Arguments:

The program accepts no arguments.

Returns:

If the program finds no object of the same type and name (with any revision), it returns zero and the object is created. If the program finds an object of the same type and name with any revision, the program returns a non-zero value, prevents the create event, and shows a message telling the user to use Object>New>Revision instead of Object>New>Original.

Relative Float Action

The program eServicecommonRelativeFloatAction_if.tcl is a promote action trigger. When an object is promoted, the program gets the previous revision of the object and floats all the specified relationships in the specified direction.

Arguments :

Argument Argument Name Description and Inputs

1

sRel

The relationship to float. Must be the symbolic name (for example, relationship_PartRule).

2

sDirection

The relationship direction to float. Accepts three values: from, to and both.

3

sOperation

A flag that specifies which revision of the object to look for. It accepts two values: PREVIOUS, LATEST

4

sState

If argument 3 is LATEST, this argument should specify the state in which the latest revision should be. It is passed in as the symbolic name for a state (for example, state_Release).

Processing:

Suppose there are four versions for an object A: A1, A2, A3 and A4. The trigger gets fired when A4 is promoted to its next state. If the third argument input is LATEST, the trigger program finds the LATEST revision for A that is in the state specified by the fourth argument. If the third argument is PREVIOUS, the program gets the previous revision, which is A3. It then traverses through the relationship specified in argument 1 in the direction specified by argument 2 and gets all the connected objects, then connects them to A4.

Set Originator Attribute

The Java Program Object emxcommonSetOriginator_if is an action program for create and revise events. The program sets the Originator attribute value to the name of the current user. The program looks up the actual Originator attribute name because the customer could change name of the attribute.

When the trigger program runs, it retrieves the necessary environment variables, such as TYPE, NAME, REVISION, VAULT, USER, EVENT, NEWREV, and APPREALUSER. Because creation is often done as the Shadow Agent person, the program checks the environment variable APPREALUSER. If set, it is used instead of USER for setting the originator.

Two eService Trigger Program Parameters objects that call this trigger program are installed with ENOVIA Business Process Services. These objects call the program whenever any type is created or modified. See Triggers for All Types.

Arguments:

Argument Argument Name Description and Inputs

1

attrName

The symbolic name for the attribute that is to be populated.

Returns:

0 for success; non-zero for failure.

Triggers for All Types

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

T: TypeAllCreateAction

R: PopulateOriginator

emxTriggerManager, which calls emxcommonSetOriginator_if

For information on this trigger program, see Set Originator Attribute.

Store user's name in Originator attribute

T:TypeAllReviseAction

R: Copy Images

emxImageManager

copyImagesOnRevise

When an object is revised, any connected images are copied to the new revision.

T:TypeAllReviseAction

R: PopulateOriginator?

emxTriggerManager, which calls emxcommonSetOriginator_if

For information on this trigger program, see Set Originator Attribute.

Store user's name in Originator attribute

Triggers for Decisions

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N:APPDecisionReleaseNotificationAction

R:APPDecisionReleaseEvent

emxSubscriptionUtil; see Configuring Subscription Events

Sends a notification to subscribed users when a decision is promoted from the Active or Release states.

N:APPDecisionReviseNotificationAction

R:APPDecisionReviseEvent

emxSubscriptionUtil; see Configuring Subscription Events

Sends a notification to subscribed users when a decision is revised.

N:APPDecisionOwnerChangeNotificationAction

R:APPDecisionOwnerChangeEvent

emxSubscriptionUtil; see Configuring Subscription Events

Sends a notification to subscribed users when the owner of a decision is changed.

N:APPDecisionAttachedToObjectNotificationAction

R:APPDecisionAttachedToObjectEvent

emxSubscriptionUtil; see Configuring Subscription Events

Sends a notification to subscribed users when a decision is attached to an object.

Triggers for DOCUMENTS

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N: TypeDOCUMENTSModifyAction

R: Doc Modified

emxNotificationUtil

objectNotification method

Sends a notification to subscribed users when the listed event (as indicated by the revision) occurs for an object in the DOCUMENTS type hierarchy.

N: TypeDOCUMENTSDeleteCheck

R: Doc Deleted

N: TypeDOCUMENTSReviseAction

R: Doc Revised

N: TypeDOCUMENTSCheckoutAction

R: Doc Content Checkout

N: TypeDOCUMENTSCheckinCheck

R: Non Common Doc Content Added

N: TypeDOCUMENTSCheckinCheck

R: Non Common Doc Content Modified

T: TypeDocumentDeleteCheck

R: Unfloat Relationships

eServicecommonTrigcUnfloatRels_if.tcl

When the latest revision of a document is deleted, this trigger fires and moves all connections from the deleted document to the previous revision. For example, if the deleted version has messages and subscriptions connected to it, these items are connected to the previous version to prevent losing messages and subscriptions when a version is deleted. If there is no previous version, then the connected items are lost.

T: TypeDocumentReviseAction

R: FloatRouteDocument

emxDocument

floatRouteDocument method

When a new revision of a document is checked in, this trigger connects the new revision to routes that contain the previous document revision and disconnects the previous revision. The trigger makes these changes only for routes that are in the Define or In Process states.

T: TypeRelationNotificationAction

R: IEFNotification

IEFTransactionNotificationUtil

transactionNotifications

Used for SolidWorks notifications only when a transaction requires a notification. Installed in the inactive state and activated when SolidWorks integration is installed.

Triggers for Engineering Changes

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N: PolicyEngineeringChangeStateEvaluatePromoteAction

R: CreateReviewerRoute

emxCommonEngineeringChange

createRoute method

Creates a state-based route using the Route Template connected to the Engineering Change object by the EC Reviewer List relationship. If there is no Reviewer List attached to it, a default route with no tasks or persons attached to it is created.

N: PolicyEngineeringChangeStateReviewPromoteCheck

R: CheckIncompleteRoute

emxCommonEngineeringChange

checkIncompleteRoute method

Checks for any unfinished review routes when and engineering change is manually promoted to the Approved state by owner.

N: PolicyEngineeringChangeStateReviewPromoteAction

R: NotifyOnApproval

emxCommonEngineeringChange

notifyOnApproval method

Sends the notification to the owner and assignees of the Engineering Change that EC has been approved

N: PolicyEngineeringChangeStateApprovedPromoteAction

R: AutoReviseAffectedItems

emxCommonEngineeringChange

autoReviseAffectedItems method

Automatically revises the Affected Items if following two conditions are satisfied:

The attributes on the relationship EC Affected Item are as follows: Requested Change = Release

The affected item is revisionable and the next revision does not exist. These new revisions will be connected to the Engineering Change as Implemented Items.

N: PolicyEngineeringChangeStateValidatePromoteCheck

R: CheckTestCase

emxCommonEngineeringChange

checkTestCase method

Checks for at least one Test Case connected to EC if the Force Validation attribute is enabled.

N: PolicyEngineeringChangeStateValidatePromoteCheck

R: CheckValidationStatus

emxCommonEngineeringChange

checkValidationStatus method

Checks whether the last Test Execution Object is in 100% passed (i.e "Percentage passed" attribute is 100).

N: PolicyEngineeringChangeStateValidatePromoteAction

R: NotifyOwnerOnPromote

emxCommonEngineeringChange

notifyOwnerOnPromote method

Notifies the EC Owner if the promotion is done by QE Manager.

N: PolicyEngineeringChangeStateValidatePromoteAction

R: CreateApprovalRoute

emxCommonEngineeringChange

createApprovalRoute method

Creates a state-based route using the Route Template connected to the Engineering Change object by the "Object Route" relationship with the "Route Base Purpose" as "Approval". If there is no Approval List connected to the EC then a default route will be created with no tasks.

N: PolicyEngineeringChangeStateFormalApprovalPromoteCheck

R: CheckIncompleteRoute

emxCommonEngineeringChange

checkIncompleteRoute method

Checks for any unfinished approval routes when the EC is manually promoted to the Complete state by the owner.

N: PolicyEngineeringChangeStateFormalApprovalPromoteAction

R: NotifyDistributionListMembers

emxCommonEngineeringChange

notifyDistributionListMembers method

Using the related Member List all the members will be notified that the EC has been approved.

N: PolicyEngineeringChangeStateFormalApprovalPromoteAction

R: ReleaseImplementedItems

 

Promotes all the implemented items to the release state when the EC is promoted to the complete state.

N: TypeEngineeringChangeChangeOwnerAction

R: NotifyOwner

emxCommonEngineeringChange

notifyOwner method

When the owner of the Engineering Change is changed, sends a notification to the new owner.

N: RelationshipECReportedAgainstCreateAction

R: NotifyReportedAgainstOwner

 

Notifies the owner of the Reported Against Item when the Reported Against Item is connected to the EC.

N: RelationshipECAffectedItemCreateAction

R: NotifyAffectedItemOwner

 

Notifies the owner of the Affected Item when the Affected Item is connected to the EC.

N: RelationshipECImplementedItemCreateAction

R: NotifyImplementedItemOwner

 

Notifies the owner of the Implemented Item when the Implemented Item is connected to the EC.

N: RelationshipAssignedECCreateAction

R: NotifyAssignee

 

Notifies when the new Assignee is added to the Engineering Change.

Triggers for Folders and Content

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

T: RelationshipVaultedDocumentsRev2CreateAction

R: emxWorkspaceConstantsJPO

emxWorkspaceConstants

inheritAccess method

When an object is added to a workspace, all users who have access to the workspace are granted access to the object.

T: RelationshipVaultedDocumentsRev2DeleteAction

R: emxWorkspaceConstantsJPO

emxWorkspaceConstants

revokeAccess method

When an object in a workspace is removed, this trigger revokes the access to that object from all workspace users.

T: TypeWorkspaceVaultGrantAction

R: emxWorkspaceFolderJPO

emxWorkspaceFolder

grantWorkspaceFolderAccess method

When a person is granted access to a folder, this trigger grants the person access to the folder's content and its subfolders.

T: RelationshipVaultedObjectsCreateAction

R: UpdateCountOnConnectDisconnect

eServiceUpdateCountOnConnectDisconnect.tcl

Updates the content count shown in the expandable list for folders and subfolders whenever a document or non-document (RFQs, Quotations, etc.) item is added or removed from a folder or subfolder. The count includes all subfolders under the folder.

T: RelationshipVaultedObjectsCreateAction

R: emxWorkspaceConstantsJPO

emxWorkspaceConstants

inheritAccess method

When an item is added to a folder, this trigger grants all accesses for the folder to the added item.

T: RelationshipVaultedDocumentsDeleteAction

R: UpdateCountOnConnectDisconnect

eServiceUpdateCountOnConnectDisconnect.tcl

When an item is removed from a folder, this trigger revokes granted accesses for the item.

T: RelationshipVaultedDocumentsDeleteAction

R: emxWorkspaceconstantsJPO

emxWorkspaceConstants

revokeAccess method

When an object in a workspace is removed, this trigger revokes the access to that object from all workspace users.

T: RelationshipSubVaultsCreateAction

R: emxWorkspaceConstantsJPO

emxWorkspaceConstants

inheritAccess method

When a subfolder is added to a folder, this trigger grants all accesses inherited from the parent folder.

T: TypeRelationNotificationAction

R: IEFNotification

IEFTransactionNotificationUtil

transactionNotifications

Used for SolidWorks notifications only when a transaction requires a notification. Installed in the inactive state and activated when SolidWorks integration is installed.

Triggers for Image Holders

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N: TypeImageHolderCheckinAction

R:UploadProcessCADFile

emxImageManager

uploadProcessCADFiles method

When a CAD format file is checked into an Image Holder object, generates or fetches a jpg image to check into the appropriate formats.

If a .cgr file is checked in, it is converted to .3dxml which creates a zipped vresion of the file and contains manifest.xml, .3Drep file (containing the cgr file contents), and .3dxml file with the header information. The default 3D image is checked into the appropriate image formats.

If a .3dxml file with an embedded jpg is checked in, the embedded jpg is fetched using tar/unzip, and the jpg is checked into the appropriate image formats.

If a .3dxml file without an embedded jpg is checked in, then the default 3D image as defined in the emxComponents.properties file is checked into the appropriate image formats.

N: RelationshipImageHolderDeleteAction

R: Delete Image Holder Object

emxImageManager

deleteImageHolder method

Deletes the Image Holder object when the object it is associated with is deleted.

Triggers for Issues

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N: TypeIssueModify

R: NotifyOnModify

emxNotificationUtil

objectNotification method

Sends a notification when the issue is modified.

T: TypeIssueChangeOwnerAction

R: NotificyOwner

emxCommonIssue

notfiyOwner method

When the owner of an issue is changed, sends a notification to the new owner.

T: PolicyIssueStateCreatePromoteCheck

R: CheckEstimatdeDates

emxCommonIssue

checkEstimatedDates method

Verifies that the Estimated Start Date and Estimated End Date attributes have been populated prior to promoting the Issue.

T: PolicyIssueStateCreatePromoteAction

R: NotifyOriginator

emxCommonIssue

notifyOriginator method

When an issue is promoted from the Create state, sends a notification to the issue owner.

T: PolicyIssueStateAssignPromoteAction

R: SetActualStartDate

emxCommonIssue

setActualStartDate method

When an issue is promoted from Assign to Active, sets the value of the Actual Start Date attribute to the current date.

T: PolicyIssueStateActiveDemoteAction

R: RemoveActualStartDate

emxcommonIssue

removeActualStartDate method

If an issue is demoted from the Active to Assign state, the Actual Start Date attribute is cleared.

T: PolicyIssueStateReviewPromoteOverride

R: SetActualEndDate

emxCommonIssue

setActualEndDate method

When promoted from Review to Close, enters the current date as the value for the Actual End Date attribute.

T: PolicyIssueStateReviewPromoteCheck

R: CheckCloseAttributes

emxCommonIssue

checkCloseAttributes method

When promoted from Review to Close, verifies that all required attributes have been entered.

T: PolicyIssueStateReviewPromoteAction

R: SendClosingMail

emxCommonIssue

sendClosingMail method

When promoted to Close, a notification is sent to the issue originator

T: PolicyIssueStateCloseDemoteAction

R: RemoveActualEndDateNotifyOriginator

emxCommonIssue

removeActualEndDateNotifyOriginator

When demoted from Close to Review, the value for the Actual End Date attribute is cleared and a notification is sent to the issue originator.

Triggers for Meetings

eService Trigger Program Parameters Object Name and Revision Trigger Program and JPO Method Description of Action

T: PolicyMeetingStateCreatePromoteAction

eServicecommonTrigaNotifyMeetingInvitation_if.tcl

When a person promotes a meeting to the Scheduled state, the system sends email to each attendee. The email lists the meeting host (person who scheduled the meeting), meeting description, and the meeting date and time.

T: PolicyMeetingStateInProgressPromoteAction

eServicecommonTrigaCleanupMeetingConnections_if.tcl

When a meeting ends, the system promotes it from In Progress to Complete.

Triggers for Organizations, Companies, Business Units, and Locations

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N: TypeCompanyCreateAction

R: Set Company Key

emxKeyUtil

generateAndSetKey method

Create unique company key for company and set as Primary Key.

N: TypeCompanyChangeNameAction

R: RenameAdminRole

emxOrganization

updateAdminRoleForOrganization method

Whenever the name of the company, business unit or department is modified, changes the administrative role created for the company.

N: TypeCompanyChangeNameAction

R: Update Company Group Name

eServicecommonTrigaSyncAdminObjectName_if.tcl

Whenever the name of the company, business unit or department is modified, changes the group name to match (if configured).

N: TypeOrganizationCreateOverride

R: CreateAdminRole

emxOrganization:createAdminRoleForOrganization

When a Company, Business Unit, or Department is created, this trigger creates a role with the name of the object that fired the trigger. For example, if a Department named Engineering is created, a role named Engineering is also created.

N: TypeOrganizationChangeNameAction

R: RenameAdminRole

emxOrganization:updateAdminRoleForOrganization

When the name of a Company, Business Unit, or Department object is changed, this trigger changes the name of the associated role.

N: RelationshipOrganizationLocationCreateAction

R: Set Company Key

emxKeyUtil

setToKey method

Set company key as Primary Key.

N: RelationshipDivisionCreateAction

R: Set Company Key

emxKeyUtil

setToKey method

Set company key as Primary Key.

N: RelationshipDivisionCreateAction

R: InheritParentAdminRole

emxOrganization:inheritParentAdminRoleOfOrganization

When a relationship is made between a Company/Business Unit (the parent) and a Business Unit (the child), this trigger makes the role for the Company/Business Unit the parent of the role for the child Business Unit. For example, if Company ABC is connected to Business Unit DEF, then role ABC becomes the parent of role DEF.

N:RelationshipCompanyDepartmentCreateAction

R: InheritParentAdminRole

emxOrganization:inheritParentAdminRoleOfOrganization

When a relationship is made between a Company/Business Unit (the parent) and a Department (the child), this trigger makes the Admin Role for the Company/Business Unit the parent of the Admin Role for the child Department. For example, if Company ABC is connected to Department Engineering, then role ABC becomes the parent of role Engineering.

N; TypeOrganizationCreateOverride

R: CreateAdminmxUserOrganization

emxOrganization

createAdminUserOrganizationForOrganization

When an organization business object is created, this trigger creates an organization administrative object with the same name.

Used with VPM; installed as inactive.

N: RelationshipDivisionCreateAction

R: InheritParentAdminmxUser

emxOrganization

inheritParentAdminUserOrganizationOfOrganization

When a division is created for (and thus connected to) an organization, this trigger creates a child mxUser of the parent's mxUser so that the mxUser hierarchy matches the organization hierarchy

Used with VPM; installed as inactive.

N:RelationshipCompanyDepartmentCreateAction

R: InheritParentAdminmxUser

emxOrganization

inheritParentAdminUserOrganizationOfOrganization

When a business unit or department is created for (and thus connected to) an organization, this trigger creates a child mxUser of the parent's mxUser so that the mxUser hierarchy matches the organization hierarchy.

Used with VPM; installed as inactive.

N: TypeOrganizationChangeNameAction

R: RenameAdminmxUser

emxOrganization

updateAdminUserOrganizationForOrganization

When you change the name of an organization, this trigger also changes the associated mxUser object to match.

Used with VPM; installed as inactive.

N: RelationshipCollaborationRequestCreateAction

R: Notify Collaboration

eServicecommonTrigaNotifyCollaboration_if.tcl

When a Company Representative requests to collaborate with another company, the system connects the companies using the Collaboration Request relationship. When this relationship is created, the system fires a trigger which sends an email to:

all Company Representatives for the company that is being invited to collaborate; the email says there is a collaboration request from the requesting company

all Company Representatives for the company making the request; the email confirms that an email has been sent to the other company

N: RelationshipCollaborationRequestDeleteAction

R: Notify Collaboration

eServicecommonTrigaNotifyCollaboration_if.tcl

When a Company Representative withdraws a request to collaborate with another company or the invited company rejects the invitation, the system sends an email to Company Representatives for both companies; the email says the collaboration request has been withdrawn/rejected.

N: RelationshipCollaborationPartnerCreateAction

R: Notify Collaboration

eServicecommonTrigaNotifyCollaboration_if.tcl

When a company accepts a request to collaborate with another company, the system connects the companies with the relationship Collaboration Partner. This causes the system to fire a trigger that sends an email to:

all Company Representatives for the company that made the request; the email says the invited company has accepted the request

all Company Representatives for the company that accepted the request; the email confirms that the request has been accepted

N: RelationshipCollaborationPartnerDeleteAction

R: Notify Collaboration

eServicecommonTrigaNotifyCollaboration_if.tcl

When a Company Representative dissolves a collaboration partnership, the system sends an email to:

all Company Representatives for the partner company; the email says the collaboration partner has been removed and specifies which company initiated the action

all Company Representatives for the company that dissolved the partnership; the email confirms that the partnership has been dissolved

Triggers for Packages

eService Trigger Program Parameters Object Trigger Program and JPO Method Description of Action

N: PolicyPackageStateStartedPromoteCheck

R: StateStartedPromoteCheck

eServiceCheckRoutes_if.tcl

Prevents promotion if the package is in an unfinished route. This trigger is only used if the route creator specified the state as a block promotion state for the package.

Triggers for Persons

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N: TypePersonChangeNameAction

R: syncPersonAdminObject

emxPerson

syncPersonAdminObject method

When the name of a Person business object changes, the name of the corresponding person administration object is updated to match. If the Full Name format, as defined in emxFramework.FullName.Format, contains <User Name>, update the Full Name field.

*Input Arguments:

Arg[0] = ${EVENT}

Arg[1] = ${NAME}

Arg[2] = ${NEWNAME}

N: TypePersonChangeVaultAction

R: Action trigger fired for Person vault change

emxperson

updateAdminPersonDefaultVault method

When the business object person's vault is changed, this trigger changes the administrative object for that person to match.

N: TypePersonModifyAttributeOverride

R: Override Trigger fired for Attribute change on Person

emxPerson

overrideAdminPersonAttributes method

Updates the attributes of an administrative Person object to match the values entered for the business Person object.

N: TypePersonModifyAttributeAction

R: Action Trigger fired for Attribute change on Person

emxPerson

updateAdminPersonAttributes method

Updates the attributes of an administrative Person object to match the values entered for the business Person object.

N: AttributeFirstNameModifyOverride

R: syncPersonAdminObject

emxPerson

syncPersonAdminObject method

If a person's First Name is changed and the Full Name format, as defined in emxFramework.FullName.Format, contains <First?Name>, update the Full Name field on the person administration object.

*Input Arguments:

Arg[0] = ${EVENT}

Arg[1] = ${NAME}

Arg[2] = ''

Arg[3] = ${ATTRNAME}

Arg[4] = ${ATTRVALUE}

Arg[5] = ${NEWATTRVALUE}

Input arguments for the person name change triggers:

Event is changeName or modifyAttribute

Name is the person business object name

AttrName is Last Name or First Name

AttrValue is value on the Last Name or First Name.

N: AttributeLastNameModifyOverride

R: syncPersonAdminObject

emxPerson

syncPersonAdminObject method

If a person's Last Name is changed and the Full Name format, as defined in emxFramework.FullName.Format, contains <Last?Name>, update the Full Name field on the person administration object.

Input Arguments are same as above trigger.

N: RelationshipEmployeeCreateAction

R: addMemberRelationship

emxCompany

addMemberRelationship method

When a person is connected as an employee to a company, this trigger makes sure a member relationship is also created and its roles parameter are filled in with all of the person's roles.

N: RelationshipEmployeeCreateAction

R: Set Company Key

emxKeyUtil

setCompanyKey method

Set company key as Primary Key.

N: RelationshipEmployeeCreateAction

R: Notify New Employee

eServicecommonTrigaNotifyNewEmployee_if.tcl

This program connects the person business object to the company using the Employee relationship and sends iconmail and/or email to the Company Representatives when an Employee is connected to a Company.

N: RelationshipEmployeeCreateAction

R: Assign Person to Company_Role Group

emxCompany

assignPersonToGroups method

If configured to use company groups, this trigger adds a new employee to the company group.

N: AttributeEmailAddressModifyOverride

R: Notify Email Change

eServicecommonTrigaNotifyEmailChange_if.tcl

Sends email to person whenever a change is made to their email address. The email is sent to both the old and new email address and gives the old and new address, the person who made the change, and the date and time of the change.

N: PolicyPersonStateInactivePromoteAction

R: Notify Employee Status

eServicecommonTrigaNotifyEmployeeStatus_if.tcl

When the administrator activates an employee, the person business object is promoted to Active. The promotion fires a trigger that notifies the employee that the account is active, so the employee can now log in.

N: PolicyPersonStateActiveDemoteAction

R: Notify Employee Status

eServicecommonTrigaNotifyEmployeeStatus_if.tcl

When the administrator deactivates an employee, the person business object is demoted to Inactive. The demotion fires a trigger that notifies the employee that the account is deactive.

Triggers for Quotations

Request for Quotes (RFQs) were called Request to Suppliers (RTS) in previous versions of the application and therefore some administrative objects and properties refer to RTS instead of RFQ.

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N: PolicyRTSQuotationStateOpenPromoteCheck

R: StateOpenPromoteCheck

eServiceCheckRoutes_if.tcl

Prevents promotion if the quotation is in an unfinished route. This trigger is only used if the route creator specified the state as a block promotion state for the quotation.

N: PolicyRTSQuotationStateReviewPromoteCheck

R: StateReviewPromoteCheck

N: PolicyRTSQuotationStateReturnedPromoteCheck

R: StateReturnedPromoteCheck

Triggers for RFQs

Request for Quotes (RFQs) were called Request to Suppliers (RTS) in previous versions of the application and therefore some administrative objects and properties refer to RTS instead of RFQ.

eService Trigger Program Parameters Object Trigger Program and JPO Method Description of Action

N: PolicyRequestToSupplierStateStartedPromoteCheck

R: StateStartedPromoteCheck

eServiceCheckRoutes_if.tcl

Prevents promotion if the RFQ is in an unfinished route. This trigger is only used if the route creator specified the state as a block promotion state for the RFQ.

N: PolicyRequestToSupplierStateInitialPackageReviewPromoteCheck

R: StateInitialPackageReviewPromoteCheck

N: PolicyRequestToSupplierStatePackageSentPromoteCheck

R: StatePackageSentPromoteCheck

N: PolicyRequestToSupplierStateResponseCompletePromoteCheck

R: StateResponseCompletePromoteCheck

N: PolicyRequestToSupplierStateFinalPackageReviewPromoteCheck

R: StateFinalPackageReviewPromoteCheck

Triggers for Routes and Tasks

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

N: PolicyRouteStateDefinePromoteAction

R: Initiate Route

emxCommonInitiateRoute

InitiateRoute method

When a route is started, it is promoted from Define to In Process and this trigger is fired. The trigger:

Creates an Inbox Task object for each person who has an Order number of 1 in the route. Copies all the information for each task (instructions, action, scheduled completion date, etc.) to the Inbox Task object.

Notifies each person via email.

Changes the Route Status attribute to Started.

Set the Current Route Node attribute to 1.

N: PolicyRouteStateDefinePromoteAction

R: PublishRouteStartedConnectedtoDocument

emxCommonDocument

handleSubscriptionEvent method

Sends a notification to subscribers to the start route event.

N: PolicyRouteStateDefinePromoteAction

R: RouteStarted

emxNotificationUtil

objectNotification method

Sends a notification to persons with pending tasks.

N: PolicyRouteStateInProcessPromoteAction

R. PublishRouteCompletedConnectedtoDocument

emxCommonDocument

handlSubscriptionEvent

Sends a notification to subscribers to the route completed event.

N: PolicyRouteStateInProcessPromoteAction

R: Route Completed

emxNotificationUtil

objectNotification method

Sends a notification to the route owner that the route has been completed.

N: RelationshipRouteNodeCreateAction

R: populateRouteNodeId

emxRoute

populateRouteNodeId method

Populates Route Node Id attribute on relationship Route Node.

N: RelationshipRouteNodeCreateAction

R: emxRouteJPO

calls emxRoute

grantAccess method

When a person is added to a route, this trigger grants the person access to the route (Read Write).

N: RelationshipRouteNodeDeleteAction

R: emxRouteJPO

emxRoute

deleteRouteTaskUserObject method

When a person is removed from a route, this trigger deletes the person's task.

N: RelationshipRouteNodeDeleteCheck

R: emxRouteJPO

emxRoute

revokeAccess method

When a person is removed from a route, this trigger revokes the person's access to the route.

N: RelationshipRouteScopeCreateAction

R: emxRouteJPO

emxRoute

inheritAccess method

When a route and the Route Scope relationship is created, this trigger grants Read access to the route for all Workspace Leads.

N: RelationshipRouteScopeDeleteCheck

R: emxWorkspaceConstantsJPO

emxWorkspaceConstants

revokeAccess method

When a person is removed from a route, this trigger revokes the person's access to the route.

N: PolicyInboxTaskStateAssignedPromoteAction

R: Complete Task

emxInboxTask

triggerActionPromoteOnAssignedState method

Sends notification to the Route Owner if a task needs to be reviewed, else promotes to complete.

N: PolicyInboxTaskStateAssignedPromoteAction

R: Complete Task Notification

emxNotificationUtil

CreateNotification method

Sends a notification to the person that a task has been completed.

N: PolicyInboxTaskStateReviewPromoteAction

R: Review Completion

emxInboxTask

triggerActionPromoteOnReviewState method

Sends a notification to the task assignee informing her/him of the review completion.

N: PolicyInboxTaskStateReviewPromoteAction

R: Complete Task

eServicecommonTrigcCompleteTask_if.tcl

When a person completes a task, the Inbox Task object is promoted from Review to Complete and this trigger is fired. The trigger:

Enters the actual completion date.

If the approval status is Reject, stops the route and notifies the route owner.

If there are no other tasks to be completed for the route, notifies the route owner that route is complete and changes the Route status to Finished.

N: PolicyInboxTaskStateReviewPromoteAction

R: CompleteTask

emxCommonCompleteTask

completeTask method

When a person completes a task, the Inbox Task object is promoted from Assigned to Complete and this trigger is fired. The trigger:

Enters the actual completion date.

If the approval status is Reject, stops the route and notifies the route owner.

If there are no other tasks to be completed for the route, notifies the route owner that route is complete and changes the Route status to Finished.

N: PolicyInboxTaskStateReviewPromoteCheck

R: Check Route Owner

emxInboxTask

triggerCheckPromoteOnReviewState method

Checks if the user is the route owner, else sends an error message to the user and prevents the promote.

N: PolicyInboxTaskStateReviewDemoteAction

R: Reject Task

emxInboxTask

triggerActionDemoteOnReviewState method

Sends a notification to the task assignee informing of the rejection of the task.

N: PolicyInboxTaskStateReviewDemoteAction

R: Reject Task Notification

emxNotificationUtil

createNotification method

Sends a notification to the task assignee informing of the rejection of the task.

Triggers for Workspaces

This table lists the triggers for workspaces.

eService Trigger Program Parameters Object, Name and Revision Trigger Program and JPO Method Description of Action

T: TypeProjectCreateAction

R: SetCompanyKeyOnWorkspace

emxKeyUtil

setCompanyKeyFromRPE method

Sets the primary key attribute of the Workspace.

T: TypeWorkspaceGrantAction

R: emxWorkspaceJPO

emxWorkspace

grantWorkspaceAccess method

Grants access to the folders in the workspace to users added to the workspace.

T: TypeProjectManagementDeleteOverride

R: deleteReferences

emxCommonProjectManagement

triggerDeleteOverride method

When a Project is deleted, this trigger deletes any associated assessments, risks, financial items, tasks, and so on.

T: RelationshipProjectMembersCreateAction

R: emxWorkspaceJPO

emxWorkspace

grantMemberAccess method

When a person is added to a workspace, this trigger grants Read and Show access to the workspace.

T: TypeProjectMemberDeleteCheck

R: emxWorkspaceJPO

emxWorkspace

revokeAllAccess method

When a person is removed from a workspace, this trigger revokes the person's granted accesses to the workspace and all children objects (folders, content, routes).

T: TypeRelationNotificationAction

R: IEFNotification

IEFTransactionNotificationUtil

transactionNotifications

Used for SolidWorks notifications only when a transaction requires a notification. Installed in the inactive state and activated when SolidWorks integration is installed.