VERSION 22 SOURCE "Exported from Schema Repository (C:\Temp\NewCQDB\MASTR.mdb) on Wed Jun 18 09:16:07 2008 " TYPEDEF entitydef ( name:STRING , new_name:STRING , dbname:WORD , type:WORD , entity_ownership:WORD , is_default:BOOL , default_formdef:STRING , package_ownership:STRING , is_family:BOOL ) TYPEDEF family_member_def ( family_entitydef_name:STRING , entity:STRING , package_ownership:STRING ) TYPEDEF fielddef ( entity:STRING , name:STRING , new_name:STRING , dbname:WORD , type:WORD , desc:STRING , field_ownership:WORD , ref_aux_def:STRING , ref_field_def:STRING , max_length:LONG , choice_type:WORD , choice_calculation:WORD , choice_list_def:STRING , is_visible:BOOL , package_ownership:STRING , default_requiredness:WORD , cqlt_custom:BOOL , is_security_context:BOOL ) TYPEDEF unique_key_def ( entity:STRING , field:STRING , sequence:LONG ) TYPEDEF statedef ( entity:STRING , name:STRING , new_name:STRING , ordinal:LONG , package_ownership:STRING , action:STRING ) TYPEDEF actiondef ( entity:STRING , name:STRING , new_name:STRING , type:WORD , desc:STRING , form:STRING , dest_state:STRING , package_ownership:STRING , policy:LONG ) TYPEDEF state_legal_action ( entity:STRING , state:STRING , action:STRING ) TYPEDEF actiondef_usergroups ( entity:STRING , action:STRING , group:STRING ) TYPEDEF field_status_def ( entity:STRING , state:STRING , field:STRING , requiredness:WORD ) TYPEDEF hookdef ( entity:STRING , ownertype:WORD , hooktype:WORD , hookowner:STRING , name:STRING , new_name:STRING , package_ownership:STRING , action_alias:STRING , policy:LONG ) TYPEDEF scriptdef ( entity:STRING , ownertype:WORD , hooktype:WORD , hookowner:STRING , name:STRING , language:WORD , package_ownership:STRING , program:STRING ) TYPEDEF formdef ( entity:STRING , name:STRING , is_entity_default:BOOL , new_name:STRING , form_blob:BINARY , package_ownership:STRING ) TYPEDEF blobdef ( name:STRING ) TYPEDEF listdef ( name:STRING , new_name:STRING , desc:STRING , is_visible:BOOL , package_ownership:STRING ) TYPEDEF statedeftype ( package_ownership:STRING , name:STRING , new_name:STRING , desc:STRING , ordinal:LONG , policy:LONG ) TYPEDEF statetypemap ( entity:STRING , state:STRING , package_ownership:STRING , statedeftype_package_name:STRING , statetype:STRING ) TYPEDEF property ( name:STRING , new_name:STRING , package_ownership:STRING , value:STRING ) TYPEDEF ratl_permission ( id:LONG , controlled_object_type:STRING , controlled_object_name:STRING , scoping_object_type:STRING , scoping_object_name:STRING , priv_type:STRING , grant:BOOL ) TYPEDEF ratl_permission_acl ( id:LONG , link_type:STRING , to:STRING ) TYPEDEF master_global ( site_id:LONG , site_name:WORD , set_name:STRING , version:LONG , feature_level:STRING ) TYPEDEF master_properties ( name:STRING , version:LONG , value:STRING ) TYPEDEF master_dbs ( name:WORD , id:LONG , version:LONG , desc:STRING , vendor:STRING , server:STRING , db:STRING , prefix:STRING , schema:STRING , schemarev:LONG , schemarev_version:LONG , is_master:BOOL , is_initialized:BOOL , is_deleted:BOOL , f1:STRING , f2:STRING , system_version:LONG , db_ownership:WORD , is_visible:BOOL , connect_options:STRING , feature_level:STRING ) TYPEDEF master_schemas ( name:STRING , id:LONG , desc:STRING , source_schema:STRING , source_rev:LONG , schema_ownership:WORD , testdb:STRING ) TYPEDEF master_schemarevs ( schema:STRING , id:LONG , desc:STRING , schema_ownership:WORD , version:LONG ) TYPEDEF master_users ( name:STRING , version:LONG , password:STRING , email:STRING , fullname:STRING , phone:STRING , misc_info:STRING , is_active:LONG , is_superuser:LONG , is_appbuilder:LONG , is_usermaint:LONG , priv_mask:LONG ) TYPEDEF master_groups ( name:STRING , version:LONG , is_active:LONG ) TYPEDEF master_links ( version:LONG , type:STRING , from:STRING , to:STRING ) TYPEDEF master_packages ( package_name:STRING , version:LONG , desc:STRING , dllname:STRING ) TYPEDEF master_packagerevs ( package_name:STRING , package_rev:STRING , version:LONG , system_version:LONG , desc:STRING , author:STRING , create_date:STRING ) TYPEDEF packagerev_usage ( schema:STRING , schemarev:LONG , package_name:STRING , package_rev:STRING , entity:STRING , entity_type:STRING ) TYPEDEF package_releases ( schema:STRING , revison:STRING , metadata:LONG ) TYPEDEF release_schemarevs ( schemarev:LONG ) ADD master_schemas ( "UCMInterop", 15 , "Schema for ClearQuest Enabled UCM Projects in a Rational Team Concert Connectors Environment.", "", 0 , UNRESTRICTED_SCHEMA , "") { ADD master_schemarevs ( "UCMInterop", 1 , "Schema for ClearQuest Enabled UCM Projects in a Rational Team Concert Connectors Environment.", UNRESTRICTED_SCHEMA , 1 ) { ADD property ( "Unix Script Language", "", "", "PERL") ADD property ( "Windows Script Language", "", "", "BASIC") ADD property ( "Package_Notes_Windows_Script_Language", "", "Notes", "PERL") ADD property ( "Package_Notes_Return_String_Mode", "", "Notes", "RETURN_STRING_UNICODE") ADD property ( "Applied Package Form Tab Names_Notes_9", "", "", "SUBMITTABNAMES=;RECORDTABNAMES=&Notes") ADD property ( "Package_Resolution_Return_String_Mode", "", "Resolution", "RETURN_STRING_UNICODE") ADD property ( "Applied Package Form Tab Names_Resolution_4", "", "", "SUBMITTABNAMES=;RECORDTABNAMES=&Resolution") ADD property ( "Applied Package Form Tab Names_Attachments_2", "", "", "SUBMITTABNAMES=&Attachments;RECORDTABNAMES=&Attachments") ADD property ( "Applied Package Form Tab Names_History_2", "", "", "SUBMITTABNAMES=;RECORDTABNAMES=&History") ADD property ( "Package_Email_Return_String_Mode", "", "Email", "RETURN_STRING_UNICODE") ADD property ( "Applied Package Form Tab Names_Email_13", "", "", "SUBMITTABNAMES=;RECORDTABNAMES=") ADD property ( "Package_UCMPolicyScripts_Windows_Script_Language", "", "UCMPolicyScripts", "BASIC") ADD property ( "Applied Package Form Tab Names_AMStateTypes_1", "", "", "SUBMITTABNAMES=;RECORDTABNAMES=") ADD property ( "Package_UnifiedChangeManagement_Windows_Script_Language", "", "UnifiedChangeManagement", "BASIC") ADD property ( "Applied Package Form Tab Names_UnifiedChangeManagement_9", "", "", "SUBMITTABNAMES=Unified Change Management;RECORDTABNAMES=Unified Change Management") ADD entitydef ( "history", "", history , AUX_ENTITY , HISTORY_ENTITY , FALSE , "", "", FALSE ) ADD entitydef ( "ratl_replicas", "", ratl_replicas , AUX_ENTITY , REPLICA_ENTITY , FALSE , "Replica", "", FALSE ) ADD entitydef ( "attachments", "", attachments , AUX_ENTITY , ATTACHMENTS_ENTITY , FALSE , "", "", FALSE ) ADD entitydef ( "groups", "", groups , AUX_ENTITY , GROUP_ENTITY , FALSE , "Group", "", FALSE ) ADD entitydef ( "users", "", users , AUX_ENTITY , USER_ENTITY , FALSE , "User", "", FALSE ) ADD entitydef ( "Defect", "", Defect , REQ_ENTITY , USER_OWNED_ENTITY , TRUE , "Defect_Base", "", 4 ) ADD entitydef ( "Email_Rule", "", email_rule , AUX_ENTITY , USER_OWNED_ENTITY , FALSE , "EMail", "Email", FALSE ) ADD entitydef ( "BaseCMActivity", "", basecmactivity , REQ_ENTITY , USER_OWNED_ENTITY , FALSE , "BaseCMActivity_modify", "BaseCMActivity", 4 ) ADD entitydef ( "UCM_Project", "", ucm_project , AUX_ENTITY , USER_OWNED_ENTITY , FALSE , "ucm_project", "UnifiedChangeManagement", 4 ) ADD entitydef ( "All_UCM_Activities", "", activities , REQ_ENTITY , USER_OWNED_ENTITY , FALSE , "", "UnifiedChangeManagement", TRUE ) ADD entitydef ( "UCMUtilityActivity", "", ucmutilityactivity , REQ_ENTITY , USER_OWNED_ENTITY , FALSE , "UCMUtilityActivity_Modify", "UnifiedChangeManagement", FALSE ) ADD family_member_def ( "All_UCM_Activities", "UCMUtilityActivity", "") ADD family_member_def ( "All_UCM_Activities", "Defect", "") ADD family_member_def ( "All_UCM_Activities", "BaseCMActivity", "") ADD fielddef ( "history", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "uuid", "", uuid , SHORT_STRING , "", REPLICA_UUID_FIELD , "", "", 36 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "name", "", name , SHORT_STRING , "", REPLICA_NAME_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "clan", "", clan , SHORT_STRING , "", REPLICA_CLAN_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "family", "", family , SHORT_STRING , "", REPLICA_FAMILY_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "host", "", host , SHORT_STRING , "", REPLICA_HOST_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "description", "", description , SHORT_STRING , "", REPLICA_DESCRIPTION_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "schema_id", "", schema_id , INT , "", REPLICA_SCHEMA_ID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "schema_rev", "", schema_rev , INT , "", REPLICA_SCHEMA_REV_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "schemarev_version", "", schemarev_version , INT , "", REPLICA_SCHEMAREV_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "operating_rev", "", operating_rev , INT , "", REPLICA_OPERATING_REV_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "formatted_rev", "", formatted_rev , INT , "", REPLICA_FORMATTED_REV_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "ratl_replicas", "flags", "", flags , INT , "", REPLICA_FLAGS_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "history", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "attachments", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "attachments", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "groups", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "groups", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "ratl_priv_mask", "", ratl_priv_mask , INT , "Extended global privilege mask", USER_PRIVS_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "attachments", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "groups", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "history", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "history", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "history", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "history", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "history", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "history", "entity_dbid", "", entity_dbid , INT , "", HISTORY_ENTITY_DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "entitydef_id", "", entitydef_id , INT , "", HISTORY_ENTITYDEF_ID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "entitydef_name", "", entitydef_name , SHORT_STRING , "", HISTORY_ENTITYDEF_NAME_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "action_timestamp", "", action_timestamp , DATE_TIME , "", HISTORY_ACTION_TIMESTAMP_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "user_name", "", user_name , SHORT_STRING , "", HISTORY_USER_NAME_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "action_name", "", action_name , SHORT_STRING , "", HISTORY_ACTION_NAME_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "old_state", "", old_state , SHORT_STRING , "", HISTORY_OLD_STATE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "new_state", "", new_state , SHORT_STRING , "", HISTORY_NEW_STATE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "expired_timestamp", "", expired_timestamp , DATE_TIME , "", HISTORY_EXPIRED_TIMESTAMP_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "history", "comments", "", comments , SHORT_STRING , "", HISTORY_COMMENTS_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "attachments", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "attachments", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "attachments", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "attachments", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "attachments", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "attachments", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "attachments", "entity_dbid", "", entity_dbid , DBID , "", ATTACHMENTS_ENTITY_DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "attachments", "entity_fielddef_id", "", entity_fielddef_id , DBID , "", ATTACHMENTS_ENTITY_FIELDDEF_ID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "attachments", "description", "", description , SHORT_STRING , "", ATTACHMENTS_DESCRIPTION_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "attachments", "filename", "", filename , SHORT_STRING , "", ATTACHMENTS_FILENAME_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "attachments", "filesize", "", filesize , INT , "", ATTACHMENTS_FILESIZE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "groups", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "groups", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "groups", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "groups", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "groups", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "groups", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "groups", "name", "", name , SHORT_STRING , "", GROUP_NAME_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "groups", "master_dbid", "", master_dbid , INT , "", USERINFO_MASTER_DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "login_name", "", login_name , SHORT_STRING , "", USER_LOGIN_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "master_dbid", "", master_dbid , INT , "", USERINFO_MASTER_DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "users", "fullname", "", fullname , SHORT_STRING , "", USER_FULLNAME_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "phone", "", phone , SHORT_STRING , "", USER_PHONE_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "email", "", email , SHORT_STRING , "", USER_EMAIL_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "misc_info", "", misc_info , SHORT_STRING , "", USER_MISC_FIELD , "", "", 254 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "encrypted_password", "", encrypted_password , SHORT_STRING , "", USER_PASSWORD_FIELD , "", "", 10 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "is_superuser", "", is_superuser , INT , "", USER_IS_SUPERUSER_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "is_appbuilder", "", is_appbuilder , INT , "", USER_IS_APPBUILDER_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "is_user_maint", "", is_user_maint , INT , "", USER_IS_USER_MAINT_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "users", "groups", "", groups , REFERENCE_LIST , "", USER_GROUPS_FIELD , "groups", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "id", "", id , ID , "", ID_FIELD , "", "", 13 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "State", "", state , STATE , "", REFERENCE_TO_STATE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "is_duplicate", "", is_duplicate , INT , "", DUP_LINK_EXISTS , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "unduplicate_state", "", unduplicate_state , SHORT_STRING , "", DUP_PRIOR_STATE , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "Headline", "", headline , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 125 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "Defect", "Description", "", description , MULTILINE_STRING , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "Priority", "", priority , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 30 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "Defect", "Severity", "", severity , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 30 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "Defect", "Submitter", "", submitter , REFERENCE , "", USER_OWNED_FIELD , "users", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "Submit_Date", "", submit_date , DATE_TIME , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "Owner", "", owner , REFERENCE , "", USER_OWNED_FIELD , "users", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", MANDATORY , FALSE , FALSE ) ADD fielddef ( "Defect", "old_id", "", old_id , SHORT_STRING , "This field is used for importing other data into the default schema.", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "Keywords", "", keywords , MULTILINE_STRING , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "Symptoms", "", symptoms , MULTILINE_STRING , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "Note_Entry", "", note_entry , MULTILINE_STRING , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Notes", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "Notes_Log", "", notes_log , MULTILINE_STRING , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Notes", READONLY , FALSE , FALSE ) ADD fielddef ( "Defect", "Resolution_Statetype", "", resolution_statetype , STATETYPE , "", STATETYPE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Resolution", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "Resolution", "", resolution , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , CLOSED_CHOICE , CALC_IN_PREPARE , "", 5 , "Resolution", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "Defect", "Attachments", "", attachments , ATTACHMENT_LIST , "", USER_OWNED_FIELD , "attachments", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Attachments", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", READONLY , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", READONLY , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "Email", READONLY , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "Email", READONLY , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "Email", READONLY , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "Email", READONLY , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "Email", READONLY , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "Email", READONLY , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Name", "", name , SHORT_STRING , "The name used to identify the e-mail rule. This name must be unique.", USER_OWNED_FIELD , "", "", 100 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Change_Fields", "", change_fields , MULTILINE_STRING , "Enter a list of fields upon which ClearQuest should check to determine whether to trigger this e-mail rule. If any field is changed, this e-mail rule will be triggered.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Display_Fields", "", display_fields , MULTILINE_STRING , "Enter the fields to display in the e-mail message body.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Entity_Def", "", entity_def , SHORT_STRING , "Select a record to which this rule applies.", USER_OWNED_FIELD , "", "", 50 , CLOSED_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Include_Defect", "", include_defect , INT , "Check this box to include all the record's fields in the e-mail message body.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Filter_Query", "", filter_query , SHORT_STRING , "Select a public query to use as an additional e-mail trigger.", USER_OWNED_FIELD , "", "", 254 , CLOSED_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Show_Previous", "", show_previous , INT , "Check this box to show the field's previous values. This is done against the list of fields selected in the Fields to Display control or for all fields, if the Include Entire Defect is checked.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "CC_Actioner", "", cc_actioner , INT , "Check this box if you want the modifier of the record to receive an e-mail notification.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "To_Users", "", to_users , REFERENCE_LIST , "Select one or more ClearQuest users as recipient(s) of the e-mail. These user(s) must have their e-mail address defined in their user information.", USER_OWNED_FIELD , "users", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "CC_Users", "", cc_users , REFERENCE_LIST , "Select one or more ClearQuest users as additional recipient(s) of the e-mail. These user(s) must have their e-mail address defined in their user information.", USER_OWNED_FIELD , "users", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "To_Groups", "", to_groups , REFERENCE_LIST , "Select one or more ClearQuest groups as recipient(s) of the e-mail. The users in these group(s) must have their e-mail address defined in their user information.", USER_OWNED_FIELD , "groups", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "CC_Groups", "", cc_groups , REFERENCE_LIST , "Select one or more ClearQuest groups as additional recipient(s) of the e-mail. The users in these group(s) must have their e-mail address defined in their user information.", USER_OWNED_FIELD , "groups", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "To_Addr_Fields", "", to_addr_fields , MULTILINE_STRING , "You can select recipient(s) based on field values. These fields must contain a full e-mail address (e.g. name@company.com).", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "CC_Addr_Fields", "", cc_addr_fields , MULTILINE_STRING , "You can select additional recipient(s) based on field values. These fields must contain a full e-mail address (e.g. name@company.com).", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "To_Additional", "", to_additional , MULTILINE_STRING , "Enter the full e-mail address to send e-mail to a specific address that may not necessarily belong to a ClearQuest user.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "CC_Additional", "", cc_additional , MULTILINE_STRING , "Enter the full e-mail address to send e-mail to a specific address that may not necessarily belong to a ClearQuest user.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "From_Addr", "", from_addr , SHORT_STRING , "Enter the return address of the e-mail.", USER_OWNED_FIELD , "", "", 254 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Subject_Fields", "", subject_fields , MULTILINE_STRING , "Select the fields you wish to appear on the subject line of the e-mail.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Is_Active_Rule", "", is_active_rule , INT , "Uncheck this box if you would like to disable this e-mail rule.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Actions", "", actions , MULTILINE_STRING , "Select one or more actions upon which ClearQuest should run the e-mail rule. If one or more of the chosen actions was used to modify the record, then the e-mail rule will trigger.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Action_Types", "", action_types , MULTILINE_STRING , "Select one or more action types upon which ClearQuest should run the e-mail rule. If one or more of the selected action types was used to modify the record, then the e-mail rule will trigger.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Source_States", "", source_states , MULTILINE_STRING , "Select one or more states upon which ClearQuest should run the e-mail rule. If one or more of the selected source states was the original state of the record, then the e-mail rule will trigger.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Target_States", "", target_states , MULTILINE_STRING , "Select one or more destination states upon which ClearQuest should run the e-mail rule. If one or more of the selected destination states was the resulting state of the record, then the e-mail rule will trigger.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_EACH_ACCESS , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Email_Rule", "Operator_Value", "", operator_value , INT , "This specifies whether or not you want to do an AND or an OR operation between Fields to Check for Change and the parameters on the Action Controls tab.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "Email", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "BaseCMActivity", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "id", "", id , ID , "", ID_FIELD , "", "", 13 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "State", "", state , STATE , "", REFERENCE_TO_STATE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "is_duplicate", "", is_duplicate , INT , "", DUP_LINK_EXISTS , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "unduplicate_state", "", unduplicate_state , SHORT_STRING , "", DUP_PRIOR_STATE , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "BaseCMActivity", READONLY , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "Owner", "", owner , REFERENCE , "The person responsible for carrying out the activity.", USER_OWNED_FIELD , "users", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "BaseCMActivity", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "Description", "", description , MULTILINE_STRING , "A full description of the activity.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "BaseCMActivity", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "Headline", "", headline , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "BaseCMActivity", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "am_statetype", "", am_statetype , STATETYPE , "", STATETYPE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "AMStateTypes", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "am_statetype", "", am_statetype , STATETYPE , "", STATETYPE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "AMStateTypes", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "name", "", name , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_vob_object", "", ucm_vob_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_chk_before_deliver", "", ucm_chk_before_deliver , INT , "When this check box is enabled, the UCM_ChkBeforeDeliver global script will be run before any activity in this project is delivered. The script determines if the current user has permission to do the deliver.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_chk_before_work_on", "", ucm_chk_before_work_on , INT , "When this check box is enabled, the UCM_ChkBeforeWorkOn global script will be run before a WorkOn action is done for any activity in this UCM_Project. The script determines if the current user has permission to work on the activity.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_cq_act_after_deliver", "", ucm_trans_after_deliver , INT , "When this check box is enabled, the UCM_CQActAfterDeliver global script will be run after any activity in this project is delivered. The script can execute a corresponding ClearQuest action.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "id", "", id , ID , "", ID_FIELD , "", "", 13 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "State", "", state , STATE , "", REFERENCE_TO_STATE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "Headline", "", headline , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "Owner", "", owner , REFERENCE , "", USER_OWNED_FIELD , "users", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "ucm_project", "", ucm_project , REFERENCE , "", USER_OWNED_FIELD , "UCM_Project", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "ucm_vob_object", "", ucm_vob_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "ucm_stream", "", ucm_stream , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "ucm_stream_object", "", ucm_stream_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "ucm_view", "", ucm_view , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "id", "", id , ID , "", ID_FIELD , "", "", 13 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "State", "", state , STATE , "", REFERENCE_TO_STATE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "is_duplicate", "", is_duplicate , INT , "", DUP_LINK_EXISTS , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "unduplicate_state", "", unduplicate_state , SHORT_STRING , "", DUP_PRIOR_STATE , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", READONLY , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "Description", "", description , MULTILINE_STRING , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "Owner", "", owner , REFERENCE , "", USER_OWNED_FIELD , "users", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "Headline", "", headline , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "All_UCM_Activities", "am_statetype", "", am_statetype , STATETYPE , "", STATETYPE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_chk_mstr_before_dlvr", "", ucm_chk_mstr_before_dlvr , INT , "When this check box is enabled, mastership of ClearQuest activity records is checked before UCM delivery. If target stream is remote, the record is remastered to the remote site.", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_chk_mstr_after_dlvr", "", ucm_chk_mstr_after_dlvr , INT , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_cq_act_before_chact", "", ucm_cq_act_before_chact , INT , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_cq_act_after_chact", "", ucm_cq_act_after_chact , INT , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_cq_trans_after_chact", "", ucm_cq_trans_after_chact , INT , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCM_Project", "ucm_cq_trans_after_dlvr", "", ucm_cq_trams_after_dlvr , INT , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "am_statetype", "", am_statetype , STATETYPE , "", STATETYPE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "AMStateTypes", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "ucm_vob_object", "", ucm_vob_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "ucm_stream_object", "", ucm_stream_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "ucm_stream", "", ucm_stream , SHORT_STRING , "This is a display-only field which shows the ClearCase stream where this entity has been worked on (if it has been worked on already).", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "ucm_view", "", ucm_view , SHORT_STRING , "This is a display-only field which shows the ClearCase view where this entity is being worked on (if there is one).", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "UCMUtilityActivity", "ucm_project", "", ucm_project , REFERENCE , "This should be set to the UCM_Project entity which corresponds to the ClearCase project where this entity will be worked on.", USER_OWNED_FIELD , "UCM_Project", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "Defect", "ucm_vob_object", "", ucm_vob_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "ucm_stream_object", "", ucm_stream_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "Defect", "ucm_stream", "", ucm_stream , SHORT_STRING , "This is a display-only field which shows the ClearCase stream where this entity has been worked on (if it has been worked on already).", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "Defect", "ucm_view", "", ucm_view , SHORT_STRING , "This is a display-only field which shows the ClearCase view where this entity is being worked on (if there is one).", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "Defect", "ucm_project", "", ucm_project , REFERENCE , "This should be set to the UCM_Project entity which corresponds to the ClearCase project where this entity will be worked on.", USER_OWNED_FIELD , "UCM_Project", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "ucm_vob_object", "", ucm_vob_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "ucm_stream_object", "", ucm_stream_object , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 128 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "ucm_stream", "", ucm_stream , SHORT_STRING , "This is a display-only field which shows the ClearCase stream where this entity has been worked on (if it has been worked on already).", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "ucm_view", "", ucm_view , SHORT_STRING , "This is a display-only field which shows the ClearCase view where this entity is being worked on (if there is one).", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", 5 , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD fielddef ( "BaseCMActivity", "ucm_project", "", ucm_project , REFERENCE , "This should be set to the UCM_Project entity which corresponds to the ClearCase project where this entity will be worked on.", USER_OWNED_FIELD , "UCM_Project", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "UnifiedChangeManagement", USE_HOOK , FALSE , FALSE ) ADD unique_key_def ( "ratl_replicas", "name", 1 ) ADD unique_key_def ( "history", "dbid", 1 ) ADD unique_key_def ( "history", "action_timestamp", 2 ) ADD unique_key_def ( "history", "user_name", 3 ) ADD unique_key_def ( "history", "action_name", 4 ) ADD unique_key_def ( "history", "old_state", 5 ) ADD unique_key_def ( "history", "new_state", 6 ) ADD unique_key_def ( "attachments", "dbid", 1 ) ADD unique_key_def ( "attachments", "description", 4 ) ADD unique_key_def ( "attachments", "filename", 2 ) ADD unique_key_def ( "attachments", "filesize", 3 ) ADD unique_key_def ( "groups", "name", 1 ) ADD unique_key_def ( "users", "login_name", 1 ) ADD unique_key_def ( "Defect", "id", 1 ) ADD unique_key_def ( "Email_Rule", "Name", 1 ) ADD unique_key_def ( "BaseCMActivity", "id", 1 ) ADD unique_key_def ( "UCM_Project", "name", 1 ) ADD unique_key_def ( "UCMUtilityActivity", "id", 1 ) ADD statedef ( "Defect", "Submitted", "", 1 , "", "Assign") ADD statedef ( "Defect", "Assigned", "", 2 , "", "Open") ADD statedef ( "Defect", "Opened", "", 3 , "", "Resolve") ADD statedef ( "Defect", "Resolved", "", 4 , "", "Validate") ADD statedef ( "Defect", "Closed", "", 5 , "", "") ADD statedef ( "Defect", "Duplicate", "", 6 , "", "") ADD statedef ( "Defect", "Postponed", "", 7 , "", "Assign") ADD statedef ( "BaseCMActivity", "Submitted", "", 1 , "BaseCMActivity", "Assign") ADD statedef ( "BaseCMActivity", "Ready", "", 2 , "BaseCMActivity", "Activate") ADD statedef ( "BaseCMActivity", "Active", "", 3 , "BaseCMActivity", "Complete") ADD statedef ( "BaseCMActivity", "Complete", "", 4 , "BaseCMActivity", "") ADD statedef ( "UCMUtilityActivity", "Submitted", "", 1 , "UnifiedChangeManagement", "Assign") ADD statedef ( "UCMUtilityActivity", "Ready", "", 2 , "UnifiedChangeManagement", "Activate") ADD statedef ( "UCMUtilityActivity", "Active", "", 3 , "UnifiedChangeManagement", "Complete") ADD statedef ( "UCMUtilityActivity", "Complete", "", 4 , "UnifiedChangeManagement", "") ADD statedeftype ( "Resolution", "Resolved", "", "Identifies all states considered to be resolved.", 1 , 0 ) ADD statedeftype ( "Resolution", "Not_Resolved", "", "Identifies all states that are not associated to the Resolved state type.", 1 , 4 ) ADD statedeftype ( "AMStateTypes", "Waiting", "", "", 1 , 0 ) ADD statedeftype ( "AMStateTypes", "Ready", "", "", 2 , 1 ) ADD statedeftype ( "AMStateTypes", "Active", "", "", 3 , 1 ) ADD statedeftype ( "AMStateTypes", "Complete", "", "", 4 , 1 ) ADD statetypemap ( "UCMUtilityActivity", "Submitted", "", "AMStateTypes", "Waiting") ADD statetypemap ( "UCMUtilityActivity", "Ready", "", "AMStateTypes", "Ready") ADD statetypemap ( "UCMUtilityActivity", "Active", "", "AMStateTypes", "Active") ADD statetypemap ( "UCMUtilityActivity", "Complete", "", "AMStateTypes", "Complete") ADD statetypemap ( "Defect", "Submitted", "", "AMStateTypes", "Waiting") ADD statetypemap ( "Defect", "Assigned", "", "AMStateTypes", "Ready") ADD statetypemap ( "Defect", "Opened", "", "AMStateTypes", "Active") ADD statetypemap ( "Defect", "Resolved", "", "AMStateTypes", "Complete") ADD statetypemap ( "Defect", "Closed", "", "AMStateTypes", "Complete") ADD statetypemap ( "Defect", "Postponed", "", "AMStateTypes", "Waiting") ADD statetypemap ( "Defect", "Duplicate", "", "AMStateTypes", "Complete") ADD statetypemap ( "BaseCMActivity", "Submitted", "", "AMStateTypes", "Waiting") ADD statetypemap ( "BaseCMActivity", "Ready", "", "AMStateTypes", "Ready") ADD statetypemap ( "BaseCMActivity", "Active", "", "AMStateTypes", "Active") ADD statetypemap ( "BaseCMActivity", "Complete", "", "AMStateTypes", "Complete") ADD statetypemap ( "Defect", "Resolved", "", "Resolution", "Resolved") ADD statetypemap ( "Defect", "Closed", "", "Resolution", "Resolved") ADD statetypemap ( "Defect", "Submitted", "", "Resolution", "Not_Resolved") ADD statetypemap ( "Defect", "Assigned", "", "Resolution", "Not_Resolved") ADD statetypemap ( "Defect", "Opened", "", "Resolution", "Not_Resolved") ADD statetypemap ( "Defect", "Duplicate", "", "Resolution", "Not_Resolved") ADD statetypemap ( "Defect", "Postponed", "", "Resolution", "Not_Resolved") ADD formdef ( "ratl_replicas", "Replica", TRUE , "", "DwAAABFCZWdpbiBUYWJiZWQgRm9ybQEAAAAAAAAAAAgAAAAAAAAABAAAAAUAAABjAQAApgAAAApE aWFsb2cgVGFiDXJhdGxfcmVwbGljYXMBAAAAAAAAAAAAAAAAKQEAAA8AAABZAQAAHQAAAAVBcHBs eQAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAA AAAAAAAAAAAAACkBAAAlAAAAWQEAADMAAAAGUmV2ZXJ0AAAAAAAAAAAAAAAAAAAAAAAACAAAAAAA AAAACAAAAAAAAAACAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAKQEAADsAAABZAQAASQAA AAdBY3Rpb25zAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAACAAAAAAAAAADAAAAAAAAAAAAAAAA AAEAAAAAAAAAAAAAAP////8KQmVnaW4gRm9ybQAAAAAAAAAAEwEAAH8AAAAHUmVwbGljYQ1yYXRs X3JlcGxpY2FzAQAAAAAAAAACAAAABVRleHQxKwAAAAoAAACFAAAAGAAAAApTaXRlIE5hbWU6BQAA AA4AAAApAAAAFgAAAARuYW1lAAgAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAABVRleHQyoQAAAAsAAAD7AAAAGQAAAAVIb3N0 Oo0AAAAPAAAAnwAAABcAAAAEaG9zdAAIAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAVUZXh0MywAAAAiAAAA+wAAADAAAAAF VVVJRDoUAAAAJAAAACkAAAAsAAAABHV1aWQACAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAFVGV4dDQsAAAAOAAAAPsAAABG AAAADERlc2NyaXB0aW9uOgMAAAA8AAAAKgAAAEQAAAALZGVzY3JpcHRpb24ACAAAAAAAAAAACAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAF VGV4dDVZAAAAUAAAAHcAAABeAAAAEFNjaGVtYSBSZXZpc2lvbjoZAAAAUwAAAFQAAABbAAAACnNj aGVtYV9yZXYACAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAQAAAAIAAAAFVGV4dDZZAAAAaAAAAHcAAAB2AAAAGFNjaGVtYSBSZXZpc2lv biBWZXJzaW9uOgAAAABrAAAAVAAAAHMAAAARc2NoZW1hcmV2X3ZlcnNpb24ACAAAAAAAAAAACAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAF VGV4dDfdAAAAUAAAAPsAAABeAAAAEk1ldGFzY2hlbWEgRm9ybWF0OpMAAABUAAAA1gAAAFwAAAAN Zm9ybWF0dGVkX3JldgAIAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAVUZXh0ON0AAABoAAAA+wAAAHYAAAARTWV0YXNjaGVt YSBMZXZlbDqXAAAAawAAANYAAABzAAAADW9wZXJhdGluZ19yZXYACAAAAAAAAAAACAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAP////8A=", "") ADD formdef ( "Defect", "Defect_Base", TRUE , "", "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", "UCMSetup") ADD formdef ( "Defect", "Defect_Base_Submit", FALSE , "", "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 AAAAAAAAAAD/////=", "UCMSetup") ADD formdef ( "users", "User", TRUE , "", "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 ////=", "") ADD formdef ( "groups", "Group", TRUE , "", "DwAAABFCZWdpbiBUYWJiZWQgRm9ybQEAAAAAAAAAAAgAAAAAAAAAAwAAAAMAAAB8AQAATwAAAApE aWFsb2cgVGFiBmdyb3VwcwEAAAAAAAAAAAAAAABBAQAADwAAAHEBAAAdAAAABUFwcGx5AAAAAAAA AAAAAAAAAAAAAAAACAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAA AAAAQQEAACUAAABxAQAAMwAAAAZSZXZlcnQAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAA AAAAAAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAABBAQAAOwAAAHEBAABJAAAAB0FjdGlv bnMAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAQAAAAAA AAAAAAAA/////wpCZWdpbiBGb3JtAAAAAAAAAAAsAQAAKQAAAAVHcm91cAZncm91cHMBAAAAAAAA AAIAAAAFVGV4dDEfAAAADQAAACkBAAAZAAAABiZOYW1lOgMAAAAPAAAAGAAAABcAAAAEbmFtZQAI AAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAABAAAA/////wAA=", "") ADD formdef ( "Email_Rule", "EMail", TRUE , "", "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", "Email") ADD formdef ( "BaseCMActivity", "BaseCMActivity_modify", TRUE , "", "DwAAABFCZWdpbiBUYWJiZWQgRm9ybQIAAAAAAAAAAAgAAAAAAAAAAwAAAAMAAABvAQAA/gAAAApE aWFsb2cgVGFiDkJhc2VDTUFjdGl2aXR5AQAAAAAAAAAAAAAAADUBAAAPAAAAZQEAAB0AAAAAAAAA AAAAAAAAAAAAAAAAAAAACAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA AAAAAAAANQEAACUAAABlAQAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAAAAAA AAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA1AQAAOwAAAGUBAABJAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAAAwAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAD///// CkJlZ2luIEZvcm0AAAAAAAAAAB8BAADYAAAABE1haW4OQmFzZUNNQWN0aXZpdHkBAAAAAAAAAAIA AAAFVGV4dDEJAAAAEQAAAJUAAAAfAAAAA0lEOgkAAAAHAAAAFAAAAA8AAAACaWQACAAAAAAAAAAA CAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIA AAAFVGV4dDIJAAAAKgAAAJUAAAA4AAAABlN0YXRlOgkAAAAhAAAAHQAAACkAAAAFU3RhdGUACAAA AAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AQAAAAIAAAAFVGV4dDMJAAAARgAAABYBAABUAAAACUhlYWRsaW5lOgkAAAA9AAAAKAAAAEUAAAAI SGVhZGxpbmUACAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAQAAAAIAAAAFVGV4dDQJAAAAYQAAABcBAADPAAAADERlc2NyaXB0aW9uOgkA AABYAAAAMAAAAGAAAAALRGVzY3JpcHRpb24ACAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAB AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoAAAAKRHJvcC1kb3duMaEAAAARAAAA FwEAAHUAAAAGT3duZXI6oQAAAAcAAAC5AAAADwAAAAVPd25lcgAIAAAAAAAAAAAIAAAAAAAAAAEA AAAAAAAAAAAAAAAAAAEAAAAAAAAAAP////8KQmVnaW4gRm9ybQAAAAAAAAAAHwEAANAAAAAZVW5p ZmllZCBDaGFuZ2UgTWFuYWdlbWVudA5CYXNlQ01BY3Rpdml0eQEAAAAAAAAADQAAAAAHAAAASQAA ABgBAADPAAAACkNoYW5nZSBTZXQAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAAAAAAACFD bGVhckNhc2UuQWN0aXZpdHlDaGFuZ2VTZXRDdHJsLjEAF1VDTV9DaGFuZ2VTZXRfU2V0RW50aXR5 AQAAAAAFAAAAPAAAAFMAAABEAAAAC0NoYW5nZSBTZXQ6AAAAAAAAAAAAAAAAAAAAAAAACAAAAAAA AAAACAAAAAAAAAAAAAAAAAAAAAIAAAAFVGV4dDGTAAAAEQAAABgBAAAfAAAAB1N0cmVhbTqTAAAA BgAAAKwAAAAOAAAACnVjbV9zdHJlYW0ACAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAFVGV4dDIFAAAAKgAAAIoAAAA4AAAA BVZpZXc6BQAAACEAAAAYAAAAKQAAAAh1Y21fdmlldwAIAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAA AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAAAApEcm9wLWRvd24xBQAA ABEAAACKAAAAawAAAAxVQ00gUHJvamVjdDoFAAAABgAAADAAAAAOAAAAC3VjbV9wcm9qZWN0AAgA AAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA/////wEAAAAA=", "BaseCMActivity") ADD formdef ( "BaseCMActivity", "BaseCMActivity_Submit", FALSE , "", "DwAAABFCZWdpbiBUYWJiZWQgRm9ybQIAAAAAAAAAAAgAAAAAAAAAAwAAAAMAAABxAQAA/AAAAApE aWFsb2cgVGFiDkJhc2VDTUFjdGl2aXR5AQAAAAAAAAAAAAAAADcBAAAPAAAAZwEAAB0AAAAAAAAA AAAAAAAAAAAAAAAAAAAACAAAAAAAAAAACAAAAAAAAAABAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAA AAAAAAAANwEAACUAAABnAQAAMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAAAAAA AAIAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAA3AQAAOwAAAGcBAABJAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAAAwAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAD///// CkJlZ2luIEZvcm0AAAAAAAAAACEBAADWAAAABE1haW4OQmFzZUNNQWN0aXZpdHkBAAAAAAAAAAIA AAAFVGV4dDEJAAAAEQAAAJUAAAAfAAAAA0lEOgkAAAAHAAAAFAAAAA8AAAACaWQACAAAAAAAAAAA CAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIA AAAFVGV4dDIJAAAAKgAAAJUAAAA4AAAABlN0YXRlOgkAAAAhAAAAHQAAACkAAAAFU3RhdGUACAAA AAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AQAAAAIAAAAFVGV4dDMJAAAARgAAABYBAABUAAAACUhlYWRsaW5lOgkAAAA9AAAAKAAAAEUAAAAI SGVhZGxpbmUACAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAQAAAAIAAAAFVGV4dDQJAAAAYQAAABcBAADPAAAADERlc2NyaXB0aW9uOgkA AABYAAAAMAAAAGAAAAALRGVzY3JpcHRpb24ACAAAAAAAAAAACAAAAAAAAAAAAAAAAQAAAAAAAAAB AAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoAAAAKRHJvcC1kb3duMaEAAAARAAAA FwEAAHUAAAAGT3duZXI6oQAAAAcAAAC5AAAADwAAAAVPd25lcgAIAAAAAAAAAAAIAAAAAAAAAAEA AAAAAAAAAAAAAAAAAAEAAAAAAAAAAP////8KQmVnaW4gRm9ybQAAAAAAAAAAHwEAAM8AAAAZVW5p ZmllZCBDaGFuZ2UgTWFuYWdlbWVudA5CYXNlQ01BY3Rpdml0eQEAAAAAAAAACgAAAApEcm9wLWRv d24xCgAAABUAAACPAAAAbwAAAAxVQ00gUHJvamVjdDoNAAAACQAAADgAAAARAAAAC3VjbV9wcm9q ZWN0AAgAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA/////wEAAAAA=", "BaseCMActivity") ADD formdef ( "UCM_Project", "ucm_project", TRUE , "", "DwAAABFCZWdpbiBUYWJiZWQgRm9ybQIAAAAAAAAAAAgAAAAAAAAAAwAAAAMAAAA1AQAAGgEAAApE aWFsb2cgVGFiC1VDTV9Qcm9qZWN0AQAAAAAAAAAAAAAAAPsAAAAPAAAAKwEAAB0AAAAFQXBwbHkA AAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAQAAAAAAAAAA AAAAAAAAAAD7AAAAJQAAACsBAAAzAAAABlJldmVydAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAA AAgAAAAAAAAAAgAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAPsAAAA7AAAAKwEAAEkAAAAH QWN0aW9ucwAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAAAwAAAAAAAAAAAAAAAAAB AAAAAAAAAAAAAAD/////CkJlZ2luIEZvcm0AAAAAAAAAAOUAAAD0AAAAC1VDTSBQcm9qZWN0C1VD TV9Qcm9qZWN0AQAAAAAAAAACAAAABVRleHQxCQAAABQAAAC4AAAAIgAAAAVOYW1lOgkAAAAJAAAA HwAAABEAAAAEbmFtZQAIAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAZDaGVjazEXAAAAOQAAAKwAAABDAAAAJ1BlcmZvcm0g Q2xlYXJRdWVzdCBBY3Rpb24gQmVmb3JlIFdvcmtPbgAAAAAAAAAAAAAAAAAAAAAWdWNtX2Noa19i ZWZvcmVfd29ya19vbgAIAAAAAAAAAAAIAAAAAAAAAAExATAEAAAABkNoZWNrMhYAAABdAAAArAAA AGYAAAApUGVyZm9ybSBDbGVhclF1ZXN0IEFjdGlvbiBCZWZvcmUgRGVsaXZlcnkAAAAAAAAAAAAA AAAAAAAAFnVjbV9jaGtfYmVmb3JlX2RlbGl2ZXIACAAAAAAAAAAACAAAAAAAAAABMQEwBAAAAAZD aGVjazMWAAAAeQAAAKYAAACCAAAAKFBlcmZvcm0gQ2xlYXJRdWVzdCBBY3Rpb24gQWZ0ZXIgRGVs aXZlcnkAAAAAAAAAAAAAAAAAAAAAGHVjbV9jcV9hY3RfYWZ0ZXJfZGVsaXZlcgAIAAAAAAAAAAAI AAAAAAAAAAExATADAAAAAAkAAAAtAAAA3QAAAEcAAAAQV29ya09uIFBvbGljaWVzOgAAAAAAAAAA AAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAABAAAAAZDaGVjazQWAAAAawAAALsAAAB0AAAALlRy YW5zZmVyIENsZWFyUXVlc3QgTWFzdGVyc2hpcCBCZWZvcmUgRGVsaXZlcnkAAAAAAAAAAAAAAAAA AAAAGHVjbV9jaGtfbXN0cl9iZWZvcmVfZGx2cgAIAAAAAAAAAAAIAAAAAAAAAAExATAEAAAABkNo ZWNrNRYAAACHAAAAnQAAAJAAAAAlVHJhbnNpdGlvbiBUbyBDb21wbGV0ZSBBZnRlciBEZWxpdmVy eQAAAAAAAAAAAAAAAAAAAAAXdWNtX2NxX3RyYW5zX2FmdGVyX2RsdnIACAAAAAAAAAAACAAAAAAA AAABMQEwAwAAAAAJAAAArwAAAN4AAADmAAAAGUNoYW5nZSBBY3Rpdml0eSBQb2xpY2llczoAAAAA AAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAAAAAAAAQAAAAGQ2hlY2s2EwAAALsAAADIAAAAwwAA ADJQZXJmb3JtIENsZWFyUXVlc3QgQWN0aW9uIEJlZm9yZSBDaGFuZ2luZyBBY3Rpdml0eQAAAAAA AAAAAAAAAAAAAAAXdWNtX2NxX2FjdF9iZWZvcmVfY2hhY3QACAAAAAAAAAAACAAAAAAAAAABMQEw BAAAAAZDaGVjazcTAAAAyQAAAMUAAADSAAAAMFBlcmZvbSBDbGVhclF1ZXN0IEFjdGlvbiBBZnRl ciBDaGFuZ2luZyBBY3Rpdml0eQAAAAAAAAAAAAAAAAAAAAAWdWNtX2NxX2FjdF9hZnRlcl9jaGFj dAAIAAAAAAAAAAAIAAAAAAAAAAExATAEAAAABkNoZWNrOBMAAADXAAAAwAAAAOAAAAAuVHJhbnNp dGlvbiBUbyBDb21wbGV0ZSBBZnRlciBDaGFuZ2luZyBBY3Rpdml0eQAAAAAAAAAAAAAAAAAAAAAY dWNtX2NxX3RyYW5zX2FmdGVyX2NoYWN0AAgAAAAAAAAAAAgAAAAAAAAAATEBMAQAAAAGQ2hlY2s5 FgAAAJUAAAC5AAAAngAAAC1UcmFuc2ZlciBDbGVhclF1ZXN0IE1hc3RlcnNoaXAgQWZ0ZXIgRGVs aXZlcnkAAAAAAAAAAAAAAAAAAAAAF3VjbV9jaGtfbXN0cl9hZnRlcl9kbHZyAAgAAAAAAAAAAAgA AAAAAAAAATEBMAMAAAAACgAAAFEAAADeAAAAowAAABFEZWxpdmVyIFBvbGljaWVzOgAAAAAAAAAA AAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAA/////wpCZWdpbiBGb3JtAAAAAAAAAADlAAAA9AAA AAdIaXN0b3J5C1VDTV9Qcm9qZWN0AQAAAAAAAAAUAAAAAA4AAAAMAAAA3QAAAOsAAAAHSGlzdG9y eQAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAA/////wAA=", "UnifiedChangeManagement") ADD formdef ( "UCMUtilityActivity", "UCMUtilityActivity_Submit", FALSE , "", "DwAAABFCZWdpbiBUYWJiZWQgRm9ybQIAAAAAAAAAAAgAAAAAAAAAAwAAAAMAAABxAQAA/QAAAApE aWFsb2cgVGFiElVDTVV0aWxpdHlBY3Rpdml0eQEAAAAAAAAAAAAAAAA3AQAADwAAAGcBAAAdAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAA AAAAAAAAAAAAADcBAAAlAAAAZwEAADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAACAAA AAAAAAACAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAANwEAADsAAABnAQAASQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA /////wpCZWdpbiBGb3JtAAAAAAAAAAAhAQAA1wAAAARNYWluElVDTVV0aWxpdHlBY3Rpdml0eQEA AAAAAAAAAgAAAAVUZXh0MQkAAAARAAAAlQAAAB8AAAADSUQ6CQAAAAcAAAAUAAAADwAAAAJpZAAI AAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAABAAAAAgAAAAVUZXh0MgkAAAAqAAAAlQAAADgAAAAGU3RhdGU6CQAAACEAAAAdAAAAKQAAAAVT dGF0ZQAIAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAABAAAAAgAAAAVUZXh0MwkAAABGAAAAFgEAAFQAAAAJSGVhZGxpbmU6CQAAAD0AAAAo AAAARQAAAAhIZWFkbGluZQAIAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAVUZXh0NAkAAABhAAAAFwEAAM8AAAAMRGVzY3Jp cHRpb246CQAAAFgAAAAwAAAAYAAAAAtEZXNjcmlwdGlvbgAIAAAAAAAAAAAIAAAAAAAAAAAAAAAB AAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAAAApEcm9wLWRvd24x oQAAABEAAAAXAQAAdQAAAAZPd25lcjqhAAAABwAAALkAAAAPAAAABU93bmVyAAgAAAAAAAAAAAgA AAAAAAAAAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA/////wpCZWdpbiBGb3JtAAAAAAAAAAAfAQAA zwAAABlVbmlmaWVkIENoYW5nZSBNYW5hZ2VtZW50ElVDTVV0aWxpdHlBY3Rpdml0eQEAAAAAAAAA CgAAAApEcm9wLWRvd24xCgAAABUAAACPAAAAbwAAAAxVQ00gUHJvamVjdDoNAAAACQAAADgAAAAR AAAAC3VjbV9wcm9qZWN0AAgAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA /////wEAAAAA=", "UnifiedChangeManagement") ADD formdef ( "UCMUtilityActivity", "UCMUtilityActivity_Modify", TRUE , "", "DwAAABFCZWdpbiBUYWJiZWQgRm9ybQIAAAAAAAAAAAgAAAAAAAAAAwAAAAMAAABvAQAA/AAAAApE aWFsb2cgVGFiElVDTVV0aWxpdHlBY3Rpdml0eQEAAAAAAAAAAAAAAAA1AQAADwAAAGUBAAAdAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAA AAAAAAAAAAAAADUBAAAlAAAAZQEAADMAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAACAAA AAAAAAACAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAANQEAADsAAABlAQAASQAAAAAAAAAA AAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAIAAAAAAAAAAMAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA /////wpCZWdpbiBGb3JtAAAAAAAAAAAfAQAA1gAAAARNYWluElVDTVV0aWxpdHlBY3Rpdml0eQEA AAAAAAAAAgAAAAVUZXh0MQkAAAARAAAAlQAAAB8AAAADSUQ6CQAAAAcAAAAUAAAADwAAAAJpZAAI AAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAABAAAAAgAAAAVUZXh0MgkAAAAqAAAAlQAAADgAAAAGU3RhdGU6CQAAACEAAAAdAAAAKQAAAAVT dGF0ZQAIAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAABAAAAAgAAAAVUZXh0MwkAAABGAAAAFgEAAFQAAAAJSGVhZGxpbmU6CQAAAD4AAAAo AAAARgAAAAhIZWFkbGluZQAIAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAVUZXh0NAkAAABhAAAAFwEAAM8AAAAMRGVzY3Jp cHRpb246CQAAAFgAAAAwAAAAYAAAAAtEZXNjcmlwdGlvbgAIAAAAAAAAAAAIAAAAAAAAAAAAAAAB AAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAAAApEcm9wLWRvd24x oQAAABEAAAAXAQAAdQAAAAZPd25lcjqhAAAABwAAALkAAAAPAAAABU93bmVyAAgAAAAAAAAAAAgA AAAAAAAAAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA/////wpCZWdpbiBGb3JtAAAAAAAAAAAfAQAA 0AAAABlVbmlmaWVkIENoYW5nZSBNYW5hZ2VtZW50ElVDTVV0aWxpdHlBY3Rpdml0eQEAAAAAAAAA DQAAAAAHAAAASQAAABgBAADPAAAACkNoYW5nZSBTZXQAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAA AAAIAAAAAAAAACFDbGVhckNhc2UuQWN0aXZpdHlDaGFuZ2VTZXRDdHJsLjEAF1VDTV9DaGFuZ2VT ZXRfU2V0RW50aXR5AQAAAAAFAAAAPAAAAFMAAABEAAAAC0NoYW5nZSBTZXQ6AAAAAAAAAAAAAAAA AAAAAAAACAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAIAAAAFVGV4dDGTAAAAEQAAABgBAAAfAAAA B1N0cmVhbTqTAAAABgAAAKwAAAAOAAAACnVjbV9zdHJlYW0ACAAAAAAAAAAACAAAAAAAAAAAAAAA AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAFVGV4dDIFAAAA KgAAAIoAAAA4AAAABVZpZXc6BQAAACEAAAAYAAAAKQAAAAh1Y21fdmlldwAIAAAAAAAAAAAIAAAA AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAAAApE cm9wLWRvd24xBQAAABEAAACKAAAAawAAAAxVQ00gUHJvamVjdDoFAAAABgAAADAAAAAOAAAAC3Vj bV9wcm9qZWN0AAgAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAQAAAAAAAAAA/////wEA AAAA=", "UnifiedChangeManagement") ADD actiondef ( "ratl_replicas", "Submit", "", SUBMIT , "", "", "", "", 0 ) ADD actiondef ( "ratl_replicas", "Import", "", IMPORT , "", "", "", "", 0 ) ADD actiondef ( "history", "Submit", "", SUBMIT , "", "", "", "", 0 ) ADD actiondef ( "history", "Import", "", IMPORT , "", "", "", "", 0 ) ADD actiondef ( "attachments", "Submit", "", SUBMIT , "", "", "", "", 0 ) ADD actiondef ( "attachments", "Import", "", IMPORT , "", "", "", "", 0 ) ADD actiondef ( "groups", "Submit", "", SUBMIT , "", "", "", "", 0 ) ADD actiondef ( "groups", "Import", "", IMPORT , "", "", "", "", 0 ) ADD actiondef ( "users", "Submit", "", SUBMIT , "", "", "", "", 0 ) ADD actiondef ( "users", "Import", "", IMPORT , "", "", "", "", 0 ) ADD actiondef ( "Defect", "Submit", "", SUBMIT , "", "Defect_Base_Submit", "Submitted", "UnifiedChangeManagement", 4 ) ADD actiondef ( "Defect", "Assign", "", CHANGE_STATE , "", "", "Assigned", "", 0 ) ADD actiondef ( "Defect", "Open", "", CHANGE_STATE , "", "", "Opened", "", 0 ) ADD actiondef ( "Defect", "Resolve", "", CHANGE_STATE , "", "", "Resolved", "", 0 ) ADD actiondef ( "Defect", "Validate", "", CHANGE_STATE , "", "", "Closed", "", 0 ) ADD actiondef ( "Defect", "Reject", "", CHANGE_STATE , "", "", "Opened", "", 0 ) ADD actiondef ( "Defect", "Re_open", "", CHANGE_STATE , "", "", "Opened", "", 0 ) ADD actiondef ( "Defect", "Close", "", CHANGE_STATE , "", "", "Closed", "", 0 ) ADD actiondef ( "Defect", "Duplicate", "", DUPLICATE , "Make a Defect a duplicate", "", "Duplicate", "", 0 ) ADD actiondef ( "Defect", "Unduplicate", "", UNDUPLICATE , "Makes a previous duplicated Defect back to it's original state", "", "", "", 0 ) ADD actiondef ( "Defect", "Postpone", "", CHANGE_STATE , "", "", "Postponed", "", 0 ) ADD actiondef ( "Defect", "Modify", "", MODIFY , "", "", "", "", 0 ) ADD actiondef ( "Defect", "Delete", "", DELETE , "", "", "", "", 0 ) ADD actiondef ( "Defect", "Import", "", IMPORT , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "Defect", "Init_Note_Entry", "", BASE , "", "", "", "Notes", 4 ) ADD actiondef ( "Email_Rule", "Submit", "", SUBMIT , "", "", "", "Email", 0 ) ADD actiondef ( "Email_Rule", "Import", "", IMPORT , "", "", "", "Email", 0 ) ADD actiondef ( "Email_Rule", "Modify", "", MODIFY , "", "", "", "Email", 4 ) ADD actiondef ( "Email_Rule", "Email_Maintenance", "", BASE , "", "", "", "Email", 0 ) ADD actiondef ( "Email_Rule", "Delete", "", DELETE , "", "", "", "Email", 4 ) ADD actiondef ( "Defect", "Send_Email_Notif", "", BASE , "", "", "", "Email", 0 ) ADD actiondef ( "BaseCMActivity", "Submit", "", SUBMIT , "", "BaseCMActivity_Submit", "Submitted", "UnifiedChangeManagement", 4 ) ADD actiondef ( "BaseCMActivity", "Import", "", IMPORT , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "BaseCMActivity", "Modify", "", MODIFY , "", "", "", "BaseCMActivity", 4 ) ADD actiondef ( "BaseCMActivity", "Delete", "", DELETE , "", "", "", "BaseCMActivity", 4 ) ADD actiondef ( "BaseCMActivity", "Assign", "", CHANGE_STATE , "", "", "Ready", "BaseCMActivity", 4 ) ADD actiondef ( "BaseCMActivity", "Activate", "", CHANGE_STATE , "", "", "Active", "BaseCMActivity", 4 ) ADD actiondef ( "BaseCMActivity", "Complete", "", CHANGE_STATE , "", "", "Complete", "BaseCMActivity", 4 ) ADD actiondef ( "BaseCMActivity", "Re_open", "", CHANGE_STATE , "", "", "Ready", "BaseCMActivity", 4 ) ADD actiondef ( "BaseCMActivity", "Postpone", "", CHANGE_STATE , "", "", "Submitted", "BaseCMActivity", 4 ) ADD actiondef ( "UCM_Project", "Submit", "", SUBMIT , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCM_Project", "Import", "", IMPORT , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCM_Project", "Modify", "", MODIFY , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCM_Project", "Delete", "", DELETE , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCM_Project", "ucm_base_synchronize", "", BASE , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "Submit", "", SUBMIT , "", "UCMUtilityActivity_Submit", "Submitted", "UnifiedChangeManagement", 4 ) ADD actiondef ( "UCMUtilityActivity", "Import", "", IMPORT , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "Modify", "", MODIFY , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "Delete", "", DELETE , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "Assign", "", CHANGE_STATE , "", "", "Ready", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "Activate", "", CHANGE_STATE , "", "", "Active", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "Complete", "", CHANGE_STATE , "", "", "Complete", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "ReOpen", "", CHANGE_STATE , "", "", "Ready", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "Postpone", "", CHANGE_STATE , "", "", "Submitted", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "Contributors", "", RECORD_SCRIPT_ALIAS , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "ucm_base_synchronize", "", BASE , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "UCMUtilityActivity", "WorkOn", "", RECORD_SCRIPT_ALIAS , "", "", "", "UnifiedChangeManagement", 4 ) ADD actiondef ( "Defect", "ucm_base_synchronize", "", BASE , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "Defect", "WorkOn", "", RECORD_SCRIPT_ALIAS , "", "", "", "UnifiedChangeManagement", 4 ) ADD actiondef ( "BaseCMActivity", "ucm_base_synchronize", "", BASE , "", "", "", "UnifiedChangeManagement", 0 ) ADD actiondef ( "BaseCMActivity", "WorkOn", "", RECORD_SCRIPT_ALIAS , "", "", "", "UnifiedChangeManagement", 4 ) ADD state_legal_action ( "Defect", "Closed", "Re_open") ADD state_legal_action ( "Defect", "Submitted", "Close") ADD state_legal_action ( "Defect", "Opened", "Resolve") ADD state_legal_action ( "Defect", "Resolved", "Reject") ADD state_legal_action ( "Defect", "Resolved", "Validate") ADD state_legal_action ( "Defect", "Resolved", "Duplicate") ADD state_legal_action ( "Defect", "Closed", "Duplicate") ADD state_legal_action ( "Defect", "Opened", "Duplicate") ADD state_legal_action ( "Defect", "Submitted", "Duplicate") ADD state_legal_action ( "Defect", "Duplicate", "Unduplicate") ADD state_legal_action ( "Defect", "Submitted", "Assign") ADD state_legal_action ( "Defect", "Submitted", "Postpone") ADD state_legal_action ( "Defect", "Opened", "Postpone") ADD state_legal_action ( "Defect", "Postponed", "Close") ADD state_legal_action ( "Defect", "Assigned", "Postpone") ADD state_legal_action ( "Defect", "Assigned", "Open") ADD state_legal_action ( "Defect", "Postponed", "Assign") ADD state_legal_action ( "Defect", "Assigned", "Close") ADD state_legal_action ( "BaseCMActivity", "Submitted", "Assign") ADD state_legal_action ( "BaseCMActivity", "Ready", "Activate") ADD state_legal_action ( "BaseCMActivity", "Active", "Complete") ADD state_legal_action ( "BaseCMActivity", "Complete", "Re_open") ADD state_legal_action ( "BaseCMActivity", "Ready", "Postpone") ADD state_legal_action ( "BaseCMActivity", "Active", "Postpone") ADD state_legal_action ( "UCMUtilityActivity", "Submitted", "Assign") ADD state_legal_action ( "UCMUtilityActivity", "Ready", "Activate") ADD state_legal_action ( "UCMUtilityActivity", "Active", "Complete") ADD state_legal_action ( "UCMUtilityActivity", "Complete", "ReOpen") ADD state_legal_action ( "UCMUtilityActivity", "Ready", "Postpone") ADD state_legal_action ( "UCMUtilityActivity", "Active", "Postpone") ADD field_status_def ( "ratl_replicas", "", "dbid", READONLY ) ADD field_status_def ( "ratl_replicas", "", "is_active", READONLY ) ADD field_status_def ( "ratl_replicas", "", "version", READONLY ) ADD field_status_def ( "ratl_replicas", "", "lock_version", READONLY ) ADD field_status_def ( "ratl_replicas", "", "locked_by", READONLY ) ADD field_status_def ( "ratl_replicas", "", "record_type", READONLY ) ADD field_status_def ( "ratl_replicas", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "ratl_replicas", "", "ratl_keysite", READONLY ) ADD field_status_def ( "ratl_replicas", "", "uuid", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "name", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "clan", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "family", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "host", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "description", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "schema_id", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "schema_rev", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "schemarev_version", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "operating_rev", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "formatted_rev", MANDATORY ) ADD field_status_def ( "ratl_replicas", "", "flags", MANDATORY ) ADD field_status_def ( "history", "", "dbid", READONLY ) ADD field_status_def ( "history", "", "is_active", READONLY ) ADD field_status_def ( "history", "", "version", READONLY ) ADD field_status_def ( "history", "", "lock_version", READONLY ) ADD field_status_def ( "history", "", "locked_by", READONLY ) ADD field_status_def ( "history", "", "entity_dbid", MANDATORY ) ADD field_status_def ( "history", "", "entitydef_id", MANDATORY ) ADD field_status_def ( "history", "", "entitydef_name", MANDATORY ) ADD field_status_def ( "history", "", "action_timestamp", MANDATORY ) ADD field_status_def ( "history", "", "user_name", MANDATORY ) ADD field_status_def ( "history", "", "action_name", MANDATORY ) ADD field_status_def ( "history", "", "old_state", MANDATORY ) ADD field_status_def ( "history", "", "new_state", MANDATORY ) ADD field_status_def ( "history", "", "expired_timestamp", MANDATORY ) ADD field_status_def ( "history", "", "comments", OPTIONAL ) ADD field_status_def ( "attachments", "", "dbid", READONLY ) ADD field_status_def ( "attachments", "", "is_active", READONLY ) ADD field_status_def ( "attachments", "", "version", READONLY ) ADD field_status_def ( "attachments", "", "lock_version", READONLY ) ADD field_status_def ( "attachments", "", "locked_by", READONLY ) ADD field_status_def ( "attachments", "", "history", READONLY ) ADD field_status_def ( "attachments", "", "entity_dbid", MANDATORY ) ADD field_status_def ( "attachments", "", "entity_fielddef_id", MANDATORY ) ADD field_status_def ( "attachments", "", "description", OPTIONAL ) ADD field_status_def ( "attachments", "", "filename", MANDATORY ) ADD field_status_def ( "attachments", "", "filesize", MANDATORY ) ADD field_status_def ( "groups", "", "dbid", READONLY ) ADD field_status_def ( "groups", "", "is_active", READONLY ) ADD field_status_def ( "groups", "", "version", READONLY ) ADD field_status_def ( "groups", "", "lock_version", READONLY ) ADD field_status_def ( "groups", "", "locked_by", READONLY ) ADD field_status_def ( "groups", "", "history", READONLY ) ADD field_status_def ( "groups", "", "name", MANDATORY ) ADD field_status_def ( "groups", "", "master_dbid", MANDATORY ) ADD field_status_def ( "users", "", "dbid", READONLY ) ADD field_status_def ( "users", "", "is_active", READONLY ) ADD field_status_def ( "users", "", "version", READONLY ) ADD field_status_def ( "users", "", "lock_version", READONLY ) ADD field_status_def ( "users", "", "locked_by", READONLY ) ADD field_status_def ( "users", "", "history", READONLY ) ADD field_status_def ( "users", "", "login_name", MANDATORY ) ADD field_status_def ( "users", "", "master_dbid", MANDATORY ) ADD field_status_def ( "users", "", "fullname", OPTIONAL ) ADD field_status_def ( "users", "", "phone", OPTIONAL ) ADD field_status_def ( "users", "", "email", OPTIONAL ) ADD field_status_def ( "users", "", "misc_info", OPTIONAL ) ADD field_status_def ( "users", "", "encrypted_password", MANDATORY ) ADD field_status_def ( "users", "", "is_superuser", MANDATORY ) ADD field_status_def ( "users", "", "is_appbuilder", MANDATORY ) ADD field_status_def ( "users", "", "is_user_maint", MANDATORY ) ADD field_status_def ( "users", "", "groups", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "dbid", READONLY ) ADD field_status_def ( "Defect", "Submitted", "is_active", READONLY ) ADD field_status_def ( "Defect", "Submitted", "id", READONLY ) ADD field_status_def ( "Defect", "Submitted", "State", READONLY ) ADD field_status_def ( "Defect", "Submitted", "version", READONLY ) ADD field_status_def ( "Defect", "Submitted", "lock_version", READONLY ) ADD field_status_def ( "Defect", "Submitted", "locked_by", READONLY ) ADD field_status_def ( "Defect", "Submitted", "history", READONLY ) ADD field_status_def ( "Defect", "Submitted", "is_duplicate", READONLY ) ADD field_status_def ( "Defect", "Submitted", "unduplicate_state", READONLY ) ADD field_status_def ( "Defect", "Submitted", "Headline", MANDATORY ) ADD field_status_def ( "Defect", "Submitted", "Description", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "Priority", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "Severity", MANDATORY ) ADD field_status_def ( "Defect", "Submitted", "Submitter", READONLY ) ADD field_status_def ( "Defect", "Submitted", "Submit_Date", READONLY ) ADD field_status_def ( "Defect", "Submitted", "Owner", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "old_id", READONLY ) ADD field_status_def ( "Defect", "Submitted", "Keywords", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "Symptoms", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "dbid", READONLY ) ADD field_status_def ( "Defect", "Opened", "is_active", READONLY ) ADD field_status_def ( "Defect", "Opened", "id", READONLY ) ADD field_status_def ( "Defect", "Opened", "State", READONLY ) ADD field_status_def ( "Defect", "Opened", "version", READONLY ) ADD field_status_def ( "Defect", "Opened", "lock_version", READONLY ) ADD field_status_def ( "Defect", "Opened", "locked_by", READONLY ) ADD field_status_def ( "Defect", "Opened", "history", READONLY ) ADD field_status_def ( "Defect", "Opened", "is_duplicate", READONLY ) ADD field_status_def ( "Defect", "Opened", "unduplicate_state", READONLY ) ADD field_status_def ( "Defect", "Opened", "Headline", MANDATORY ) ADD field_status_def ( "Defect", "Opened", "Description", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "Priority", MANDATORY ) ADD field_status_def ( "Defect", "Opened", "Severity", MANDATORY ) ADD field_status_def ( "Defect", "Opened", "Submitter", READONLY ) ADD field_status_def ( "Defect", "Opened", "Submit_Date", READONLY ) ADD field_status_def ( "Defect", "Opened", "Owner", MANDATORY ) ADD field_status_def ( "Defect", "Opened", "old_id", READONLY ) ADD field_status_def ( "Defect", "Opened", "Keywords", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "Symptoms", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "dbid", READONLY ) ADD field_status_def ( "Defect", "Resolved", "is_active", READONLY ) ADD field_status_def ( "Defect", "Resolved", "id", READONLY ) ADD field_status_def ( "Defect", "Resolved", "State", READONLY ) ADD field_status_def ( "Defect", "Resolved", "version", READONLY ) ADD field_status_def ( "Defect", "Resolved", "lock_version", READONLY ) ADD field_status_def ( "Defect", "Resolved", "locked_by", READONLY ) ADD field_status_def ( "Defect", "Resolved", "history", READONLY ) ADD field_status_def ( "Defect", "Resolved", "is_duplicate", READONLY ) ADD field_status_def ( "Defect", "Resolved", "unduplicate_state", READONLY ) ADD field_status_def ( "Defect", "Resolved", "Headline", MANDATORY ) ADD field_status_def ( "Defect", "Resolved", "Description", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "Priority", MANDATORY ) ADD field_status_def ( "Defect", "Resolved", "Severity", MANDATORY ) ADD field_status_def ( "Defect", "Resolved", "Submitter", READONLY ) ADD field_status_def ( "Defect", "Resolved", "Submit_Date", READONLY ) ADD field_status_def ( "Defect", "Resolved", "Owner", MANDATORY ) ADD field_status_def ( "Defect", "Resolved", "old_id", READONLY ) ADD field_status_def ( "Defect", "Resolved", "Keywords", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "Symptoms", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "dbid", READONLY ) ADD field_status_def ( "Defect", "Closed", "is_active", READONLY ) ADD field_status_def ( "Defect", "Closed", "id", READONLY ) ADD field_status_def ( "Defect", "Closed", "State", READONLY ) ADD field_status_def ( "Defect", "Closed", "version", READONLY ) ADD field_status_def ( "Defect", "Closed", "lock_version", READONLY ) ADD field_status_def ( "Defect", "Closed", "locked_by", READONLY ) ADD field_status_def ( "Defect", "Closed", "history", READONLY ) ADD field_status_def ( "Defect", "Closed", "is_duplicate", READONLY ) ADD field_status_def ( "Defect", "Closed", "unduplicate_state", READONLY ) ADD field_status_def ( "Defect", "Closed", "Headline", MANDATORY ) ADD field_status_def ( "Defect", "Closed", "Description", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "Priority", MANDATORY ) ADD field_status_def ( "Defect", "Closed", "Severity", MANDATORY ) ADD field_status_def ( "Defect", "Closed", "Submitter", READONLY ) ADD field_status_def ( "Defect", "Closed", "Submit_Date", READONLY ) ADD field_status_def ( "Defect", "Closed", "Owner", MANDATORY ) ADD field_status_def ( "Defect", "Closed", "old_id", READONLY ) ADD field_status_def ( "Defect", "Closed", "Keywords", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "Symptoms", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "dbid", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "is_active", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "id", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "State", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "version", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "lock_version", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "locked_by", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "history", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "is_duplicate", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "unduplicate_state", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "Headline", MANDATORY ) ADD field_status_def ( "Defect", "Duplicate", "Description", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "Priority", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "Severity", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "Submitter", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "Submit_Date", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "Owner", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "old_id", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "Keywords", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "Symptoms", OPTIONAL ) ADD field_status_def ( "users", "", "record_type", READONLY ) ADD field_status_def ( "groups", "", "record_type", READONLY ) ADD field_status_def ( "attachments", "", "record_type", READONLY ) ADD field_status_def ( "Defect", "Submitted", "record_type", READONLY ) ADD field_status_def ( "Defect", "Opened", "record_type", READONLY ) ADD field_status_def ( "Defect", "Resolved", "record_type", READONLY ) ADD field_status_def ( "Defect", "Closed", "record_type", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "record_type", READONLY ) ADD field_status_def ( "history", "", "record_type", READONLY ) ADD field_status_def ( "Defect", "Postponed", "record_type", READONLY ) ADD field_status_def ( "Defect", "Postponed", "dbid", READONLY ) ADD field_status_def ( "Defect", "Postponed", "is_active", READONLY ) ADD field_status_def ( "Defect", "Postponed", "id", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "State", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "version", READONLY ) ADD field_status_def ( "Defect", "Postponed", "lock_version", READONLY ) ADD field_status_def ( "Defect", "Postponed", "locked_by", READONLY ) ADD field_status_def ( "Defect", "Postponed", "history", READONLY ) ADD field_status_def ( "Defect", "Postponed", "is_duplicate", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "unduplicate_state", READONLY ) ADD field_status_def ( "Defect", "Postponed", "Headline", MANDATORY ) ADD field_status_def ( "Defect", "Postponed", "Description", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "Priority", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "Severity", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "Submitter", READONLY ) ADD field_status_def ( "Defect", "Postponed", "Submit_Date", READONLY ) ADD field_status_def ( "Defect", "Postponed", "Owner", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "old_id", READONLY ) ADD field_status_def ( "Defect", "Postponed", "Keywords", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "Symptoms", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "record_type", READONLY ) ADD field_status_def ( "Defect", "Assigned", "dbid", READONLY ) ADD field_status_def ( "Defect", "Assigned", "is_active", READONLY ) ADD field_status_def ( "Defect", "Assigned", "id", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "State", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "version", READONLY ) ADD field_status_def ( "Defect", "Assigned", "lock_version", READONLY ) ADD field_status_def ( "Defect", "Assigned", "locked_by", READONLY ) ADD field_status_def ( "Defect", "Assigned", "history", READONLY ) ADD field_status_def ( "Defect", "Assigned", "is_duplicate", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "unduplicate_state", READONLY ) ADD field_status_def ( "Defect", "Assigned", "Headline", MANDATORY ) ADD field_status_def ( "Defect", "Assigned", "Description", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "Priority", MANDATORY ) ADD field_status_def ( "Defect", "Assigned", "Severity", MANDATORY ) ADD field_status_def ( "Defect", "Assigned", "Submitter", READONLY ) ADD field_status_def ( "Defect", "Assigned", "Submit_Date", READONLY ) ADD field_status_def ( "Defect", "Assigned", "Owner", MANDATORY ) ADD field_status_def ( "Defect", "Assigned", "old_id", READONLY ) ADD field_status_def ( "Defect", "Assigned", "Keywords", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "Symptoms", OPTIONAL ) ADD field_status_def ( "users", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "users", "", "ratl_keysite", READONLY ) ADD field_status_def ( "users", "", "ratl_priv_mask", OPTIONAL ) ADD field_status_def ( "groups", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "groups", "", "ratl_keysite", READONLY ) ADD field_status_def ( "attachments", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "attachments", "", "ratl_keysite", READONLY ) ADD field_status_def ( "Defect", "Submitted", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "history", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "history", "", "ratl_keysite", READONLY ) ADD field_status_def ( "Defect", "Submitted", "Note_Entry", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "Note_Entry", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "Note_Entry", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "Note_Entry", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "Note_Entry", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "Note_Entry", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "Note_Entry", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "Notes_Log", READONLY ) ADD field_status_def ( "Defect", "Assigned", "Notes_Log", READONLY ) ADD field_status_def ( "Defect", "Opened", "Notes_Log", READONLY ) ADD field_status_def ( "Defect", "Resolved", "Notes_Log", READONLY ) ADD field_status_def ( "Defect", "Closed", "Notes_Log", READONLY ) ADD field_status_def ( "Defect", "Duplicate", "Notes_Log", READONLY ) ADD field_status_def ( "Defect", "Postponed", "Notes_Log", READONLY ) ADD field_status_def ( "Defect", "Submitted", "Resolution_Statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "Resolution", USE_HOOK ) ADD field_status_def ( "Defect", "Assigned", "Resolution_Statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "Resolution_Statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "Resolution_Statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "Resolution_Statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "Resolution_Statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "Resolution_Statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "Resolution", USE_HOOK ) ADD field_status_def ( "Defect", "Opened", "Resolution", USE_HOOK ) ADD field_status_def ( "Defect", "Resolved", "Resolution", USE_HOOK ) ADD field_status_def ( "Defect", "Closed", "Resolution", USE_HOOK ) ADD field_status_def ( "Defect", "Duplicate", "Resolution", USE_HOOK ) ADD field_status_def ( "Defect", "Postponed", "Resolution", USE_HOOK ) ADD field_status_def ( "Defect", "Submitted", "Attachments", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "Attachments", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "Attachments", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "Attachments", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "Attachments", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "Attachments", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "Attachments", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "dbid", READONLY ) ADD field_status_def ( "Email_Rule", "", "is_active", READONLY ) ADD field_status_def ( "Email_Rule", "", "version", READONLY ) ADD field_status_def ( "Email_Rule", "", "lock_version", READONLY ) ADD field_status_def ( "Email_Rule", "", "locked_by", READONLY ) ADD field_status_def ( "Email_Rule", "", "history", READONLY ) ADD field_status_def ( "Email_Rule", "", "Name", MANDATORY ) ADD field_status_def ( "Email_Rule", "", "Change_Fields", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Display_Fields", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Entity_Def", MANDATORY ) ADD field_status_def ( "Email_Rule", "", "Include_Defect", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Filter_Query", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Show_Previous", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "CC_Actioner", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "To_Users", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "CC_Users", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "To_Groups", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "CC_Groups", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "To_Addr_Fields", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "CC_Addr_Fields", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "To_Additional", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "CC_Additional", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "From_Addr", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Subject_Fields", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Is_Active_Rule", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "record_type", READONLY ) ADD field_status_def ( "Email_Rule", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "ratl_keysite", READONLY ) ADD field_status_def ( "Email_Rule", "", "Actions", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Action_Types", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Source_States", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Target_States", OPTIONAL ) ADD field_status_def ( "Email_Rule", "", "Operator_Value", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Submitted", "dbid", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "is_active", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "id", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "State", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "version", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "lock_version", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "locked_by", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "history", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "is_duplicate", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "unduplicate_state", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "record_type", READONLY ) ADD field_status_def ( "BaseCMActivity", "Submitted", "Owner", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Submitted", "Description", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Ready", "dbid", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "is_active", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "id", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "State", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "version", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "lock_version", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "locked_by", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "history", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "is_duplicate", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "unduplicate_state", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "record_type", READONLY ) ADD field_status_def ( "BaseCMActivity", "Ready", "Owner", MANDATORY ) ADD field_status_def ( "BaseCMActivity", "Ready", "Description", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Active", "dbid", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "is_active", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "id", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "State", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "version", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "lock_version", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "locked_by", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "history", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "is_duplicate", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "unduplicate_state", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "record_type", READONLY ) ADD field_status_def ( "BaseCMActivity", "Active", "Owner", MANDATORY ) ADD field_status_def ( "BaseCMActivity", "Active", "Description", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Complete", "dbid", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "is_active", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "id", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "State", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "version", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "lock_version", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "locked_by", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "history", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "is_duplicate", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "unduplicate_state", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "record_type", READONLY ) ADD field_status_def ( "BaseCMActivity", "Complete", "Owner", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Complete", "Description", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Submitted", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Ready", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Active", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Complete", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Submitted", "Headline", MANDATORY ) ADD field_status_def ( "BaseCMActivity", "Ready", "Headline", MANDATORY ) ADD field_status_def ( "BaseCMActivity", "Active", "Headline", MANDATORY ) ADD field_status_def ( "BaseCMActivity", "Complete", "Headline", MANDATORY ) ADD field_status_def ( "Defect", "Submitted", "am_statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "am_statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "am_statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "am_statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "am_statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "am_statetype", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "am_statetype", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Submitted", "am_statetype", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Ready", "am_statetype", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Active", "am_statetype", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Complete", "am_statetype", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "dbid", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "is_active", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "version", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "lock_version", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "locked_by", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "history", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "name", MANDATORY ) ADD field_status_def ( "UCM_Project", "", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "record_type", READONLY ) ADD field_status_def ( "UCM_Project", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "ratl_keysite", READONLY ) ADD field_status_def ( "UCM_Project", "", "ucm_chk_before_deliver", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "ucm_chk_before_work_on", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "ucm_cq_act_after_deliver", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "dbid", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "is_active", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "id", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "State", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "version", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "lock_version", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "locked_by", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "history", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "is_duplicate", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "unduplicate_state", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "record_type", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "Description", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "Owner", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "dbid", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "is_active", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "id", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "State", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "version", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "lock_version", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "locked_by", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "history", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "is_duplicate", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "unduplicate_state", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "record_type", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "Description", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "Owner", MANDATORY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "dbid", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "is_active", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "id", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "State", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "version", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "lock_version", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "locked_by", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "history", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "is_duplicate", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "unduplicate_state", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "record_type", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "Description", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Active", "Owner", MANDATORY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "dbid", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "is_active", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "id", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "State", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "version", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "lock_version", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "locked_by", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "history", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "is_duplicate", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "unduplicate_state", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "record_type", READONLY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "Description", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "Owner", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Active", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "Headline", MANDATORY ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "Headline", MANDATORY ) ADD field_status_def ( "UCMUtilityActivity", "Active", "Headline", MANDATORY ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "Headline", MANDATORY ) ADD field_status_def ( "UCM_Project", "", "ucm_chk_mstr_before_dlvr", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "ucm_chk_mstr_after_dlvr", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "ucm_cq_act_before_chact", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "ucm_cq_act_after_chact", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "ucm_cq_trans_after_chact", OPTIONAL ) ADD field_status_def ( "UCM_Project", "", "ucm_cq_trans_after_dlvr", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "am_statetype", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "am_statetype", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Active", "am_statetype", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "am_statetype", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "ucm_stream", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "ucm_view", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Submitted", "ucm_project", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Active", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Active", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "ucm_stream", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Active", "ucm_stream", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "ucm_stream", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "ucm_view", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Active", "ucm_view", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "ucm_view", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Ready", "ucm_project", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Active", "ucm_project", USE_HOOK ) ADD field_status_def ( "UCMUtilityActivity", "Complete", "ucm_project", USE_HOOK ) ADD field_status_def ( "Defect", "Submitted", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "Defect", "Submitted", "ucm_stream", USE_HOOK ) ADD field_status_def ( "Defect", "Submitted", "ucm_view", USE_HOOK ) ADD field_status_def ( "Defect", "Submitted", "ucm_project", USE_HOOK ) ADD field_status_def ( "Defect", "Assigned", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "Defect", "Opened", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "Defect", "Resolved", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "Defect", "Closed", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "Defect", "Duplicate", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "Defect", "Postponed", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "Defect", "Assigned", "ucm_stream", USE_HOOK ) ADD field_status_def ( "Defect", "Opened", "ucm_stream", USE_HOOK ) ADD field_status_def ( "Defect", "Resolved", "ucm_stream", USE_HOOK ) ADD field_status_def ( "Defect", "Closed", "ucm_stream", USE_HOOK ) ADD field_status_def ( "Defect", "Duplicate", "ucm_stream", USE_HOOK ) ADD field_status_def ( "Defect", "Postponed", "ucm_stream", USE_HOOK ) ADD field_status_def ( "Defect", "Assigned", "ucm_view", USE_HOOK ) ADD field_status_def ( "Defect", "Opened", "ucm_view", USE_HOOK ) ADD field_status_def ( "Defect", "Resolved", "ucm_view", USE_HOOK ) ADD field_status_def ( "Defect", "Closed", "ucm_view", USE_HOOK ) ADD field_status_def ( "Defect", "Duplicate", "ucm_view", USE_HOOK ) ADD field_status_def ( "Defect", "Postponed", "ucm_view", USE_HOOK ) ADD field_status_def ( "Defect", "Assigned", "ucm_project", USE_HOOK ) ADD field_status_def ( "Defect", "Opened", "ucm_project", USE_HOOK ) ADD field_status_def ( "Defect", "Resolved", "ucm_project", USE_HOOK ) ADD field_status_def ( "Defect", "Closed", "ucm_project", USE_HOOK ) ADD field_status_def ( "Defect", "Duplicate", "ucm_project", USE_HOOK ) ADD field_status_def ( "Defect", "Postponed", "ucm_project", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Submitted", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Submitted", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Submitted", "ucm_stream", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Submitted", "ucm_view", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Submitted", "ucm_project", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Ready", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Active", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Complete", "ucm_vob_object", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Ready", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Active", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Complete", "ucm_stream_object", OPTIONAL ) ADD field_status_def ( "BaseCMActivity", "Ready", "ucm_stream", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Active", "ucm_stream", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Complete", "ucm_stream", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Ready", "ucm_view", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Active", "ucm_view", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Complete", "ucm_view", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Ready", "ucm_project", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Active", "ucm_project", USE_HOOK ) ADD field_status_def ( "BaseCMActivity", "Complete", "ucm_project", USE_HOOK ) ADD hookdef ( "ratl_replicas", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", "", "", "", 0 ) ADD hookdef ( "history", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", "", "", "", 0 ) ADD hookdef ( "attachments", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", "", "", "", 0 ) ADD hookdef ( "groups", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", "", "", "", 0 ) ADD hookdef ( "users", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", "", "", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Priority", "", "", "", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Severity", "", "", "", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Submit_Date", "", "", "", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Submitter", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Modify", "", "", "", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Keywords", "", "", "", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Symptoms", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Close", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Open", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Reject", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Re_open", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Resolve", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Validate", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Submit", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Modify", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Submit", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Close", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Open", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Reject", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Re_open", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Resolve", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Validate", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Duplicate", "", "", "", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Unduplicate", "", "", "", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "GetCurrentDate", "", "", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "Logging_Notes_Hooks", "", "Notes", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_VALUE_CHANGED , "Note_Entry", "", "", "Notes", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Init_Note_Entry", "", "", "Notes", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_VALIDATION , "Init_Note_Entry", "", "", "Notes", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "Resolution", "", "", "Resolution", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Resolution", "", "", "Resolution", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Change_Fields", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Display_Fields", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_VALUE_CHANGED , "Entity_Def", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Entity_Def", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Include_Defect", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_VALUE_CHANGED , "Include_Defect", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Filter_Query", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Filter_Query", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Show_Previous", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "CC_Actioner", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "To_Addr_Fields", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "CC_Addr_Fields", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Subject_Fields", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Is_Active_Rule", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "From_Addr", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Email_Maintenance", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", ACTION_HOOK , ACTION_NOTIFICATION , "Email_Maintenance", "", "", "Email", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "RSEM_Scripts", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Actions", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Action_Types", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Source_States", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Target_States", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Operator_Value", "", "", "Email", "", 0 ) ADD hookdef ( "Email_Rule", ACTION_HOOK , ACTION_INITIALIZATION , "Email_Maintenance", "", "", "Email", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Send_Email_Notif", "", "", "Email", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_ChkBeforeDeliver", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_ChkBeforeWorkOn", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_CQActAfterDeliver", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_ChkBeforeDeliver", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_ChkBeforeWorkOn", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_CQActAfterDeliver", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_CQActBeforeChact", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_CQActAfterChact", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_CQActBeforeChact", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_CQActAfterChact", "", "UCMPolicyScripts", "", 4 ) ADD hookdef ( "UCM_Project", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_chk_before_deliver", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_chk_before_work_on", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_act_after_deliver", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChkBeforeDeliver", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChkBeforeWorkOn", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActAfterDeliver", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_ChkBeforeDeliver_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_ChkBeforeWorkOn_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_CQActAfterDeliver_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_ChkBeforeDeliver_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_ChkBeforeWorkOn_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_CQActAfterDeliver_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_chk_mstr_before_dlvr", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_chk_mstr_after_dlvr", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_act_before_chact", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_act_after_chact", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_trans_after_chact", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_trans_after_dlvr", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActBeforeChact", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActAfterChact", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_CQActBeforeChact_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCM_CQActAfterChact_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_CQActBeforeChact_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "", GLOBAL_HOOK , , "", "UCU_CQActAfterChact_Def", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCMUtilityActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_Contributors", "", "UnifiedChangeManagement", "Contributors", 0 ) ADD hookdef ( "UCMUtilityActivity", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCMUtilityActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChangeSet_SetEntity", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCMUtilityActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", "", "UnifiedChangeManagement", "WorkOn", 0 ) ADD hookdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "Defect", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChangeSet_SetEntity", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "Defect", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", "", "UnifiedChangeManagement", "WorkOn", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "BaseCMActivity", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "BaseCMActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChangeSet_SetEntity", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "BaseCMActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", "", "UnifiedChangeManagement", "WorkOn", 0 ) ADD hookdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", "", "UnifiedChangeManagement", "", 0 ) ADD hookdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", "", "UnifiedChangeManagement", "", 0 ) ADD scriptdef ( "ratl_replicas", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", BASIC , "", " REM Nobody has permission to submit this kind of entitydef REM Only system internals can do this ratl_replicas_AccessControl = FALSE ") ADD scriptdef ( "history", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", BASIC , "", " REM Nobody has permission to submit this kind of entitydef REM Only system internals can do this history_AccessControl = FALSE ") ADD scriptdef ( "attachments", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", BASIC , "", " REM Nobody has permission to submit this kind of entitydef REM Only system internals can do this attachments_AccessControl = FALSE ") ADD scriptdef ( "groups", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", BASIC , "", " REM Nobody has permission to submit this kind of entitydef REM Only system internals can do this groups_AccessControl = FALSE ") ADD scriptdef ( "users", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", BASIC , "", " REM Nobody has permission to submit this kind of entitydef REM Only system internals can do this users_AccessControl = FALSE ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Priority", "", CONSTANT_LIST , "", "1-Resolve Immediately 2-Give High Attention 3-Normal Queue 4-Low Priority") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Severity", "", CONSTANT_LIST , "", "1-Critical 2-Major 3-Average 4-Minor 5-Enhancement") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Submit_Date", "", BASIC , "", "' DO_NOT_REMOVE SCRIPT_SETTING EXECUTION_MODE=2 REM *** Do not modify the predefined prologue above this line *** REM ***TO DO: Add your code here *** SetFieldValue fieldname, Date REM *** Do not modify the predefined epilogue below this line *** ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Submitter", "", BASIC , "", "' DO_NOT_REMOVE SCRIPT_SETTING EXECUTION_MODE=2 REM *** Do not modify the predefined prologue above this line *** REM ***TO DO: Add your code here *** DIM session DIM username set session = GetSession username = session.GetUserLoginName SetFieldValue fieldname, username REM *** Do not modify the predefined epilogue below this line *** ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Keywords", "", CONSTANT_LIST , "", "Keywords 1 Keywords 2 Keywords 3 Keywords 4 Keywords 5") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Symptoms", "", CONSTANT_LIST , "", "Cosmetic Flaw Data Corruption Data Loss Documentation Issue Incorrect Operation Installation Problem Missing Feature Slow Performance System Crash Unexpected Behavior Unfriendly Behavior") ADD scriptdef ( "history", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", PERL , "", " # Nobody has permission to submit this kind of entitydef # Only system internals can do this return 0; ") ADD scriptdef ( "attachments", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", PERL , "", " # Nobody has permission to submit this kind of entitydef # Only system internals can do this return 0; ") ADD scriptdef ( "groups", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", PERL , "", " # Nobody has permission to submit this kind of entitydef # Only system internals can do this return 0; ") ADD scriptdef ( "users", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Submit", "", PERL , "", " # Nobody has permission to submit this kind of entitydef # Only system internals can do this return 0; ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Submit_Date", "", PERL , "", "# DO_NOT_REMOVE SCRIPT_SETTING EXECUTION_MODE=2 $entity->SetFieldValue($fieldname, GetCurrentDate()); ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Submitter", "", PERL , "", "# DO_NOT_REMOVE SCRIPT_SETTING EXECUTION_MODE=2 my $session; my $username; $session = $entity->GetSession(); $username = $session->GetUserLoginName(); $entity->SetFieldValue($fieldname, $username); ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "GetCurrentDate", PERL , "", "# TODO -- put your perl script code here sub GetCurrentDate { my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $time) = localtime(); return sprintf(""%4d-%2.2d-%2.2d %2.2d:%2.2d:%2.2d"", $year + 1900, $mon + 1, $mday, $hour, $min, $sec); } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "Logging_Notes_Hooks", PERL , "Notes", " sub NoteEntryInit { my ($fieldName) = @_; # Clear out the notes entry field $entity->SetFieldValue($fieldName, """"); } sub SetLog { # noteEntryField As String # notesLogField As String my ($noteEntryField, $notesLogField) = @_; my $primaryActionType = $entity->GetActionType(); if ($primaryActionType eq $CQPerlExt::CQ_IMPORT) { # We don't modify the existing log record during an Import return; } my $oldNotes = $entity->GetFieldOriginalValue($notesLogField)->GetValue(); my $thisNoteInfo = $entity->GetFieldValue($noteEntryField); # hash of months and their corresponding strings in English %month_string = ( ""1"" => ""January"", ""2"" => ""February"", ""3"" => ""March"", ""4"" => ""April"", ""5"" => ""May"", ""6"" => ""June"", ""7"" => ""July"", ""8"" => ""August"", ""9"" => ""September"", ""10"" => ""October"", ""11"" => ""November"", ""12"" => ""December"", ); if ($thisNoteInfo->GetValueStatus() eq $CQPerlExt::CQ_HAS_VALUE) { my $thisNote = $thisNoteInfo->GetValue(); my $session = $entity->GetSession(); my $crLf = ""\x0d\x0a""; my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $time) = localtime(); my $now = sprintf(""%2.2d %s %4d %2.2d:%2.2d:%2.2d"", $mday, $month_string{$mon + 1} ,$year + 1900, $hour, $min, $sec); my $myName = $session->GetUserLoginName(); # Get the state, if it exists. (The record type may be stateless; we use an eval # block to catch any error that's thrown in that case.) my $stateBanner = """"; eval { # If there's no state, then just ignore the resulting error. $stateBanner = ""State: "" . $entity->GetFieldValue(""State"")->GetValue(); }; my $banner = $crLf . ""==== "" . $stateBanner . "" by: "" . $myName . "" on "" . $now . "" ===="" . $crLf; my $newNotes = $banner . $crLf . $thisNote . $crLf . $oldNotes; $entity->SetFieldValue($notesLogField, $newNotes); } else { # Value changed back to empty string; undo any change we have made to the notes log. $entity->SetFieldValue($notesLogField, $oldNotes); } } ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_VALUE_CHANGED , "Note_Entry", "", PERL , "Notes", " SetLog($fieldname, ""Notes_Log""); ") ADD scriptdef ( "Defect", ACTION_HOOK , ACTION_INITIALIZATION , "Init_Note_Entry", "", PERL , "Notes", " # Do not initialize Note_Entry field if the action type is # duplicate, unduplicate, or delete. my $primaryActionType = $entity->GetActionType(); if ($primaryActionType ne $CQPerlExt::CQ_DUPLICATE && $primaryActionType ne $CQPerlExt::CQ_UNDUPLICATE && $primaryActionType ne $CQPerlExt::CQ_DELETE) { NoteEntryInit(""Note_Entry""); } ") ADD scriptdef ( "Defect", ACTION_HOOK , ACTION_VALIDATION , "Init_Note_Entry", "", PERL , "Notes", " # Return a non-empty string explaining why the action cannot commit # with its current values. If it is valid, return an empty string. # Example: # my $value_info = $entity->GetFieldValue(""some field""); # if (length($value_info->GetValue()) < 10) { # $result = ""Must be at least 10 chars long""; # } # Ensure that the log is updated correctly if we were editing multiple # records in batch mode (see RATLC00453464.) SetLog(""Note_Entry"", ""Notes_Log""); ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "Resolution", "", BASIC , "Resolution", " If GetFieldValue(""Resolution_Statetype"").GetValue() = ""Resolved"" then Resolution_Permission = AD_MANDATORY else Resolution_Permission = AD_OPTIONAL End if ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "Resolution", "", PERL , "Resolution", " if ($entity->GetFieldValue(""Resolution_Statetype"")->GetValue() eq ""Resolved"") { $result = $CQPerlExt::CQ_MANDATORY; } else { $result = $CQPerlExt::CQ_OPTIONAL; } ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_CHOICE_LIST , "Resolution", "", CONSTANT_LIST , "Resolution", "Duplicate Enhancement Request Fixed Fixed Indirectly Functions as Designed") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Change_Fields", "", BASIC , "Email", " on error resume next RSEM_FieldsChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Display_Fields", "", BASIC , "Email", " on error resume next RSEM_FieldsChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_VALUE_CHANGED , "Entity_Def", "", BASIC , "Email", " Dim session, allReqEntities, ruleRecordType Set session = GetSession SetFieldValue ""Change_Fields"","""" SetFieldValue ""Display_Fields"","""" SetFieldValue ""Subject_Fields"","""" allReqEntities = session.GetReqEntityDefNames ruleRecordType = GetFieldValue(""Entity_Def"").GetValue() for each req in allReqEntities If req = ruleRecordType Then SetFieldValue ""Subject_Fields"", ""id"" End If Next ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Entity_Def", "", BASIC , "Email", " Dim session Dim entity_names on error resume next set session = GetSession ' The choice list should include all entity types that have ' been enabled for any version of the Email package. Set packages = session.GetEnabledPackageRevs For each pack in packages pkgName = pack.PackageName() pkgRev = pack.RevString() if pkgName = ""Email"" Then Set pkgRevs = session.GetEnabledEntityDefs(pkgName, pkgRev) For each entityDef in pkgRevs choices.AddItem(entityDef.GetName) Next End If Next choices.sort ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Include_Defect", "", CONSTANT , "Email", "0") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_VALUE_CHANGED , "Include_Defect", "", BASIC , "Email", " Dim Value on error resume next Value = GetFieldValue(fieldname).GetValue() if Value = 1 then SetFieldRequirednessForCurrentAction ""Display_Fields"", AD_READONLY else SetFieldRequirednessForCurrentAction ""Display_Fields"", AD_OPTIONAL end if ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Filter_Query", "", BASIC , "Email", " dim values dim sess dim ws On Error Resume Next set sess = GetSession set ws = sess.GetWorkSpace values = ws.GetUneditedQueries(1) if IsArray(values) then for idx = lbound(values) to ubound(values) choices.additem values(idx) next end if ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Show_Previous", "", CONSTANT , "Email", "0") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "CC_Actioner", "", CONSTANT , "Email", "0") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "To_Addr_Fields", "", BASIC , "Email", " on error resume next RSEM_FieldsChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "CC_Addr_Fields", "", BASIC , "Email", " on error resume next RSEM_FieldsChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Subject_Fields", "", BASIC , "Email", " on error resume next RSEM_FieldsChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Is_Active_Rule", "", CONSTANT , "Email", "1") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "From_Addr", "", CONSTANT , "Email", "Current User") ADD scriptdef ( "Email_Rule", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Email_Maintenance", "", BASIC , "Email", " 'Only Super Users and Schema Designers are allowed this action Email_Rule_AccessControl = RSEM_CheckAccess(username) ") ADD scriptdef ( "Email_Rule", ACTION_HOOK , ACTION_NOTIFICATION , "Email_Maintenance", "", BASIC , "Email", " RSEM_ResetCache ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "RSEM_Scripts", BASIC , "Email", " function RSEM_CheckAccess (UserName) dim Sess dim ResultSet dim CurrUser On Error Resume Next set Sess = GetSession 'Get current user logged in 'CurrUser = Sess.GetUserLoginName 'OR CurrUser = UserName 'Get a list of Super Users and Schema Designers set ResultSet = Sess.BuildSQLQuery(""select login_name from users where is_superuser = 1 or is_appbuilder = 1"") ResultSet.Execute 'Check to see if current user is a super user or a schema designer while (ResultSet.MoveNext = AD_SUCCESS) if (ResultSet.GetColumnValue(1) = CurrUser) then RSEM_CheckAccess = TRUE exit function end if wend RSEM_CheckAccess = FALSE end function sub RSEM_FieldsChoices (Choices) 'Choices as ChoiceList Dim Sess Dim EntDef Dim fields Dim entDefName On Error Resume Next set Sess = GetSession entDefName = GetFieldValue(""Entity_Def"").GetValue if entDefName = """" then exit sub set EntDef = Sess.GetEntityDef(entDefName) fields = EntDef.GetFieldDefNames for idx = LBound(fields) to Ubound(fields) 'put logic here to restrict fields based on ' system fields (or some of) ' non-addr fields (for some fields) Choices.AddItem fields(idx) next Choices.Sort end sub sub RSEM_ActionsChoices (Choices) 'Choices as ChoiceList Dim Sess Dim EntDef Dim actions Dim ActionType Dim entDefName On Error Resume Next set Sess = GetSession entDefName = GetFieldValue(""Entity_Def"").GetValue if entDefName = """" then exit sub set EntDef = Sess.GetEntityDef(entDefName) actions = EntDef.GetActionDefNames for idx = LBound(actions) to Ubound(actions) ActionType = EntDef.GetActionDefType (actions(idx)) if ActionType <> AD_BASE And ActionType <> AD_RECORD_SCRIPT_ALIAS And ActionType <> AD_CQCOPY Then Choices.AddItem actions(idx) end if next Choices.Sort end sub sub RSEM_ActionTypesChoices (Choices) 'Choices as ChoiceList Dim Sess 'session object Dim EntDef 'entity def object Dim Actions 'list of actions defined in entity Dim ActionType 'action type for an action Dim ActionTypesList() 'temp list of action types added to choice list Dim cnt 'index for ActionTypesList array Dim ActionTypeAdded 'flag to indicate whether the action type was added to choice list Dim entDefName On Error Resume Next 'Get Action names defined for the entity set Sess = GetSession entDefName = GetFieldValue(""Entity_Def"").GetValue if entDefName = """" then exit sub set EntDef = Sess.GetEntityDef(entDefName) Actions = EntDef.GetActionDefNames cnt = 0 'Cycle through the list of available actions to determine the action types. for idx = LBound(Actions) to Ubound(Actions) ActionType = EntDef.GetActionDefType (Actions(idx)) ActionTypeAdded = 0 i = 0 'check to see if action type has already been added to the choice list to avoid dups. if cnt <> 0 then for i = LBound(ActionTypesList) to UBound(ActionTypesList) if ActionType = ActionTypesList(i)then 'this action type has been added to the list ActionTypeAdded = 1 Exit For end if next end if 'If not already added, then add to choice list. if ActionTypeAdded = 0 then if ActionType <> AD_BASE And ActionType <> AD_RECORD_SCRIPT_ALIAS And ActionType <> AD_CQCOPY Then Choices.AddItem RSEM_GetActionTypeName(EntDef, ActionType) Redim Preserve ActionTypesList(cnt+1) ActionTypesList(cnt) = ActionType cnt = cnt + 1 end if end if next Choices.Sort end sub function RSEM_GetActionTypeName(EntDef, ActionTypeEnum) Dim actionTypeName actionTypeName = """" On Error Resume Next ' Use EntDef.GetActionTypeName(ActionTypeEnum) if it exists (was added in 7.0.1) actionTypeName = EntDef.GetActionTypeName(ActionTypeEnum) ' If actionTypeName is undefined, fall back to old method if actionTypeName = """" then actionTypeName = RSEM_GetActionTypeString(ActionTypeEnum) end if RSEM_GetActionTypeName = actionTypeName end function function RSEM_GetActionTypeString (ActionTypeEnum) ' Note: This function is effectively obsolete; see RSEM_GetActionTypeName 'These strings match what's in the dll. select case ActionTypeEnum case AD_SUBMIT RSEM_GetActionTypeString = ""SUBMIT"" case AD_MODIFY RSEM_GetActionTypeString = ""MODIFY"" case AD_CHANGE_STATE RSEM_GetActionTypeString = ""CHANGE_STATE"" case AD_DUPLICATE RSEM_GetActionTypeString = ""DUPLICATE"" case AD_UNDUPLICATE RSEM_GetActionTypeString = ""UNDUPLICATE"" case AD_IMPORT RSEM_GetActionTypeString = ""IMPORT"" case AD_DELETE RSEM_GetActionTypeString = ""DELETE"" case AD_BASE RSEM_GetActionTypeString = ""BASE"" case AD_RECORD_SCRIPT_ALIAS RSEM_GetActionTypeString = ""RECORD_SCRIPT_ALIAS"" case else RSEM_GetActionTypeString = """" end select end function sub RSEM_StatesChoices (Choices) 'Choices as ChoiceList Dim Sess Dim EntDef Dim states Dim entDefName On Error Resume Next set Sess = GetSession entDefName = GetFieldValue(""Entity_Def"").GetValue if entDefName = """" then exit sub set EntDef = Sess.GetEntityDef(entDefName) if EntDef.GetType() <> AD_AUX_ENTITY then states = EntDef.GetStateDefNames end if for idx = LBound(states) to Ubound(states) Choices.AddItem states(idx) next Choices.Sort end sub Function RSEM_GetEmailObject dim em dim sess dim key On Error Resume Next key = ""_RSEM_EmailObject"" disableCacheKey = ""_RSEM_No_EmailRules_Cache"" set sess = GetSession if sess.HasValue (key) then set em = sess.NameValue(key) em.SetSession sess else set em = CreateObject(""ClearQuest_Email.Email_Rules"") if not IsObject(em) or em Is Nothing then sess.OutputDebugString ""!!! RSEM_GetEmailObject: Object 'em' is invalid"" & vbcrlf exit function end if em.SetSession sess if not sess.HasValue (disableCacheKey) then set sess.NameValue(key) = em end if end if set RSEM_GetEmailObject = em end function sub RSEM_ProcessEmailRules (ent) 'ent and Entity Dim em Dim sess 'stop set em = RSEM_GetEmailObject set sess= GetSession If not IsObject(em) or em Is Nothing then sess.OutputDebugString ""!!! RSEM_ProcessemailRules: Object 'em' is invalid"" & vbcrlf exit sub end if em.ProcessEmailRules (ent) em.ClearSession end sub sub RSEM_ResetCache dim em dim sess On Error Resume Next 'stop set em = RSEM_GetEmailObject set sess= GetSession If not IsObject(em) or em Is Nothing then sess.OutputDebugString ""!!! RSEM_ResetCache: Object 'em' is invalid"" & vbcrlf exit sub end if em.ResetCache em.ClearSession end sub ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Change_Fields", "", PERL , "Email", " @choices = RSEM_FieldsChoices(); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Display_Fields", "", PERL , "Email", " @choices = RSEM_FieldsChoices(); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_VALUE_CHANGED , "Entity_Def", "", PERL , "Email", " my $session, $ruleRecordType, $lastEnt, $eptr, $i; $session = $entity->GetSession(); $entity->SetFieldValue(""Change_Fields"", """"); $entity->SetFieldValue(""Display_Fields"", """"); $entity->SetFieldValue(""Subject_Fields"", """"); $eptr = $session->GetReqEntityDefNames(); $lastEnt = $$eptr[-1]; # last entity in the array $ruleRecordType = $entity->GetFieldValue(""Entity_Def"")->GetValue(); $i = 0; do { if($$eptr[$i] eq $ruleRecordType) { $entity->SetFieldValue(""Subject_Fields"", ""id""); } } until($$eptr[$i++] eq $lastEnt); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Entity_Def", "", PERL , "Email", " my $session = $entity->GetSession(); # The choice list should include all entity types that have # been enabled for any version of the Email package. my $packagerevs = $session->GetEnabledPackageRevs(); for (my $x=0; $x < $packagerevs->Count(); $x++){ my $pack = $packagerevs->Item($x); my $packageName = $pack->GetPackageName(); next unless ($packageName eq ""Email""); my $revString = $pack->GetRevString(); my $edefs = $session->GetEnabledEntityDefs($packageName, $revString); for (my $y=0; $y < $edefs->Count(); $y++){ my $edef = $edefs->Item($y); my $name = $edef->GetName(); push(@choices, $name); } } @choices = sort(@choices); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_VALUE_CHANGED , "Include_Defect", "", PERL , "Email", " my $value; $value = $entity->GetFieldValue($fieldname)->GetValue(); if ($value == 1) { $entity->SetFieldRequirednessForCurrentAction(""Display_Fields"", $CQPerlExt::CQ_READONLY); } else { $entity->SetFieldRequirednessForCurrentAction(""Display_Fields"", $CQPerlExt::CQ_OPTIONAL); } ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Filter_Query", "", PERL , "Email", " my $eMail; my $values; my $session = $entity->GetSession(); $eMail = CQEmailRules::Build(); if (!defined($eMail) || ref($eMail) ne 'CQEmailRules') { $session->OutputDebugMessage (""!!! Filter_Query_Choicelist: Object eMail is invalid""); return (-1); } $eMail->SetSession($session); $values = $eMail->GetPublicQueries(); if ($values){ @choices = @$values; } ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "To_Addr_Fields", "", PERL , "Email", " @choices = RSEM_FieldsChoices(); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "CC_Addr_Fields", "", PERL , "Email", " @choices = RSEM_FieldsChoices(); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Subject_Fields", "", PERL , "Email", " @choices = RSEM_FieldsChoices(); ") ADD scriptdef ( "Email_Rule", ACTION_HOOK , ACTION_ACCESS_CONTROL , "Email_Maintenance", "", PERL , "Email", " # Only Super Users and Schema Designers are allowed this action return RSEM_CheckAccess($username); ") ADD scriptdef ( "Email_Rule", ACTION_HOOK , ACTION_NOTIFICATION , "Email_Maintenance", "", PERL , "Email", " # RSEM_ResetCache ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "RSEM_Scripts", PERL , "Email", " sub RSEM_CheckAccess { my ($currUser) = @_; my $session = $entity->GetSession(); # Get current user logged in # $currUser = $session->GetUserLoginName(); # Get a list of Super Users and Schema Designers my $resultSet = $session->BuildSQLQuery(""select login_name from users where is_superuser = 1 or is_appbuilder = 1""); $resultSet->Execute(); # Check to see if current user is a super user or a schema designer while ($resultSet->MoveNext() == $CQPerlExt::CQ_SUCCESS) { if ($resultSet->GetColumnValue(1) eq $currUser) { return 1; } } return 0; } sub RSEM_FieldsChoices { my @choices; my $session = $entity->GetSession(); my $entDefName = $entity->GetFieldValue(""entity_def"")->GetValue(); if ($entDefName eq """"){ return @choices; } my $entDef = $session->GetEntityDef($entDefName); my $fields = $entDef->GetFieldDefNames(); if ($fields){ @choices = @$fields; @choices = sort(@choices); } return @choices; } sub RSEM_ProcessEmailRules { my ($myEntity) = @_; my $session = $entity->GetSession(); my $eMail = CQEmailRules::Build(); if (!defined($eMail) || ref($eMail) ne 'CQEmailRules') { $session->OutputDebugString(""!!! RSEM_ProcessEmailRules: Object eMail is invalid\n""); return (-1); } $eMail->SetSession($session); $eMail->ProcessEmailRules($myEntity); # $email->ClearSession(); } sub RSEM_ActionsChoices { my @choices; my $session = $entity->GetSession(); my $entDefName = $entity->GetFieldValue(""entity_def"")->GetValue(); if ($entDefName eq """"){ # @choices is null return @choices; } my $entDef = $session->GetEntityDef($entDefName); my $actionNames = $entDef->GetActionDefNames(); foreach my $actionName (@$actionNames) { my $actionType = $entDef->GetActionDefType($actionName); if ($actionType != $CQPerlExt::CQ_BASE && $actionType != $CQPerlExt::CQ_RECORD_SCRIPT_ALIAS && $actionType != $CQPerlExt::CQ_CQCOPY) { push(@choices, $actionName); } } @choices = sort(@choices); return @choices; } sub RSEM_ActionTypesChoices { my @choices; my $session = $entity->GetSession(); my $entDefName = $entity->GetFieldValue(""entity_def"")->GetValue(); if ($entDefName eq """"){ # @choices is null return @choices; } my $entDef = $session->GetEntityDef($entDefName); my $actionNames = $entDef->GetActionDefNames(); foreach my $actionName (@$actionNames) { my $actionType = $entDef->GetActionDefType($actionName); if ($actionType != $CQPerlExt::CQ_BASE && $actionType != $CQPerlExt::CQ_RECORD_SCRIPT_ALIAS && $actionType != $CQPerlExt::CQ_CQCOPY) { my $locActionTypeName = RSEM_GetActionTypeName($entDef, $actionType); if (!RSEM_InArray($locActionTypeName, @choices)) { push(@choices, $locActionTypeName); } } } @choices = sort(@choices); return @choices; } sub RSEM_InArray { my ($item, @array) = @_; foreach my $locItem (@array) { if ($locItem eq $item) { return 1; } } return 0; } sub RSEM_GetActionTypeName { my ($entDef, $actionType) = @_; my $locActionTypeName = """"; eval { # Use $entDef->GetActionTypeName, if it exists (it's defined in 7.0.1) $locActionTypeName = $entDef->GetActionTypeName($actionType); }; if ($locActionTypeName ne """") { return $locActionTypeName; } # If we get here, it means $entDef->GetActionTypeName is not defined. # Fall back to using a hard-coded list of names, as we did prior to 7.0.1 my @actionTypeNames = (""SUBMIT"", ""MODIFY"", ""CHANGE_STATE"", ""DUPLICATE"", ""UNDUPLICATE"", ""IMPORT"", ""DELETE"", ""BASE"", ""RECORD_SCRIPT_ALIAS""); $locActionTypeName = $actionTypeNames[$actionType - 1]; return $locActionTypeName; } sub RSEM_StatesChoices { my @choices; my $states; my $session = $entity->GetSession(); my $entDefName = $entity->GetFieldValue(""entity_def"")->GetValue(); if ($entDefName eq """"){ # @choices is null return @choices; } my $entDef = $session->GetEntityDef($entDefName); if ($entDef->GetType() != $CQPerlExt::CQ_AUX_ENTITY){ $states = $entDef->GetStateDefNames(); } # could be a stateless entity if ($states){ @choices = @$states; @choices = sort(@choices); } return @choices; } sub RSEM_ResetCache { # no op for now } ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Actions", "", BASIC , "Email", " on error resume next RSEM_ActionsChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Action_Types", "", BASIC , "Email", " on error resume next RSEM_ActionTypesChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Source_States", "", BASIC , "Email", " on error resume next RSEM_StatesChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Target_States", "", BASIC , "Email", " on error resume next RSEM_StatesChoices choices ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Actions", "", PERL , "Email", " @choices = RSEM_ActionsChoices(); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Action_Types", "", PERL , "Email", " @choices = RSEM_ActionTypesChoices(); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Source_States", "", PERL , "Email", " @choices = RSEM_StatesChoices(); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_CHOICE_LIST , "Target_States", "", PERL , "Email", " @choices = RSEM_StatesChoices(); ") ADD scriptdef ( "Email_Rule", FIELD_HOOK , FIELD_DEFAULT_VALUE , "Operator_Value", "", CONSTANT , "Email", "0") ADD scriptdef ( "Email_Rule", ACTION_HOOK , ACTION_INITIALIZATION , "Email_Maintenance", "", BASIC , "Email", " REM do any setup for the action here set session = GetSession session.OutputDebugString ""Email_Maintenance: Initialization"" & vbcrlf set fldObj = GetFieldValue (""Operator_Value"") if fldObj.GetValueStatus = AD_HAS_VALUE then session.OutputDebugString ""Operator has value; it's "" & fldObj.GetValue & vbcrlf else session.OutputDebugString ""Operator does NOT have a value, setting it to 0"" & vbcrlf SetFieldValue ""Operator_Value"", 0 end if ") ADD scriptdef ( "Email_Rule", ACTION_HOOK , ACTION_INITIALIZATION , "Email_Maintenance", "", PERL , "Email", " # do any setup for the action here $session = $entity->GetSession(); $session->OutputDebugString (""Email_Maintenance: Initialization\n""); $fldObj = $entity->GetFieldValue (""Operator_Value""); if ($fldObj->GetValueStatus == $CQPerlExt::CQ_HAS_VALUE) { $fldValue = $fldObj->GetValue(); $session->OutputDebugString (""Operator has value; it's $fldValue\n""); } else { $session->OutputDebugString (""Operator does NOT have a value, setting it to 0""); $entity->SetFieldValue (""Operator_Value"", ""0""); } ") ADD scriptdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Send_Email_Notif", "", BASIC , "Email", " Dim Primary_Action_Type Dim session Primary_Action_Type = GetActionType Set session = GetSession if Primary_Action_Type <> AD_IMPORT And session.IsEmailEnabled then RSEM_ProcessEmailRules (BaseEntity) end if ") ADD scriptdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Send_Email_Notif", "", PERL , "Email", " my $primaryActionType = $entity->GetActionType(); my $session = $entity->GetSession(); if ($primaryActionType != $CQPerlExt::CQ_IMPORT && $session->IsEmailEnabled()) { RSEM_ProcessEmailRules($entity); } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_ChkBeforeDeliver", BASIC , "UCMPolicyScripts", "Function UCM_ChkBeforeDeliver (entity_type, entity_id, target_stream_selector, target_view_tag) ' This is the script which implements the ""Check Before ClearCase Delivery"" ' policy. When initially installed, it invokes a default script. ' If users want to customize this policy, they should edit this script ' to use their code rather than invoking the default script. The default ' script code can be used as an example. ' ' INPUT: ' - entity_type: type of entity on which action will be executed ' - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be ' executed ' - target_stream_selector: target stream selector ' - target_view_tag: target view tag ' ' OUTPUT: ' - If the action was successfully executed, this must return an empty ' string ' - If the action was not successfully executed, this must return a string ' to be displayed as an error message. UCM_ChkBeforeDeliver = UCM_ChkBeforeDeliver_Def(entity_type, entity_id) End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_ChkBeforeWorkOn", BASIC , "UCMPolicyScripts", "Function UCM_ChkBeforeWorkOn (entity_type, entity_id, stream) ' This is the script which implements the ""Check Before Work On"" ' policy. When initially installed, it invokes a default script. ' If users want to customize this policy, they should edit this script ' to use their code rather than invoking the default script. The default ' script code can be used as an example. ' ' INPUT: ' - entity_type: type of entity on which action will be executed ' - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be ' executed ' - stream: stream on which the entity is being worked on ' OUTPUT: ' - If the action was successfully executed, this must return an empty ' string ' - If the action was not successfully executed, this must return a string ' to be displayed as an error message. UCM_ChkBeforeWorkOn = UCM_ChkBeforeWorkOn_Def(entity_type, entity_id) End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_CQActAfterDeliver", BASIC , "UCMPolicyScripts", "Function UCM_CQActAfterDeliver (entity_type, entity_id, target_stream_selector, target_view_tag) ' This is the script which implements the ""Do ClearQuest Action After ' Delivery"" policy. When initially installed, it invokes a default script. ' If users want to customize this policy, they should edit this script ' to use their code rather than invoking the default script. The default ' script code can be used as an example. ' ' INPUT: ' - entity_type: type of entity on which action will be executed ' - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be ' executed ' - target_stream_selector: target stream selector ' - target_view_tag: target view tag ' ' OUTPUT: ' - If the action was successfully executed, this must return an empty ' string ' - If the action was not successfully executed, this must return a string ' to be displayed as an error message. ' ' RULES: This script must be written such that, if it is called more than ' once for the same entity during the same deliver operation, it ' handles it correctly. This case can arise if a deliver operation ' is aborted then resumed. ' UCM_CQActAfterDeliver = UCM_CQActAfterDeliver_Def(entity_type, entity_id) End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_ChkBeforeDeliver", PERL , "UCMPolicyScripts", "sub UCU_ChkBeforeDeliver { # This is the script which implements the ""Check Before ClearCase Delivery"" # policy. When initially installed, it invokes a default script. # If users want to customize this policy, they should edit this script # to use their code rather than invoking the default script. The default # script code can be used as an example. # # INPUT: # - entity_type: type of entity on which action will be executed # - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be # executed # - target_stream_selector: target stream selector # - target_view_tag: target view tag # # OUTPUT: # - If the action was successfully executed, this must return an empty # string # - If the action was not successfully executed, this must return a string # to be displayed as an error message. my ($entity_type, $entity_id, $target_stream_selector, $target_view_tag) = @_; my $result; $result = UCU_ChkBeforeDeliver_Def($entity_type, $entity_id); return $result; } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_ChkBeforeWorkOn", PERL , "UCMPolicyScripts", "sub UCU_ChkBeforeWorkOn { # This is the script which implements the ""Check Before Work On"" # policy. When initially installed, it invokes a default script. # If users want to customize this policy, they should edit this script # to use their code rather than invoking the default script. The default # script code can be used as an example. # # INPUT: # - entity_type: type of entity on which action will be executed # - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be # executed # - stream: stream on which the entity is being worked on # OUTPUT: # - If the action was successfully executed, this must return an empty # string # - If the action was not successfully executed, this must return a string # to be displayed as an error message. my ($entity_type, $entity_id, $stream) = @_; my $result; $result = UCU_ChkBeforeWorkOn_Def($entity_type, $entity_id); return $result; } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_CQActAfterDeliver", PERL , "UCMPolicyScripts", "sub UCU_CQActAfterDeliver { # This is the script which implements the ""Do ClearQuest Action After # Delivery"" policy. When initially installed, it invokes a default script. # If users want to customize this policy, they should edit this script # to use their code rather than invoking the default script. The default # script code can be used as an example. # # INPUT: # - entity_type: type of entity on which action will be executed # - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be # executed # - target_stream_selector: target stream selector # - target_view_tag: target view tag # # OUTPUT: # - If the action was successfully executed, this must return an empty # string # - If the action was not successfully executed, this must return a string # to be displayed as an error message. # # RULES: This script must be written such that, if it is called more than # once for the same entity during the same deliver operation, it # handles it correctly. This case can arise if a deliver operation # is aborted then resumed. # my ($entity_type, $entity_id, $target_stream_selector, $target_view_tag) = @_; my $result; $result = UCU_CQActAfterDeliver_Def($entity_type, $entity_id); return $result; } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_CQActBeforeChact", BASIC , "UCMPolicyScripts", "Function UCM_CQActBeforeChact (entity_type, entity_id, project_info, stream_info) ' This is the script which implements the ""Perform Action Before Changing Activity"" ' policy. When initially installed, it invokes a default script. ' If users want to customize this policy, they should edit this script ' to use their code rather than invoking the default script. The default ' script code can be used as an example. ' ' INPUT: ' - entity_type: type of entity on which action will be executed ' - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be ' executed ' - project_info: ""SIMPLE"" if activity is in a single stream project, ' ""DEFAULT"" if activity is in a regular project ' - stream_info: ""INT"" if activity is in project's integration stream ' ""DEV"" if activity is not in project's integration stream ' OUTPUT: ' - If the action was successfully executed, this must return an empty ' string ' - If the action was not successfully executed, this must return a string ' to be displayed as an error message. UCM_CQActBeforeChact = UCM_CQActBeforeChact_Def(entity_type, entity_id, project_info, stream_info) End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_CQActAfterChact", BASIC , "UCMPolicyScripts", "Function UCM_CQActAfterChact (entity_type, entity_id, project_info, stream_info) ' This is the script which implements the ""Perform Action After Changing Activity"" ' policy. When initially installed, it invokes a default script. ' If users want to customize this policy, they should edit this script ' to use their code rather than invoking the default script. The default ' script code can be used as an example. ' ' INPUT: ' - entity_type: type of entity on which action will be executed ' - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be ' executed ' - project_info: ""SIMPLE"" if activity is in a single stream project, ' ""DEFAULT"" if activity is in a regular project ' - stream_info: ""INT"" if activity is in project's integration stream ' ""DEV"" if activity is not in project's integration stream ' OUTPUT: ' - If the action was successfully executed, this must return an empty ' string ' - If the action was not successfully executed, this must return a string ' to be displayed as an error message. UCM_CQActAfterChact = UCM_CQActAfterChact_Def(entity_type, entity_id, project_info, stream_info) End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_CQActBeforeChact", PERL , "UCMPolicyScripts", "sub UCU_CQActBeforeChact { # This is the script which implements the ""Perform Action Before # Changing Activity"" policy. When initially installed, it invokes a default script. # If users want to customize this policy, they should edit this script # to use their code rather than invoking the default script. The default # script code can be used as an example. # # INPUT: # - entity_type: type of entity on which action will be executed # - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be # executed # - project_info: ""SIMPLE"" if activity is in a single stream project, # ""DEFAULT"" if activity is in a regular project # - stream_info: ""INT"" if activity is in project's integration stream # ""DEV"" if activity is not in project's integration stream # OUTPUT: # - If the action was successfully executed, this must return an empty # string # - If the action was not successfully executed, this must return a string # to be displayed as an error message. # # RULES: This script must be written such that, if it is called more than # once for the same entity during the same deliver operation, it # handles it correctly. This case can arise if a deliver operation # is aborted then resumed. # my ($entity_type, $entity_id, $project_info, $stream_info) = @_; my $result; $result = UCU_CQActBeforeChact_Def($entity_type, $entity_id, $project_info, $stream_info); return $result; } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_CQActAfterChact", PERL , "UCMPolicyScripts", "sub UCU_CQActAfterChact { # This is the script which implements the ""Perform Action After # Changing Activity"" policy. When initially installed, it invokes a default script. # If users want to customize this policy, they should edit this script # to use their code rather than invoking the default script. The default # script code can be used as an example. # # INPUT: # - entity_type: type of entity on which action will be executed # - entity_id: id (e.g. ""SAMPL0000001"") of entity on which action will be # executed # - project_info: ""SIMPLE"" if activity is in a single stream project, # ""DEFAULT"" if activity is in a regular project # - stream_info: ""INT"" if activity is in project's integration stream # ""DEV"" if activity is not in project's integration stream # # OUTPUT: # - If the action was successfully executed, this must return an empty # string # - If the action was not successfully executed, this must return a string # to be displayed as an error message. # # RULES: This script must be written such that, if it is called more than # once for the same entity during the same deliver operation, it # handles it correctly. This case can arise if a deliver operation # is aborted then resumed. # my ($entity_type, $entity_id, $project_info, $stream_info) = @_; my $result; $result = UCU_CQActAfterChact_Def($entity_type, $entity_id, $project_info, $stream_info); return $result; } ") ADD scriptdef ( "UCM_Project", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", BASIC , "UnifiedChangeManagement", " ' The actiontype that we get as a parameter is just ""BASE' which ' isn't very informative, so get the action type that started it all. real_actiontype = GetActionType ' Get args for calling methods Set this_session = GetSession() Set this_entity = BaseEntity If (real_actiontype <> AD_SUBMIT) Then ' For other actiontype's, check if entity is bound bound_vob_object = GetFieldValue(""ucm_vob_object"").GetValue If (bound_vob_object <> """") Then call_squid = 0 If (real_actiontype <> AD_DELETE) Then ' Get a list of the fields in this record type... fieldNameList = this_entity.GetFieldNames ' Loop For Each FN in fieldNameList If (FN=""name"")Or(FN= ""ucm_chk_before_work_on"")Or(FN=""ucm_chk_before_deliver"")Or(FN=""ucm_chk_mstr_before_dlvr"")Or(FN=""ucm_cq_act_after_deliver"")Or(FN=""ucm_cq_trans_after_dlvr"")Or(FN=""ucm_chk_mstr_after_dlvr"")Or(FN=""ucm_cq_act_before_chact"")Or(FN=""ucm_cq_trans_after_chact"")Or(FN=""ucm_cq_act_after_chact"") Then ' Get the field's original value OldFV = this_entity.GetFieldOriginalValue(FN).GetValue ' Get the current value NewFV = this_entity.GetFieldValue(FN).GetValue If OldFV <> NewFV Then call_squid = 1 Exit For End If ' End of ""OldFV <> NewFV"" End If ' End of ""FN = name"" ... Next ' End of For Loop End If ' End of (real_actiontype <> AD_DELETE) If (call_squid = 1) Or (real_actiontype = AD_DELETE) Then ' Entity is bound, attempt to create SquidServer COM server ' Set error handling to catch error from CreateObject On Error Resume Next Set squid_server = CreateObject(""ClearCase.SquidServer.1"") error_num = Err.Number error_desc = Err.Description ' Reset error handling, so that SquidServer method errors are reported by CQ On Error Goto 0 If error_num <> 0 Then ' Create Object failed, raise exception If error_num = 429 Then ' CreateObject failed because SquidServer was not found, assume ClearCase is not installed Err.Raise vbObjectError+1, ""SquidServer"", ""Error: ClearCase may not be installed or configured correctly."" Else ' CreateObject failed for another reason, report the error Err.Raise vbObjectError+2, ""SquidServer"", ""Can not access SquidServer: CreateObject error="" & CStr(error_num) & "" "" & CStr(error_desc) End If Else ' CreateObject succeeded, call appropriate server method ' On error, these will throw an exception and abort the commit If (real_actiontype = AD_DELETE) Then Call squid_server.DeleteCommitCQProject(this_session, this_entity) Else Call squid_server.ModifyCommitCQProject(this_session, this_entity) End If End If ' End of ""CreateObject succeeded"" End If ' End of ""call squid""... End If ' End of (bound_vob_object <> """") End If ' End of (real_actiontype <> AD_SUBMIT) ") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_chk_before_deliver", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_chk_before_work_on", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_act_after_deliver", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChkBeforeDeliver", BASIC , "UnifiedChangeManagement", " '--- ' This record hook is invoked by SQUID to invoke the ""Perform ClearQuest Action ' Before Delivery"" policy. It ivokes the UCM_ChkBeforeDeliver ' global script (an initial version of this is installed via UCM package ' installation, but it can be edited by the user). ' ' INPUT: ' - Param must be a string with this format: ' ""entity-type|entity-id|target_stream_selector|target_view_tag"" ' (vertical bars are delimeters) ' which represents the entity bound to the SUM_Project to be delivered ' OUTPUT: ' - If the SUM_Project should be delivered, this returns an empty string ' - If the SUM_Project should be delivered, this returns a string to be ' displayed as an error message. This will cause the delivery to be ' aborted. '--- ' Parse the param string start = 1 pos = 0 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_type = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_id = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) target_stream_selector = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) target_view = Mid (param, start, pos-start) start = pos + 1 ' Call the user-editable global script ucm_project_UCM_ChkBeforeDeliver = UCM_ChkBeforeDeliver(entity_type, entity_id, target_stream_selector, target_view) ") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChkBeforeWorkOn", BASIC , "UnifiedChangeManagement", " '--- ' This record hook is invoked by SQUID to invoke the ""Perform ClearQuest Action ' Before Work On"" policy. It invokes the UCM_ChkBeforeWorkOn global script ' (an initial version of this is installed via UCM package installation, ' but it can be edited by the user). ' ' INPUT: ' - Param must be a string with this format: ' ""entity-type|entity-id|stream"" (vertical bars are delimeters) ' which represents the entity to be worked on ' OUTPUT: ' - If the current user is permitted to work on this entity, this ' returns an empty string ' - If the current user is not permitted to work on this entity, this ' returns a string to be displayed as an error message. This will ' cause the Work On action to be aborted. '--- ' Parse the param string start = 1 pos = 0 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_type = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_id = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) stream = Mid (param, start, pos-start) start = pos + 1 ' Call the user-editable global script ucm_project_UCM_ChkBeforeWorkOn = UCM_ChkBeforeWorkOn(entity_type, entity_id, stream) ") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActAfterDeliver", BASIC , "UnifiedChangeManagement", " '--- ' This record hook is invoked by SQUID to invoke the ""Perform ClearQuest ' Action After Delivery"" policy. It invokes the UCM_CQActAfterDeliver ' global script (an initial version of this is installed via UCM package ' installation, but it can be edited by the user). ' ' INPUT: ' - Param must be a string with this format: ' ""entity-type|entity-id|target_stream_selector|target_view_tag"" ' (vertical bars are delimeters) ' which represents the entity bound to the SUM_Project which was ' delivered ' OUTPUT: ' - If the ClearQuest Action is OK, this returns an empty string ' - If the ClearQuest Action is NOYT OK, this returns a string ' to be displayed as an error message. '--- ' Parse the param string start = 1 pos = 0 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_type = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_id = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) target_stream_selector = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) target_view = Mid (param, start, pos-start) start = pos + 1 ' Call the user-editable global script ucm_project_UCM_CQActAfterDeliver = UCM_CQActAfterDeliver(entity_type, entity_id, target_stream_selector, target_view) ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_ChkBeforeDeliver_Def", BASIC , "UnifiedChangeManagement", " Function UCM_ChkBeforeDeliver_Def (entity_type, entity_id) ' This implements the default behavior when the ""Perform ClearQuest Action ' Before Delivery"" policy is enabled: Default is to do the delivery ' for all activities ' ' INPUT: ' - entity_type: type of entity being delivered ' - entity_id: id (e.g. ""SAMPL0000001"") of entity being delivered ' OUTPUT: ' - If the activity should be delivered, this should return an empty string ' - If the activity should not be delivered, this should return a string ' to be displayed as an error message. This will cause the delivery to ' be aborted. UCM_ChkBeforeDeliver_Def = """" End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_ChkBeforeWorkOn_Def", BASIC , "UnifiedChangeManagement", " Function UCM_ChkBeforeWorkOn_Def (entity_type, entity_id) ' This implements the default behavior when the ""Perform ClearQuest Action ' Before Work On"" policy is enabled: It only allows user to work on the entity ' if it is assigned to them. ' ' INPUT: ' - entity_type: type of entity being worked on ' - entity_id: id (e.g. ""SAMPL0000001"") of entity being worked on ' OUTPUT: ' - If the current user is permitted to work on this entity, this should ' return an empty string ' - If the current user is not permitted to work on this entity, this ' should return a string to be displayed as an error message. This ' will cause the Work On action to be aborted. ' Get hook's session context Set session = GetSession() ' Get the entity Set entity = session.GetEntity(entity_type, entity_id) ' Get the entity's assigned user assigned_user = entity.GetFieldValue(""Owner"").GetValue() ' Get current user from session current_user = session.GetUserLoginName() ' Check the assigned_user If assigned_user = current_user Then ' User is permitted to work on entity, return empty string UCM_ChkBeforeWorkOn_Def = """" ElseIf assigned_user = """" Then ' User is not permitted to work on un-assigned entity, return error string UCM_ChkBeforeWorkOn_Def = ""You cannot work on this "" + entity_type + "" because it is not assigned to an Owner."" Else ' User is not permitted to work on mis-assigned entity, return error string UCM_ChkBeforeWorkOn_Def = ""You cannot work on this "" + entity_type + "" because its Owner is """""" + assigned_user + """""", not """""" + current_user + """""""" End If End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_CQActAfterDeliver_Def", BASIC , "UnifiedChangeManagement", " Function UCM_CQActAfterDeliver_Def (entity_type, entity_id) ' This implements the default behavior when the ""Perform ClearQuest Action ' After Deliver"" policy is enabled: Default is to do the delivery ' for all activities ' ' INPUT: ' - entity_type: type of entity being delivered ' - entity_id: id (e.g. ""SAMPL0000001"") of entity being delivered ' OUTPUT: ' - If the activity should be delivered, this should return an empty string ' - If the activity should not be delivered, this should return a string ' to be displayed as an error message. This will cause the delivery to ' be aborted. UCM_CQActAfterDeliver_Def = """" End Function ") ADD scriptdef ( "UCM_Project", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", PERL , "UnifiedChangeManagement", " # The actiontype that we get as a parameter is just ""BASE' which # isn't very informative, so get the action type that started it all. my $real_actiontype = $entity->GetActionType(); # Get args for calling methods my $session_id = $session->CQInt_Id(); my $entity_id = $entity->CQInt_Id(); my $call_squid = 0; if ($real_actiontype != $CQPerlExt::CQ_SUBMIT) { # For other actiontypes, check if entity is bound my $field_info = $entity->GetFieldValue(""ucm_vob_object""); my $ucm_vob_object = $field_info->GetValue(); if ($ucm_vob_object ne """") { if ($real_actiontype != $CQPerlExt::CQ_DELETE) { # Get a list of the fields in this record type # (NOTE: GetFieldNames() returns a *REFERENCE* to an array)... my($FieldNamesRef) = $entity->GetFieldNames(); # Loop through the fields foreach $FN (@$FieldNamesRef) { if (($FN eq ""name"")||($FN eq ""ucm_chk_before_work_on"")||($FN=""ucm_chk_before_deliver"")||($FN=""ucm_chk_mstr_before_dlvr"")||(FN$ eq ""ucm_cq_act_after_deliver"")||(FN$ eq ""ucm_cq_trans_after_dlvr"")||(FN$ eq ""ucm_chk_mstr_after_dlvr"")||(FN$ eq ""ucm_cq_act_before_chact"")||(FN$ eq ""ucm_cq_trans_after_chact"")||(FN$ eq ""ucm_cq_act_after_chact"")) { # Get the field's original value... $OldFV = $entity->GetFieldOriginalValue($FN)->GetValue(); # Get the field's new value... $NewFV = $entity->GetFieldValue($FN)->GetValue(); # check if the OldValue equals the NewValue if ( $OldFV ne $NewFV ) { $call_squid = 1; last; } } # End of ($FN eq ""name"") } # End of Loop } # End of ($real_actiontype != $CQPerlExt::CQ_DELETE) if (( $call_squid ==1 ) || ($real_actiontype == $CQPerlExt::CQ_DELETE)) { # Call SQUID is necessary, get CQSquidLoad package require CQSquidLoad; my $squid = new CQSquidLoad; my $load_status = $squid->SquidLoadStatus(); # Check whether CQSquidLoad package was able to load CQSquidLoad library if ($load_status == 2) { # CQSquidLoad library could not be loaded, assume ClearCase is not installed die ""Error: ClearCase may not be installed or configured correctly.""; } elsif ($load_status == 3) { # CQSquidLoad library loaded, but is wrong version die ""Can not change this record, wrong version of ClearCase is installed.""; } else { # Success, call package method to do the work. # On error, this will throw an exception and abort the commit if ($real_actiontype == $CQPerlExt::CQ_DELETE) { $squid->DeleteCommitCQProject($session_id, $entity_id); } else { $squid->ModifyCommitCQProject($session_id, $entity_id); } } # End of ""Success"" } # End of ""call_squid"" } # End of ($ucm_vob_object ne """") } # End of ""other actiontype's"" ") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChkBeforeWorkOn", PERL , "UnifiedChangeManagement", " #--- # This record hook is invoked by SQUID to invoke the ""Check Before # Work On"" policy. It invokes the UCU_ChkBeforeWorkOn global script # (an initial version of this is installed via UCM package installation, # but it can be edited by the user). # # INPUT: # - Param must be a string with this format: # ""entity-type|entity-id|stream"" (vertical bars are delimeters) # which represents the entity to be worked on # OUTPUT: # - If the current user is permitted to work on this entity, this # returns an empty string # - If the current user is not permitted to work on this entity, this # returns a string to be displayed as an error message. This will # cause the Work On action to be aborted. #--- # NOTE: Param is really a string type my ($param_string) = @_; # Parse the param string my $entity_type; my $entity_id; my $stream; ($entity_type, $entity_id, $stream) = split ('\|', $param_string); # Call the user-editable global script $result = UCU_ChkBeforeWorkOn($entity_type, $entity_id,$stream); ") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChkBeforeDeliver", PERL , "UnifiedChangeManagement", " #--- # This record hook is invoked by SQUID to invoke the ""Perform ClearQuest Action # Before Delivery"" policy. It ivokes the UCM_ChkBeforeDeliver # global script (an initial version of this is installed via UCM package # installation, but it can be edited by the user). # # INPUT: # - Param must be a string with this format: # ""entity-type|entity-id|target_stream_selector|target_view_tag"" # (vertical bars are delimeters) # which represents the entity bound to the SUM_Project to be delivered # OUTPUT: # - If the SUM_Project should be delivered, this returns an empty string # - If the SUM_Project should be delivered, this returns a string to be # displayed as an error message. This will cause the delivery to be # aborted. #--- # NOTE: Param is really a string type my ($param_string) = @_; # Parse the param string my $entity_type; my $entity_id; my $target_stream_selector; my $target_view_tag; ($entity_type, $entity_id, $target_stream_selector, $target_view_tag) = split ('\|', $param_string); # Call the user-editable global script $result = UCU_ChkBeforeDeliver($entity_type, $entity_id, $target_stream_selector, $target_view_tag); ") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActAfterDeliver", PERL , "UnifiedChangeManagement", " #--- # This record hook is invoked by SQUID to invoke the ""Perform ClearQuest # Action After Delivery"" policy. It invokes the UCU_CQActAfterDeliver # global script (an initial version of this is installed via UCM package # installation, but it can be edited by the user). # # INPUT: # - Param must be a string with this format: # ""entity-type|entity-id|target_stream_selector|target_view_tag"" # (vertical bars are delimeters) # which represents the entity bound to the SUM_Project which was # delivered # OUTPUT: # - If the ClearQuest Action is OK, this returns an empty string # - If the ClearQuest Action is NOYT OK, this returns a string # to be displayed as an error message. #--- # NOTE: Param is really a string type my ($param_string) = @_; # Parse the param string my $entity_type; my $entity_id; my $target_stream_selector; my $target_view_tag; ($entity_type, $entity_id, $target_stream_selector, $target_view_tag) = split ('\|', $param_string); # Call the user-editable global script $result = UCU_CQActAfterDeliver($entity_type, $entity_id, $target_stream_selector, $target_view_tag); ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_ChkBeforeDeliver_Def", PERL , "UnifiedChangeManagement", "sub UCU_ChkBeforeDeliver_Def { # This implements the default behavior when the ""Perform ClearQuest Action # Before Delivery"" policy is enabled: Default is to do the delivery # for all activities # # INPUT: # - entity_type: type of entity being delivered # - entity_id: id (e.g. ""SAMPL0000001"") of entity being delivered # OUTPUT: # - If the activity should be delivered, this should return an empty string # - If the activity should not be delivered, this should return a string # to be displayed as an error message. This will cause the delivery to # be aborted. my $result = """"; return $result; } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_ChkBeforeWorkOn_Def", PERL , "UnifiedChangeManagement", "sub UCU_ChkBeforeWorkOn_Def { # This implements the default behavior when the ""Perform ClearQuest Action # Before Work On"" policy is enabled: It only allows user to work on the entity # if it is assigned to them. # # INPUT: # - entity_type: type of entity being worked on # - entity_id: id (e.g. ""SAMPL0000001"") of entity being worked on # OUTPUT: # - If the current user is permitted to work on this entity, this should # return an empty string # - If the current user is not permitted to work on this entity, this # should return a string to be displayed as an error message. This # will cause the Work On action to be aborted. my ($entity_type, $entity_id) = @_; my $result; # Get the entity my $entity = $session->GetEntity($entity_type, $entity_id); # Get the entity's assigned user my $field_info = $entity->GetFieldValue(""Owner""); my $assigned_user = $field_info->GetValue(); # Get current user from session my $current_user = $session->GetUserLoginName(); # Check the assigned_user if ($assigned_user eq $current_user) { # User is permitted to work on entity, return empty string $result = """"; } elsif ($assigned_user eq """") { # User is not permitted to work on un-assigned entity, return error string $result = ""You cannot work on this $entity_type because it is not assigned to an Owner.""; } else { # User is not permitted to work on mis-assigned entity, return error string $result = ""You cannot work on this $entity_type because its Owner is \""$assigned_user\"", not \""$current_user\""""; } return $result; } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_CQActAfterDeliver_Def", PERL , "UnifiedChangeManagement", "sub UCU_CQActAfterDeliver_Def { # This implements the default behavior when the ""Do ClearQuest Action # After ClearCase Delivery"" policy is enabled: Default is to do the delivery # for all activities # # INPUT: # - entity_type: type of entity being delivered # - entity_id: id (e.g. ""SAMPL0000001"") of entity being delivered # OUTPUT: # - If the activity should be delivered, this should return an empty string # - If the activity should not be delivered, this should return a string # to be displayed as an error message. This will cause the delivery to # be aborted. my $result = """"; return $result; } ") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_chk_mstr_before_dlvr", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_chk_mstr_after_dlvr", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_act_before_chact", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_act_after_chact", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_trans_after_chact", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", FIELD_HOOK , FIELD_DEFAULT_VALUE , "ucm_cq_trans_after_dlvr", "", CONSTANT , "UnifiedChangeManagement", "0") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActBeforeChact", BASIC , "UnifiedChangeManagement", " '--- ' This record hook is invoked by SQUID to invoke the ""Perform ClearQuest ' Action Before Changing Activity"" policy. ' ' INPUT: ' - Param must be a string with this format: ' ""entity-type|entity-id|project_info|stream_info"" (vertical bars are delimeters) ' OUTPUT: ' - If the entity is valid, this returns an empty string ' - If the entity is not valid, this returns a string ' to be displayed as an error message. '--- ' Parse the param string start = 1 pos = 0 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_type = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_id = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) project_info = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) stream_info = Mid (param, start, pos-start) start = pos + 1 ' Call the user-editable global script ucm_project_UCM_CQActBeforeChact = UCM_CQActBeforeChact(entity_type, entity_id, project_info, stream_info) ") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActAfterChact", BASIC , "UnifiedChangeManagement", " '--- ' This record hook is invoked by SQUID to invoke the ""Perform ClearQuest Action ' After Changing Activity"" policy. If the activity is not in ' a single stream project, or is not in the project's integration ' stream, the UCM change activity should fail. ' ' INPUT: ' - Param must be a string with this format: ' ""entity-type|entity-id|project_info|stream_info"" (vertical bars are delimeters) ' ' OUTPUT: ' - If the entity is valid, this returns an empty string ' - If the entity is not valid, this returns a string ' to be displayed as an error message. '--- ' Parse the param string start = 1 pos = 0 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_type = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) entity_id = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) project_info = Mid (param, start, pos-start) start = pos + 1 pos = Instr(start, param, ""|"", vbBinaryCompare) stream_info = Mid (param, start, pos-start) start = pos + 1 ' Call the user-editable global script ucm_project_UCM_CQActAfterChact = UCM_CQActAfterChact(entity_type, entity_id, project_info, stream_info) ") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActBeforeChact", PERL , "UnifiedChangeManagement", " #--- # This record hook is invoked by SQUID to invoke the ""Perform ClearQuest # Action Before Changing Activity"" policy. # # INPUT: # - Param must be a string with this format: # ""entity-type|entity-id|project_info|stream_info"" (vertical bars are delimeters) # # OUTPUT: # - If the entity is valid, this returns an empty string # - If the entity is not valid, this returns a string # to be displayed as an error message. #--- # Parse the param string my $entity_type; my $entity_id; my $project_info; my $stream_info; ($entity_type, $entity_id, $project_info, $stream_info) = split ('\|', $param); # Call the user-editable global script $result = UCU_CQActBeforeChact($entity_type, $entity_id, $project_info, $stream_info); ") ADD scriptdef ( "UCM_Project", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_CQActAfterChact", PERL , "UnifiedChangeManagement", " #--- # This record hook is invoked by SQUID to invoke the ""Perform ClearQuest Action # After Changing Activity"" policy. If the activity is not in # a single stream project, or is not in the project's integration # stream, the UCM change activity should fail. # # INPUT: # - Param must be a string with this format: # ""entity-type|entity-id|project_info|stream_info"" (vertical bars are delimeters) # # OUTPUT: # - If the entity is valid, this returns an empty string # - If the entity is not valid, this returns a string # to be displayed as an error message. #--- # Parse the param string my $entity_type; my $entity_id; my $project_info; my $stream_info; ($entity_type, $entity_id, $project_info, $stream_info) = split ('\|', $param); $result = UCU_CQActAfterChact($entity_type, $entity_id, $project_info, $stream_info); ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_CQActBeforeChact_Def", BASIC , "UnifiedChangeManagement", " Function UCM_CQActBeforeChact_Def (entity_type, entity_id, project_info, stream_info) ' This implements the default behavior when the ""Perform ClearQuest Action ' Before Changing Activity"" policy is enabled: Default is do chact ' for all activities ' ' INPUT: ' - entity_type: type of entity being changed ' - entity_id: id (e.g. ""SAMPL0000001"") of entity being changed ' - project_info: ' ""SIMPLE"": this project is a single stream project ' ""DEFAULT"": this project is NOT a single stream project ' - stream_info: ' ""INT"": this stream is project's integration stream ' ""DEV"": this stream is not project's integration stream ' OUTPUT: ' - If the activity should be changed, this should return an empty string ' - If the action should not be changed, this should return a string ' to be displayed as an error message. This will cause the chact to ' be aborted. UCM_CQActBeforeChact_Def = """" End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCM_CQActAfterChact_Def", BASIC , "UnifiedChangeManagement", " Function UCM_CQActAfterChact_Def (entity_type, entity_id, project_info, stream_info) ' This implements the default behavior when the ""Perform ClearQuest Action ' After Changing Activity"" policy is enabled: Default is do nothing ' for all activities ' ' INPUT: ' - entity_type: type of entity being changed ' - entity_id: id (e.g. ""SAMPL0000001"") of entity being changed ' - project_info: ' ""SIMPLE"": this project is a single stream project ' ""DEFAULT"": this project is NOT a single stream project ' - stream_info: ' ""INT"": this stream is project's integration stream ' ""DEV"": this stream is not project's integration stream ' OUTPUT: ' - If the action was successful, this should return an empty string ' - If the action was unsuccessful, this should return a string ' to be displayed as an error message. This will cause the chact to ' be aborted. if project_info = ""SIMPLE"" Then ' User is permitted to do the transition, policies allowing UCM_CQActAfterChact_Def = """" ElseIf stream_info = ""INT"" Then ' User is permitted to do the transition, policies allowing UCM_CQActAfterChact_Def = """" Else ' User is NOT permitted to do the transition UCM_CQActAfterChact_Def = ""You cannot complete "" + entity_id + "" because it is not in a single stream project or in a project's integration stream"" End If End Function ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_CQActBeforeChact_Def", PERL , "UnifiedChangeManagement", " sub UCU_CQActBeforeChact_Def { # This implements the default behavior when the ""Perform ClearQuest Action # Before Changing Activity"" policy is enabled: Default is to do the chact # for all activities # # INPUT: # - entity_type: type of entity being changed # - entity_id: id (e.g. ""SAMPL0000001"") of entity being changed # - project_info: # ""SIMPLE"": this project is a single stream project # ""DEFAULT"": this project is NOT a single stream project # - stream_info: # ""INT"": this stream is project's integration stream # ""DEV"": this stream is not project's integration stream # OUTPUT: # - If the activity should be changed, this should return an empty string # - If the activity should not be changed, this should return a string # to be displayed as an error message. This will cause the chact to # be aborted. my $result = """"; return $result; } ") ADD scriptdef ( "", GLOBAL_HOOK , , "", "UCU_CQActAfterChact_Def", PERL , "UnifiedChangeManagement", " sub UCU_CQActAfterChact_Def { # This implements the default behavior when the ""Perform ClearQuest Action # After Changing Activity"" policy is enabled: Default is to do nothing # for all activities # # INPUT: # - entity_type: type of entity being changed # - entity_id: id (e.g. ""SAMPL0000001"") of entity being changed # - project_info: # ""SIMPLE"": this project is a single stream project # ""DEFAULT"": this project is NOT a single stream project # - stream_info: # ""INT"": this stream is project's integration stream # ""DEV"": this stream is not project's integration stream # OUTPUT: # - If the action was successful, this should return an empty string # - If the action was not successful, this should return a string # to be displayed as an error message. This will cause the chact to # be aborted. my ($entity_type, $entity_id, $project_info, $stream_info) = @_; my $result = """"; if ($project_info eq ""SIMPLE"") { # allow the UCM change activity $result = """"; } elsif ($stream_info eq ""INT"") { # allow the UCM change activity $result = """"; } else { # dissallow UCM change activity $result = ""You cannot complete "" . $entity_id . ""because it is not in a single stream project or in a project's integration stream""; } return $result; } ") ADD scriptdef ( "UCMUtilityActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_Contributors", BASIC , "UnifiedChangeManagement", " ' Attempt to create SquidServer COM server (should succeed if ClearCase is ' installed). ' Set error handling to catch error from CreateObject On Error Resume Next Set squid_server = CreateObject(""ClearCase.SquidServer.1"") error_num = Err.Number error_desc = Err.Description ' Reset error handling, so that SquidServer method errors are reported by CQ On Error Goto 0 UCMUtilityActivity_UCM_Contributors = """" If error_num <> 0 Then ' Create Object failed, raise exception If error_num = 429 Then ' CreateObject failed because SquidServer was not found, assume ClearCase is not installed or configured correctly UCMUtilityActivity_UCM_Contributors = ""Error: ClearCase may not be installed or configured correctly."" Else ' CreateObject failed for another reason, report the error UCMUtilityActivity_UCM_Contributors = ""Can not access SquidServer: CreateObject error="" & CStr(error_num) & "" "" & CStr(error_desc) End If Else ' CreateObject succeeded, call SquidServer's method Set this_session = GetSession() Set this_entity = BaseEntity UCMUtilityActivity_UCM_Contributors = squid_server.GetContributors(this_session, this_entity) End If ") ADD scriptdef ( "UCMUtilityActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_Contributors", PERL , "UnifiedChangeManagement", " # Get CQSquidLoad package require CQSquidLoad; my $squid = new CQSquidLoad; my $load_status = $squid->SquidLoadStatus(); # Check whether CQSquidLoad package was able to load CQSquidLoad library if ($load_status == 2) { # CQSquidLoad library could not be loaded, assume ClearCase # is not installed die ""Error: ClearCase may not be installed or configured correctly.""; } elsif ($load_status == 3) { # CQSquidLoad library loaded, but is wrong version die ""Error: wrong version of ClearCase is installed.""; } else { # Success, call package method to do the work my $session_id = $session->CQInt_Id(); my $entity_id = $entity->CQInt_Id(); $result = $squid->GetContributors($session_id, $entity_id); } # Return error string ") ADD scriptdef ( "UCMUtilityActivity", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", BASIC , "UnifiedChangeManagement", " ' The actiontype that we get as a parameter is just ""BASE' which ' isn't very informative, so get the action type that started it all. real_actiontype = GetActionType ' Get args for calling methods Set this_session = GetSession() Set this_entity = BaseEntity If (real_actiontype <> AD_SUBMIT) Then ' For other actiontype's, check if entity is bound bound_vob_object = GetFieldValue(""ucm_vob_object"").GetValue If (bound_vob_object <> """") Then call_squid = 0 If (real_actiontype <> AD_DELETE) Then ' Get a list of the fields in this record type... fieldNameList = GetFieldNames ' Loop For Each FN in fieldNameList If (FN = ""Headline"") Then ' Get the field's original value OldFV = GetFieldOriginalValue(FN).GetValue ' Get the current value NewFV = GetFieldValue(FN).GetValue If (OldFV <> NewFV) Then call_squid = 1 Exit For End If ' End of ""OldFV <> NewFV"" End If ' End of ""FN = Headline"" Next ' End of For loop End If ' End of (real_actiontype <> AD_DELETE) If (call_squid = 1) Or (real_actiontype = AD_DELETE) Then ' Entity is bound, attempt to create SquidServer COM server ' Set error handling to catch error from CreateObject On Error Resume Next Set squid_server = CreateObject(""ClearCase.SquidServer.1"") error_num = Err.Number error_desc = Err.Description ' Reset error handling, so that SquidServer method errors are reported by CQ On Error Goto 0 If error_num <> 0 Then ' Create Object failed, raise exception If error_num = 429 Then ' CreateObject failed because SquidServer was not found, assume ClearCase is not installed Err.Raise vbObjectError+1, ""SquidServer"", ""Error: ClearCase may not be installed or configured correctly."" Else ' CreateObject failed for another reason, report the error Err.Raise vbObjectError+2, ""SquidServer"", ""Can not access SquidServer: CreateObject error="" & CStr(error_num) & "" "" & CStr(error_desc) End If ' End of ""error_num = 429"" Else ' CreateObject succeeded, call appropriate server method ' On error, these will throw an exception and abort the commit If (real_actiontype = AD_DELETE) Then Call squid_server.DeleteCommitCQActivity(this_session, this_entity) Else Call squid_server.ModifyCommitCQActivity(this_session, this_entity) End If End If ' End of ""CreateObject succeeded"" End If ' End of ""call_squid"" End If ' End of (bound_vob_object <> """") End If ' End of (real_actiontype <> AD_SUBMIT) ") ADD scriptdef ( "UCMUtilityActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChangeSet_SetEntity", BASIC , "UnifiedChangeManagement", " ' Get the Activity Change Set (ACS) ActiveX Control instance set acs_ctrl = param.ObjectItem ' Clear any existing items acs_ctrl.Clear ' Get the session and info about the record type Set session = GetSession Set entitydef = session.GetEntityDef(GetEntityDefname) ' If entitydef has (non-UCM) cc integration objects, populate list If entitydef.IsFieldDefName(""cc_change_set"") Then cset_ref = GetFieldValue(""cc_change_set"").GetValue If cset_ref <> """" Then Set cset_record = session.GetEntity(""cc_change_set"",cset_ref) object_ref_list = (cset_record.GetFieldValue(""objects"")).GetValueAsList If IsArray(object_ref_list) Then For Each object_ref In object_ref_list Set version_record = session.GetEntity(""cc_vob_object"",object_ref) VOBOid = version_record.GetFieldValue(""vob_family_uuid"").GetValue ObjOid = version_record.GetFieldValue(""object_oid"").GetValue Path = version_record.GetFieldValue(""name"").GetValue acs_ctrl.AddItemEx VOBOid,ObjOid,Path Next ' Exit Function End If ' cc_change_set has a list of cc_vob_objects End If ' cc_change_set field is non-empty End If ' has a cc_change_set field ' If entitydef has a UCM activity, use that to get the change set list If entitydef.IsFieldDefName(""ucm_vob_object"") Then acs_ref = GetFieldValue(""ucm_vob_object"").GetValue If acs_ref <> """" Then acs_ctrl.Activity = acs_ref End If End If ") ADD scriptdef ( "UCMUtilityActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", BASIC , "UnifiedChangeManagement", " ' ***** UCM Package Rev = 4.0 07_12_2001 ***** ' Attempt to create SquidServer COM server (should succeed if ClearCase is ' installed). ' Set error handling to catch error from CreateObject On Error Resume Next Set squid_server = CreateObject(""ClearCase.SquidServer.1"") error_num = Err.Number error_desc = Err.Description ' Reset error handling, so that SquidServer method errors are reported by CQ On Error Goto 0 UCMUtilityActivity_UCM_WorkOn = """" If error_num <> 0 Then ' Create Object failed, raise exception If error_num = 429 Then ' CreateObject failed because SquidServer was not found, assume ClearCase is not installed UCMUtilityActivity_UCM_WorkOn = ""Error: ClearCase may not be installed or configured correctly."" Else ' CreateObject failed for another reason, report the error UCMUtilityActivity_UCM_WorkOn = ""Can not access SquidServer: CreateObject error="" & CStr(error_num) & "" "" & CStr(error_desc) End If Else ' CreateObject succeeded, call SquidServer's method Set this_session = GetSession() Set this_entity = BaseEntity UCMUtilityActivity_UCM_WorkOn = squid_server.StartWork(this_session, this_entity) End If ") ADD scriptdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_definded_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_definded_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = ""EDIT_ENTITY"" Then ucm_stream_Permission = AD_OPTIONAL Else ucm_stream_Permission = AD_READONLY End If ") ADD scriptdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_definded_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_definded_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = ""EDIT_ENTITY"" Then ucm_view_Permission = AD_OPTIONAL Else ucm_view_Permission = AD_READONLY End If ") ADD scriptdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_defined_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_defined_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = """" Then ' Default behavior is to be read-only if entity is bound, else can be changed bound_vob_object = GetFieldValue(""ucm_vob_object"").GetValue If bound_vob_object <> """" Then ucm_project_Permission = AD_READONLY Else ucm_project_Permission = AD_OPTIONAL End If Else ' All other cases - make it non read-only ucm_project_Permission = AD_OPTIONAL End If ") ADD scriptdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_READONLY; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { # defined, get the value my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq ""EDIT_ENTITY"" ) { $result = $CQPerlExt::CQ_OPTIONAL; } } ") ADD scriptdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_READONLY; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { # defined, get the value my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq ""EDIT_ENTITY"" ) { $result = $CQPerlExt::CQ_OPTIONAL; } } ") ADD scriptdef ( "UCMUtilityActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_OPTIONAL; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq """" ) { my $bound_vob_object = $entity->GetFieldValue(""ucm_vob_object"")->GetValue(); if ( $bound_vob_object ne """" ) { $result = $CQPerlExt::CQ_READONLY; } } } ") ADD scriptdef ( "UCMUtilityActivity", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", PERL , "UnifiedChangeManagement", " # The actiontype that we get as a parameter is just ""BASE' which # isn't very informative, so get the action type that started it all. my $real_actiontype = $entity->GetActionType(); # Get args for calling methods my $session_id = $session->CQInt_Id(); my $entity_id = $entity->CQInt_Id(); my $call_squid = 0; if ($real_actiontype != $CQPerlExt::CQ_SUBMIT) { # For other actiontypes, check if entity is bound my $field_info = $entity->GetFieldValue(""ucm_vob_object""); my $ucm_vob_object = $field_info->GetValue(); if ($ucm_vob_object ne """") { # Entity is bound, check if calling SQUID is necessary if ($real_actiontype != $CQPerlExt::CQ_DELETE) { # Get a list of the fields in this record type # (NOTE: GetFieldNames() returns a *REFERENCE* to an array)... my($FieldNamesRef) = $entity->GetFieldNames(); # Loop through the fields foreach $FN (@$FieldNamesRef) { if ( $FN eq ""Headline"" ) { # Get the field's original value... $OldFV = $entity->GetFieldOriginalValue($FN)->GetValue(); # Get the field's new value... $NewFV = $entity->GetFieldValue($FN)->GetValue(); # check if the OldValue equals the NewValue if ( $OldFV ne $NewFV ) { $call_squid = 1; last; } } # End of ( $FN eq ""Headline"" ) } # End of foreach loop } # End of ($real_actiontype != $CQPerlExt::CQ_DELETE) if ( ( $call_squid == 1 ) || ($real_actiontype == $CQPerlExt::CQ_DELETE) ) { # Calling SQUID is necessary, get CQSquidLoad package require CQSquidLoad; my $squid = new CQSquidLoad; my $load_status = $squid->SquidLoadStatus(); # Check whether CQSquidLoad package was able to load CQSquidLoad library if ($load_status == 2) { # CQSquidLoad library could not be loaded, assume ClearCase is not installed die ""Error: ClearCase may not be installed or configured correctly.""; } elsif ($load_status == 3) { # CQSquidLoad library loaded, but is wrong version die ""Can not change this record, wrong version of ClearCase is installed.""; } else { # Success, call package method to do the work. # On error, this will throw an exception and abort the commit if ($real_actiontype == $CQPerlExt::CQ_DELETE) { $squid->DeleteCommitCQActivity($session_id, $entity_id); } else { $squid->ModifyCommitCQActivity($session_id, $entity_id); } } # End of ""load CQSquidLoad Package"" } # End of ""call_squid"" } # End of ($ucm_vob_object ne """") } # End of ""other actiontype's"" ") ADD scriptdef ( "UCMUtilityActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", PERL , "UnifiedChangeManagement", " # Get CQSquidLoad package require CQSquidLoad; my $squid = new CQSquidLoad; my $load_status = $squid->SquidLoadStatus(); # Check whether CQSquidLoad package was able to load CQSquidLoad library if ($load_status == 2) { # CQSquidLoad library could not be loaded, assume ClearCase # is not installed die ""Error: ClearCase may not be installed or configured correctly.""; } elsif ($load_status == 3) { # CQSquidLoad library loaded, but is wrong version die ""Can not Work On this record, wrong version of ClearCase is installed.""; } else { # Success, call package method to do the work my $session_id = $session->CQInt_Id(); my $entity_id = $entity->CQInt_Id(); $result = $squid->StartWork($session_id, $entity_id); } # Return error string ") ADD scriptdef ( "Defect", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", BASIC , "UnifiedChangeManagement", " ' The actiontype that we get as a parameter is just ""BASE' which ' isn't very informative, so get the action type that started it all. real_actiontype = GetActionType ' Get args for calling methods Set this_session = GetSession() Set this_entity = BaseEntity If (real_actiontype <> AD_SUBMIT) Then ' For other actiontype's, check if entity is bound bound_vob_object = GetFieldValue(""ucm_vob_object"").GetValue If (bound_vob_object <> """") Then call_squid = 0 If (real_actiontype <> AD_DELETE) Then ' Get a list of the fields in this record type... fieldNameList = GetFieldNames ' Loop For Each FN in fieldNameList If (FN = ""Headline"") Then ' Get the field's original value OldFV = GetFieldOriginalValue(FN).GetValue ' Get the current value NewFV = GetFieldValue(FN).GetValue If (OldFV <> NewFV) Then call_squid = 1 Exit For End If ' End of ""OldFV <> NewFV"" End If ' End of ""FN = Headline"" Next ' End of For loop End If ' End of (real_actiontype <> AD_DELETE) If (call_squid = 1) Or (real_actiontype = AD_DELETE) Then ' Entity is bound, attempt to create SquidServer COM server ' Set error handling to catch error from CreateObject On Error Resume Next Set squid_server = CreateObject(""ClearCase.SquidServer.1"") error_num = Err.Number error_desc = Err.Description ' Reset error handling, so that SquidServer method errors are reported by CQ On Error Goto 0 If error_num <> 0 Then ' Create Object failed, raise exception If error_num = 429 Then ' CreateObject failed because SquidServer was not found, assume ClearCase is not installed Err.Raise vbObjectError+1, ""SquidServer"", ""Error: ClearCase may not be installed or configured correctly."" Else ' CreateObject failed for another reason, report the error Err.Raise vbObjectError+2, ""SquidServer"", ""Can not access SquidServer: CreateObject error="" & CStr(error_num) & "" "" & CStr(error_desc) End If ' End of ""error_num = 429"" Else ' CreateObject succeeded, call appropriate server method ' On error, these will throw an exception and abort the commit If (real_actiontype = AD_DELETE) Then Call squid_server.DeleteCommitCQActivity(this_session, this_entity) Else Call squid_server.ModifyCommitCQActivity(this_session, this_entity) End If End If ' End of ""CreateObject succeeded"" End If ' End of ""call_squid"" End If ' End of (bound_vob_object <> """") End If ' End of (real_actiontype <> AD_SUBMIT) ") ADD scriptdef ( "Defect", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChangeSet_SetEntity", BASIC , "UnifiedChangeManagement", " ' Get the Activity Change Set (ACS) ActiveX Control instance set acs_ctrl = param.ObjectItem ' Clear any existing items acs_ctrl.Clear ' Get the session and info about the record type Set session = GetSession Set entitydef = session.GetEntityDef(GetEntityDefname) ' If entitydef has (non-UCM) cc integration objects, populate list If entitydef.IsFieldDefName(""cc_change_set"") Then cset_ref = GetFieldValue(""cc_change_set"").GetValue If cset_ref <> """" Then Set cset_record = session.GetEntity(""cc_change_set"",cset_ref) object_ref_list = (cset_record.GetFieldValue(""objects"")).GetValueAsList If IsArray(object_ref_list) Then For Each object_ref In object_ref_list Set version_record = session.GetEntity(""cc_vob_object"",object_ref) VOBOid = version_record.GetFieldValue(""vob_family_uuid"").GetValue ObjOid = version_record.GetFieldValue(""object_oid"").GetValue Path = version_record.GetFieldValue(""name"").GetValue acs_ctrl.AddItemEx VOBOid,ObjOid,Path Next ' Exit Function End If ' cc_change_set has a list of cc_vob_objects End If ' cc_change_set field is non-empty End If ' has a cc_change_set field ' If entitydef has a UCM activity, use that to get the change set list If entitydef.IsFieldDefName(""ucm_vob_object"") Then acs_ref = GetFieldValue(""ucm_vob_object"").GetValue If acs_ref <> """" Then acs_ctrl.Activity = acs_ref End If End If ") ADD scriptdef ( "Defect", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", BASIC , "UnifiedChangeManagement", " ' ***** UCM Package Rev = 4.0 07_12_2001 ***** ' Attempt to create SquidServer COM server (should succeed if ClearCase is ' installed). ' Set error handling to catch error from CreateObject On Error Resume Next Set squid_server = CreateObject(""ClearCase.SquidServer.1"") error_num = Err.Number error_desc = Err.Description ' Reset error handling, so that SquidServer method errors are reported by CQ On Error Goto 0 Defect_UCM_WorkOn = """" If error_num <> 0 Then ' Create Object failed, raise exception If error_num = 429 Then ' CreateObject failed because SquidServer was not found, assume ClearCase is not installed Defect_UCM_WorkOn = ""Error: ClearCase may not be installed or configured correctly."" Else ' CreateObject failed for another reason, report the error Defect_UCM_WorkOn = ""Can not access SquidServer: CreateObject error="" & CStr(error_num) & "" "" & CStr(error_desc) End If Else ' CreateObject succeeded, call SquidServer's method Set this_session = GetSession() Set this_entity = BaseEntity Defect_UCM_WorkOn = squid_server.StartWork(this_session, this_entity) End If ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_definded_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_definded_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = ""EDIT_ENTITY"" Then ucm_stream_Permission = AD_OPTIONAL Else ucm_stream_Permission = AD_READONLY End If ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_definded_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_definded_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = ""EDIT_ENTITY"" Then ucm_view_Permission = AD_OPTIONAL Else ucm_view_Permission = AD_READONLY End If ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_defined_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_defined_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = """" Then ' Default behavior is to be read-only if entity is bound, else can be changed bound_vob_object = GetFieldValue(""ucm_vob_object"").GetValue If bound_vob_object <> """" Then ucm_project_Permission = AD_READONLY Else ucm_project_Permission = AD_OPTIONAL End If Else ' All other cases - make it non read-only ucm_project_Permission = AD_OPTIONAL End If ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_READONLY; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { # defined, get the value my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq ""EDIT_ENTITY"" ) { $result = $CQPerlExt::CQ_OPTIONAL; } } ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_READONLY; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { # defined, get the value my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq ""EDIT_ENTITY"" ) { $result = $CQPerlExt::CQ_OPTIONAL; } } ") ADD scriptdef ( "Defect", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_OPTIONAL; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq """" ) { my $bound_vob_object = $entity->GetFieldValue(""ucm_vob_object"")->GetValue(); if ( $bound_vob_object ne """" ) { $result = $CQPerlExt::CQ_READONLY; } } } ") ADD scriptdef ( "Defect", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", PERL , "UnifiedChangeManagement", " # The actiontype that we get as a parameter is just ""BASE' which # isn't very informative, so get the action type that started it all. my $real_actiontype = $entity->GetActionType(); # Get args for calling methods my $session_id = $session->CQInt_Id(); my $entity_id = $entity->CQInt_Id(); my $call_squid = 0; if ($real_actiontype != $CQPerlExt::CQ_SUBMIT) { # For other actiontypes, check if entity is bound my $field_info = $entity->GetFieldValue(""ucm_vob_object""); my $ucm_vob_object = $field_info->GetValue(); if ($ucm_vob_object ne """") { # Entity is bound, check if calling SQUID is necessary if ($real_actiontype != $CQPerlExt::CQ_DELETE) { # Get a list of the fields in this record type # (NOTE: GetFieldNames() returns a *REFERENCE* to an array)... my($FieldNamesRef) = $entity->GetFieldNames(); # Loop through the fields foreach $FN (@$FieldNamesRef) { if ( $FN eq ""Headline"" ) { # Get the field's original value... $OldFV = $entity->GetFieldOriginalValue($FN)->GetValue(); # Get the field's new value... $NewFV = $entity->GetFieldValue($FN)->GetValue(); # check if the OldValue equals the NewValue if ( $OldFV ne $NewFV ) { $call_squid = 1; last; } } # End of ( $FN eq ""Headline"" ) } # End of foreach loop } # End of ($real_actiontype != $CQPerlExt::CQ_DELETE) if ( ( $call_squid == 1 ) || ($real_actiontype == $CQPerlExt::CQ_DELETE) ) { # Calling SQUID is necessary, get CQSquidLoad package require CQSquidLoad; my $squid = new CQSquidLoad; my $load_status = $squid->SquidLoadStatus(); # Check whether CQSquidLoad package was able to load CQSquidLoad library if ($load_status == 2) { # CQSquidLoad library could not be loaded, assume ClearCase is not installed die ""Error: ClearCase may not be installed or configured correctly.""; } elsif ($load_status == 3) { # CQSquidLoad library loaded, but is wrong version die ""Can not change this record, wrong version of ClearCase is installed.""; } else { # Success, call package method to do the work. # On error, this will throw an exception and abort the commit if ($real_actiontype == $CQPerlExt::CQ_DELETE) { $squid->DeleteCommitCQActivity($session_id, $entity_id); } else { $squid->ModifyCommitCQActivity($session_id, $entity_id); } } # End of ""load CQSquidLoad Package"" } # End of ""call_squid"" } # End of ($ucm_vob_object ne """") } # End of ""other actiontype's"" ") ADD scriptdef ( "Defect", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", PERL , "UnifiedChangeManagement", " # Get CQSquidLoad package require CQSquidLoad; my $squid = new CQSquidLoad; my $load_status = $squid->SquidLoadStatus(); # Check whether CQSquidLoad package was able to load CQSquidLoad library if ($load_status == 2) { # CQSquidLoad library could not be loaded, assume ClearCase # is not installed die ""Error: ClearCase may not be installed or configured correctly.""; } elsif ($load_status == 3) { # CQSquidLoad library loaded, but is wrong version die ""Can not Work On this record, wrong version of ClearCase is installed.""; } else { # Success, call package method to do the work my $session_id = $session->CQInt_Id(); my $entity_id = $entity->CQInt_Id(); $result = $squid->StartWork($session_id, $entity_id); } # Return error string ") ADD scriptdef ( "BaseCMActivity", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", BASIC , "UnifiedChangeManagement", " ' The actiontype that we get as a parameter is just ""BASE' which ' isn't very informative, so get the action type that started it all. real_actiontype = GetActionType ' Get args for calling methods Set this_session = GetSession() Set this_entity = BaseEntity If (real_actiontype <> AD_SUBMIT) Then ' For other actiontype's, check if entity is bound bound_vob_object = GetFieldValue(""ucm_vob_object"").GetValue If (bound_vob_object <> """") Then call_squid = 0 If (real_actiontype <> AD_DELETE) Then ' Get a list of the fields in this record type... fieldNameList = GetFieldNames ' Loop For Each FN in fieldNameList If (FN = ""Headline"") Then ' Get the field's original value OldFV = GetFieldOriginalValue(FN).GetValue ' Get the current value NewFV = GetFieldValue(FN).GetValue If (OldFV <> NewFV) Then call_squid = 1 Exit For End If ' End of ""OldFV <> NewFV"" End If ' End of ""FN = Headline"" Next ' End of For loop End If ' End of (real_actiontype <> AD_DELETE) If (call_squid = 1) Or (real_actiontype = AD_DELETE) Then ' Entity is bound, attempt to create SquidServer COM server ' Set error handling to catch error from CreateObject On Error Resume Next Set squid_server = CreateObject(""ClearCase.SquidServer.1"") error_num = Err.Number error_desc = Err.Description ' Reset error handling, so that SquidServer method errors are reported by CQ On Error Goto 0 If error_num <> 0 Then ' Create Object failed, raise exception If error_num = 429 Then ' CreateObject failed because SquidServer was not found, assume ClearCase is not installed Err.Raise vbObjectError+1, ""SquidServer"", ""Error: ClearCase may not be installed or configured correctly."" Else ' CreateObject failed for another reason, report the error Err.Raise vbObjectError+2, ""SquidServer"", ""Can not access SquidServer: CreateObject error="" & CStr(error_num) & "" "" & CStr(error_desc) End If ' End of ""error_num = 429"" Else ' CreateObject succeeded, call appropriate server method ' On error, these will throw an exception and abort the commit If (real_actiontype = AD_DELETE) Then Call squid_server.DeleteCommitCQActivity(this_session, this_entity) Else Call squid_server.ModifyCommitCQActivity(this_session, this_entity) End If End If ' End of ""CreateObject succeeded"" End If ' End of ""call_squid"" End If ' End of (bound_vob_object <> """") End If ' End of (real_actiontype <> AD_SUBMIT) ") ADD scriptdef ( "BaseCMActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_ChangeSet_SetEntity", BASIC , "UnifiedChangeManagement", " ' Get the Activity Change Set (ACS) ActiveX Control instance set acs_ctrl = param.ObjectItem ' Clear any existing items acs_ctrl.Clear ' Get the session and info about the record type Set session = GetSession Set entitydef = session.GetEntityDef(GetEntityDefname) ' If entitydef has (non-UCM) cc integration objects, populate list If entitydef.IsFieldDefName(""cc_change_set"") Then cset_ref = GetFieldValue(""cc_change_set"").GetValue If cset_ref <> """" Then Set cset_record = session.GetEntity(""cc_change_set"",cset_ref) object_ref_list = (cset_record.GetFieldValue(""objects"")).GetValueAsList If IsArray(object_ref_list) Then For Each object_ref In object_ref_list Set version_record = session.GetEntity(""cc_vob_object"",object_ref) VOBOid = version_record.GetFieldValue(""vob_family_uuid"").GetValue ObjOid = version_record.GetFieldValue(""object_oid"").GetValue Path = version_record.GetFieldValue(""name"").GetValue acs_ctrl.AddItemEx VOBOid,ObjOid,Path Next ' Exit Function End If ' cc_change_set has a list of cc_vob_objects End If ' cc_change_set field is non-empty End If ' has a cc_change_set field ' If entitydef has a UCM activity, use that to get the change set list If entitydef.IsFieldDefName(""ucm_vob_object"") Then acs_ref = GetFieldValue(""ucm_vob_object"").GetValue If acs_ref <> """" Then acs_ctrl.Activity = acs_ref End If End If ") ADD scriptdef ( "BaseCMActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", BASIC , "UnifiedChangeManagement", " ' ***** UCM Package Rev = 4.0 07_12_2001 ***** ' Attempt to create SquidServer COM server (should succeed if ClearCase is ' installed). ' Set error handling to catch error from CreateObject On Error Resume Next Set squid_server = CreateObject(""ClearCase.SquidServer.1"") error_num = Err.Number error_desc = Err.Description ' Reset error handling, so that SquidServer method errors are reported by CQ On Error Goto 0 BaseCMActivity_UCM_WorkOn = """" If error_num <> 0 Then ' Create Object failed, raise exception If error_num = 429 Then ' CreateObject failed because SquidServer was not found, assume ClearCase is not installed BaseCMActivity_UCM_WorkOn = ""Error: ClearCase may not be installed or configured correctly."" Else ' CreateObject failed for another reason, report the error BaseCMActivity_UCM_WorkOn = ""Can not access SquidServer: CreateObject error="" & CStr(error_num) & "" "" & CStr(error_desc) End If Else ' CreateObject succeeded, call SquidServer's method Set this_session = GetSession() Set this_entity = BaseEntity BaseCMActivity_UCM_WorkOn = squid_server.StartWork(this_session, this_entity) End If ") ADD scriptdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_definded_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_definded_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = ""EDIT_ENTITY"" Then ucm_stream_Permission = AD_OPTIONAL Else ucm_stream_Permission = AD_READONLY End If ") ADD scriptdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_definded_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_definded_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = ""EDIT_ENTITY"" Then ucm_view_Permission = AD_OPTIONAL Else ucm_view_Permission = AD_READONLY End If ") ADD scriptdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", BASIC , "UnifiedChangeManagement", " ' Get Session Set this_session = GetSession ' check if the session variable is defined edit_context_type = """" variable_defined_flag = this_session.HasValue(""EDIT_CQACT_CTX_TYPE"") If variable_defined_flag Then ' defined, get the value edit_context_type = this_session.NameValue(""EDIT_CQACT_CTX_TYPE"") Else ' not defined, calling from ClearQuest End If If edit_context_type = """" Then ' Default behavior is to be read-only if entity is bound, else can be changed bound_vob_object = GetFieldValue(""ucm_vob_object"").GetValue If bound_vob_object <> """" Then ucm_project_Permission = AD_READONLY Else ucm_project_Permission = AD_OPTIONAL End If Else ' All other cases - make it non read-only ucm_project_Permission = AD_OPTIONAL End If ") ADD scriptdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_stream", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_READONLY; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { # defined, get the value my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq ""EDIT_ENTITY"" ) { $result = $CQPerlExt::CQ_OPTIONAL; } } ") ADD scriptdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_view", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_READONLY; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { # defined, get the value my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq ""EDIT_ENTITY"" ) { $result = $CQPerlExt::CQ_OPTIONAL; } } ") ADD scriptdef ( "BaseCMActivity", FIELD_HOOK , FIELD_PERMISSION , "ucm_project", "", PERL , "UnifiedChangeManagement", " # Set default value to return $result = $CQPerlExt::CQ_OPTIONAL; # check if the session variable is defined my $variable_defined_flag = $session->HasValue(""EDIT_CQACT_CTX_TYPE""); if ( $variable_defined_flag ) { my $edit_context_type = $session->GetNameValue(""EDIT_CQACT_CTX_TYPE""); if ( $edit_context_type eq """" ) { my $bound_vob_object = $entity->GetFieldValue(""ucm_vob_object"")->GetValue(); if ( $bound_vob_object ne """" ) { $result = $CQPerlExt::CQ_READONLY; } } } ") ADD scriptdef ( "BaseCMActivity", ACTION_HOOK , ACTION_COMMIT , "ucm_base_synchronize", "", PERL , "UnifiedChangeManagement", " # The actiontype that we get as a parameter is just ""BASE' which # isn't very informative, so get the action type that started it all. my $real_actiontype = $entity->GetActionType(); # Get args for calling methods my $session_id = $session->CQInt_Id(); my $entity_id = $entity->CQInt_Id(); my $call_squid = 0; if ($real_actiontype != $CQPerlExt::CQ_SUBMIT) { # For other actiontypes, check if entity is bound my $field_info = $entity->GetFieldValue(""ucm_vob_object""); my $ucm_vob_object = $field_info->GetValue(); if ($ucm_vob_object ne """") { # Entity is bound, check if calling SQUID is necessary if ($real_actiontype != $CQPerlExt::CQ_DELETE) { # Get a list of the fields in this record type # (NOTE: GetFieldNames() returns a *REFERENCE* to an array)... my($FieldNamesRef) = $entity->GetFieldNames(); # Loop through the fields foreach $FN (@$FieldNamesRef) { if ( $FN eq ""Headline"" ) { # Get the field's original value... $OldFV = $entity->GetFieldOriginalValue($FN)->GetValue(); # Get the field's new value... $NewFV = $entity->GetFieldValue($FN)->GetValue(); # check if the OldValue equals the NewValue if ( $OldFV ne $NewFV ) { $call_squid = 1; last; } } # End of ( $FN eq ""Headline"" ) } # End of foreach loop } # End of ($real_actiontype != $CQPerlExt::CQ_DELETE) if ( ( $call_squid == 1 ) || ($real_actiontype == $CQPerlExt::CQ_DELETE) ) { # Calling SQUID is necessary, get CQSquidLoad package require CQSquidLoad; my $squid = new CQSquidLoad; my $load_status = $squid->SquidLoadStatus(); # Check whether CQSquidLoad package was able to load CQSquidLoad library if ($load_status == 2) { # CQSquidLoad library could not be loaded, assume ClearCase is not installed die ""Error: ClearCase may not be installed or configured correctly.""; } elsif ($load_status == 3) { # CQSquidLoad library loaded, but is wrong version die ""Can not change this record, wrong version of ClearCase is installed.""; } else { # Success, call package method to do the work. # On error, this will throw an exception and abort the commit if ($real_actiontype == $CQPerlExt::CQ_DELETE) { $squid->DeleteCommitCQActivity($session_id, $entity_id); } else { $squid->ModifyCommitCQActivity($session_id, $entity_id); } } # End of ""load CQSquidLoad Package"" } # End of ""call_squid"" } # End of ($ucm_vob_object ne """") } # End of ""other actiontype's"" ") ADD scriptdef ( "BaseCMActivity", ENTITY_HOOK , ENTITY_NAMED_HOOK , "", "UCM_WorkOn", PERL , "UnifiedChangeManagement", " # Get CQSquidLoad package require CQSquidLoad; my $squid = new CQSquidLoad; my $load_status = $squid->SquidLoadStatus(); # Check whether CQSquidLoad package was able to load CQSquidLoad library if ($load_status == 2) { # CQSquidLoad library could not be loaded, assume ClearCase # is not installed die ""Error: ClearCase may not be installed or configured correctly.""; } elsif ($load_status == 3) { # CQSquidLoad library loaded, but is wrong version die ""Can not Work On this record, wrong version of ClearCase is installed.""; } else { # Success, call package method to do the work my $session_id = $session->CQInt_Id(); my $entity_id = $entity->CQInt_Id(); $result = $squid->StartWork($session_id, $entity_id); } # Return error string ") PACKAGE_USAGE ( "UCMInterop", 1 , "Notes", "5.1", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "Resolution", "1.1", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "Attachments", "1.0", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "History", "1.0", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "Email", "7.2", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "UCMPolicyScripts", "4.0", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "BaseCMActivity", "2.0", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "AMStateTypes", "1.0", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "UnifiedChangeManagement", "6.0", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "UCMSetup", "4.0", "", "") PACKAGE_USAGE ( "UCMInterop", 1 , "Notes", "5.1", "Defect", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "Resolution", "1.1", "Defect", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "Attachments", "1.0", "Defect", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "History", "1.0", "Defect", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "Email", "7.2", "Defect", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "AMStateTypes", "1.0", "Defect", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "UnifiedChangeManagement", "6.0", "Defect", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "AMStateTypes", "1.0", "BaseCMActivity", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "UnifiedChangeManagement", "6.0", "BaseCMActivity", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "AMStateTypes", "1.0", "UCMUtilityActivity", "placeholder") PACKAGE_USAGE ( "UCMInterop", 1 , "UnifiedChangeManagement", "6.0", "UCMUtilityActivity", "placeholder") } ADD master_schemarevs ( "UCMInterop", 2 , "Enabled schema for '1.06' version of package 'JazzInterop'", UNRESTRICTED_SCHEMA , 7 ) { ADD property ( "Package_JazzInterop_Windows_Script_Language", "", "JazzInterop", "PERL") ADD property ( "Applied Package Form Tab Names_JazzInterop_7", "", "", "SUBMITTABNAMES=;RECORDTABNAMES=") ADD entitydef ( "JazzConnectorChangeEvents", "", changehistory , AUX_ENTITY , USER_OWNED_ENTITY , FALSE , "", "JazzInterop", FALSE ) ADD entitydef ( "JazzConnectorProperties", "", jazzconnectorproperties , AUX_ENTITY , USER_OWNED_ENTITY , FALSE , "", "JazzInterop", FALSE ) ADD entitydef ( "JazzConnectorSyncHistory", "", recordssynced , AUX_ENTITY , USER_OWNED_ENTITY , FALSE , "", "JazzInterop", FALSE ) ADD entitydef ( "JazzConnectorQueryInfo", "", jazzconnectorqueryinfo , AUX_ENTITY , USER_OWNED_ENTITY , FALSE , "", "JazzInterop", FALSE ) MOD entitydef ( "Defect", "", Defect , REQ_ENTITY , USER_OWNED_ENTITY , TRUE , "Defect_Base", "", 4 ) MOD entitydef ( "UCM_Project", "", ucm_project , AUX_ENTITY , USER_OWNED_ENTITY , FALSE , "ucm_project", "UnifiedChangeManagement", 4 ) ADD fielddef ( "JazzConnectorChangeEvents", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "entity_dbid", "", entity_dbid , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "version_number", "", version_number , INT , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "entity_record_type", "", entity_record_type , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "name", "", name , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorProperties", "value", "", fldcolumn , MULTILINE_STRING , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "recordDbid", "", recorddbid , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "field_values", "", field_values , MULTILINE_STRING , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "entity_display_name", "", entity_display_name , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "entityRecordType", "", entityrecordtype , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "modifiedBy", "", modifiedby , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "full_state_included", "", full_state_included , INT , "", USER_OWNED_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorSyncHistory", "jazz_ProjectArea_id", "", jazz_projectarea_id , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorChangeEvents", "jazz_ProjectArea_id", "", jazz_projectarea_id , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "dbid", "", dbid , DBID , "", DBID_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "is_active", "", is_active , INT , "", IS_ACTIVE_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "version", "", version , INT , "", VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "lock_version", "", lock_version , INT , "", LOCK_VERSION_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "locked_by", "", locked_by , INT , "", LOCKED_BY_FIELD , "", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", FALSE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "history", "", history , JOURNAL , "", HISTORY_FIELD , "history", "", 0 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "record_type", "", record_type , RECORDTYPE , "", RECORDTYPE_FIELD , "", "", 30 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "ratl_mastership", "", ratl_mastership , REFERENCE , "the replica site where this record can be modified", MASTERSHIP_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "ratl_keysite", "", ratl_keysite , REFERENCE , "the replica site where this record was last re-keyed", SITE_FIELD , "ratl_replicas", "", 0 , CLOSED_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", READONLY , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "query_dbid", "", query_dbid , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "jazz_ProjectArea_id", "", jazz_projectarea_id , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD fielddef ( "JazzConnectorQueryInfo", "entityRecordType", "", entityrecordtype , SHORT_STRING , "", USER_OWNED_FIELD , "", "", 50 , OPEN_CHOICE , CALC_IN_PREPARE , "", TRUE , "JazzInterop", OPTIONAL , FALSE , FALSE ) ADD unique_key_def ( "JazzConnectorChangeEvents", "dbid", 1 ) ADD unique_key_def ( "JazzConnectorProperties", "name", 1 ) ADD unique_key_def ( "JazzConnectorQueryInfo", "dbid", 1 ) ADD unique_key_def ( "JazzConnectorSyncHistory", "recordDbid", 1 ) ADD unique_key_def ( "JazzConnectorSyncHistory", "entityRecordType", 2 ) ADD unique_key_def ( "JazzConnectorSyncHistory", "jazz_ProjectArea_id", 3 ) MOD statedef ( "Defect", "Submitted", "", 1 , "", "Assign") MOD statedef ( "Defect", "Assigned", "", 2 , "", "Open") MOD statedef ( "Defect", "Opened", "", 3 , "", "Resolve") MOD statedef ( "Defect", "Resolved", "", 4 , "", "Validate") MOD statedef ( "Defect", "Closed", "", 5 , "", "") MOD statedef ( "Defect", "Duplicate", "", 6 , "", "") MOD statedef ( "Defect", "Postponed", "", 7 , "", "Assign") ADD actiondef ( "JazzConnectorChangeEvents", "Submit", "", SUBMIT , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorChangeEvents", "Import", "", IMPORT , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorChangeEvents", "Delete", "", DELETE , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorProperties", "Submit", "", SUBMIT , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorProperties", "Import", "", IMPORT , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorProperties", "Modify", "", MODIFY , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorSyncHistory", "Submit", "", SUBMIT , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorSyncHistory", "Import", "", IMPORT , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorSyncHistory", "Delete", "", DELETE , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorProperties", "Delete", "", DELETE , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorQueryInfo", "Submit", "", SUBMIT , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorQueryInfo", "Import", "", IMPORT , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorQueryInfo", "Delete", "", DELETE , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "JazzConnectorQueryInfo", "Modify", "", MODIFY , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "Defect", "Change_History", "", BASE , "", "", "", "JazzInterop", 0 ) ADD actiondef ( "UCM_Project", "Change_History", "", BASE , "", "", "", "JazzInterop", 0 ) MOD actiondef ( "Defect", "Open", "", CHANGE_STATE , "", "", "Opened", "", 0 ) MOD actiondef ( "Defect", "Reject", "", CHANGE_STATE , "", "", "Opened", "", 0 ) ADD state_legal_action ( "Defect", "Submitted", "Open") ADD field_status_def ( "JazzConnectorChangeEvents", "", "dbid", READONLY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "is_active", READONLY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "version", READONLY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "lock_version", READONLY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "locked_by", READONLY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "history", READONLY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "record_type", READONLY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "ratl_keysite", READONLY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "entity_dbid", OPTIONAL ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "version_number", OPTIONAL ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "entity_record_type", OPTIONAL ) ADD field_status_def ( "JazzConnectorProperties", "", "dbid", READONLY ) ADD field_status_def ( "JazzConnectorProperties", "", "is_active", READONLY ) ADD field_status_def ( "JazzConnectorProperties", "", "version", READONLY ) ADD field_status_def ( "JazzConnectorProperties", "", "lock_version", READONLY ) ADD field_status_def ( "JazzConnectorProperties", "", "locked_by", READONLY ) ADD field_status_def ( "JazzConnectorProperties", "", "history", READONLY ) ADD field_status_def ( "JazzConnectorProperties", "", "record_type", READONLY ) ADD field_status_def ( "JazzConnectorProperties", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "JazzConnectorProperties", "", "ratl_keysite", READONLY ) ADD field_status_def ( "JazzConnectorProperties", "", "name", MANDATORY ) ADD field_status_def ( "JazzConnectorProperties", "", "value", MANDATORY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "dbid", READONLY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "is_active", READONLY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "version", READONLY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "lock_version", READONLY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "locked_by", READONLY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "history", READONLY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "record_type", READONLY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "ratl_keysite", READONLY ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "recordDbid", MANDATORY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "field_values", OPTIONAL ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "entity_display_name", OPTIONAL ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "entityRecordType", MANDATORY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "modifiedBy", OPTIONAL ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "full_state_included", OPTIONAL ) ADD field_status_def ( "JazzConnectorSyncHistory", "", "jazz_ProjectArea_id", MANDATORY ) ADD field_status_def ( "JazzConnectorChangeEvents", "", "jazz_ProjectArea_id", OPTIONAL ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "dbid", READONLY ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "is_active", READONLY ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "version", READONLY ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "lock_version", READONLY ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "locked_by", READONLY ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "history", READONLY ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "record_type", READONLY ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "ratl_mastership", OPTIONAL ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "ratl_keysite", READONLY ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "query_dbid", OPTIONAL ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "jazz_ProjectArea_id", OPTIONAL ) ADD field_status_def ( "JazzConnectorQueryInfo", "", "entityRecordType", OPTIONAL ) ADD hookdef ( "", GLOBAL_HOOK , , "", "ChangeHistoryScripts", "", "JazzInterop", "", 0 ) ADD hookdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Change_History", "", "", "JazzInterop", "", 0 ) ADD hookdef ( "UCM_Project", ACTION_HOOK , ACTION_NOTIFICATION , "Change_History", "", "", "JazzInterop", "", 0 ) ADD scriptdef ( "", GLOBAL_HOOK , , "", "ChangeHistoryScripts", PERL , "JazzInterop", "sub getReferredDbId { ($session, $fieldTypeName, $fieldValue) = @_; return $session->GetEntity($fieldTypeName, $fieldValue)->GetDbId() . """"; } sub getReferredDbIds { ($session, $fieldTypeName, $fieldValueList) = @_; $returnValue = """"; foreach $fieldValue (@$fieldValueList) { $returnValue = $returnValue . getReferredDbId($session, $fieldTypeName, $fieldValue) . "" ""; } $returnValue =~ s/\s+$//; # eliminate the trailing space(s) return $returnValue; } sub addAttachmentsRecords { my ($attachfields) = @_; my ($changeRecord, $attachfield, $theAttachments, $anAttachment, $i, $j, $fieldValue, $xml); $field_value = """"; # Work with the first attachment field for ($i=0;$i<$attachfields->Count();$i++) { $attachfield = $attachfields->Item($i); $theAttachments = $attachfield->GetAttachments(); if ($theAttachments->Count() > 0) { $field_value .= """"; # For this attachment field, get the collection of all # its attachments $field_value .= ""Attachment""; for ($j=0;$j<$theAttachments->Count();$j++) { $anAttachment = $theAttachments->Item($j); $field_value .= "" \"""" . $anAttachment->GetFileName() . ""\""""; } $field_value .= """" } } return $field_value; } sub addSyncedRecord { my ($entityDbId, $entityRecordTypeName, $projectArea, $session) = @_; if (!lookupSyncTable($entityDbId, $entityRecordTypeName, $projectArea, $session)) { my ($syncRecord); $syncRecord = $session->BuildEntity(""JazzConnectorSyncHistory""); $syncRecord->SetFieldValue(""recordDbid"", $entityDbId); $syncRecord->SetFieldValue(""entityRecordType"", $entityRecordTypeName); $syncRecord->SetFieldValue(""jazz_ProjectArea_id"", $projectArea); $syncRecord->Validate(); # $invalidFields = $syncRecord->GetInvalidFieldValues(); # for ($i=0;$i<$invalidFields->Count();$i++) { # $field = $invalidFields->Item($i); # $session->OutputDebugString($field->GetName() . "" = "" . $field->GetValue() . ""\n""); # } $syncRecord->Commit(); } } %ignoreFields = (""history"", true); sub WriteChangeHistoryRecord { my ($fullStateIncluded, $projectArea) = @_; my ($session, $versionNumber, $entityDbId, $recordTypeName, $changedFields, $i, $changedField, $changeRecord, $fieldType, $fieldTypeName, $fieldName, $displayName, $xml, $xmlForField); $session = $entity->GetSession(); $versionNumber = $entity->GetFieldValue(""version"")->GetValue(); $entityDbId = $entity->GetDbId() . """"; $displayName = $entity->GetDisplayName(); $recordTypeName = $entity->GetEntityDefName(); $recordType = $session->GetEntityDef($recordTypeName); # if it never was synced before, send all # fields, even if it isn't a create. if ($fullStateIncluded == 0) { $changedFields = $entity->GetFieldsUpdatedThisAction(); } else { $changedFields = $entity->GetAllFieldValues(); } $xml = """"; $changeRecord = $session->BuildEntity(""JazzConnectorChangeEvents""); $changeRecord->SetFieldValue(""ratl_mastership"", determineConnectorMastership()); $changeRecord->SetFieldValue(""entity_dbid"", $entityDbId); $changeRecord->SetFieldValue(""version_number"", $versionNumber); $changeRecord->SetFieldValue(""entity_record_type"", $recordTypeName); $changeRecord->SetFieldValue(""entity_display_name"", $displayName); $changeRecord->SetFieldValue(""modifiedBy"", $session->GetUserLoginName()); $changeRecord->SetFieldValue(""full_state_included"", $fullStateIncluded . """"); $changeRecord->SetFieldValue(""jazz_ProjectArea_id"", $projectArea); for ($i=0;$i<$changedFields->Count();$i++) { $xmlForField = """"; $changedField = $changedFields->Item($i); $fieldType = $changedField->GetType(); $fieldName = $changedField->GetName(); $fieldValue = """"; if (!$ignoreFields{$fieldName}) { $xmlForField .= """"; if ($fieldType eq $CQPerlExt::CQ_REFERENCE) { $fieldValue = $changedField->GetValue(); if ($fieldValue ne """") { $fieldTypeName = $recordType->GetFieldReferenceEntityDef($fieldName)->GetName(); $fieldValue = $fieldTypeName . "" "" . getReferredDbId($session, $fieldTypeName, $changedField->GetValue()); } } elsif ($fieldType eq $CQPerlExt::CQ_REFERENCE_LIST) { $fieldTypeName = $recordType->GetFieldReferenceEntityDef($fieldName)->GetName(); $fieldValue = getReferredDbIds($session, $fieldTypeName, $changedField->GetValueAsList()); if ($fieldValue ne """") { $fieldValue = $fieldTypeName . "" "" . $fieldValue; } } elsif ($fieldType eq $CQPerlExt::CQ_ATTACHMENT_LIST) { # shouldn't be in this list.... next; } elsif ($fieldType eq $CQPerlExt::CQ_MULTILINE_STRING || $fieldType eq $CQPerlExt::CQ_SHORT_STRING) { $fieldValue = ""GetValue() . ""]]>""; } else { $fieldValue = $changedField->GetValue(); } $xmlForField .= $fieldValue . """"; $xml .= $xmlForField; } } if ($entity->IsDuplicate()) { $fieldValue = $recordTypeName . "" ""; $fieldValue = $fieldValue . $entity->GetOriginal()->GetDbId(); } else { $fieldValue = """"; } $xml .= """" . $fieldValue . """"; $xml .= addAttachmentsRecords($entity->GetAttachmentFields()); $xml .= """"; # $session->OutputDebugString(""$xml\n""); $changeRecord->SetFieldValue(""field_values"", $xml); $changeRecord->Validate(); # $invalidFields = $changeRecord->GetInvalidFieldValues(); # for ($i=0;$i<$invalidFields->Count();$i++) { # $field = $invalidFields->Item($i); # $session->OutputDebugString($field->GetName() . "" = "" . $field->GetValue() . ""\n""); # } $changeRecord->Commit(); addSyncedRecord($entityDbId, $recordTypeName, $projectArea, $session); } sub Change_History_Delete { my ($projectArea) = @_; my ($changeRecord); $changeRecord = $session->BuildEntity(""JazzConnectorChangeEvents""); $changeRecord->SetFieldValue(""entity_dbid"", $entity->GetDbId() . """"); $changeRecord->SetFieldValue(""version_number"", ""-1""); $changeRecord->SetFieldValue(""entity_record_type"", $entity->GetEntityDefName()); $changeRecord->SetFieldValue(""modifiedBy"", $session->GetUserLoginName()); $changeRecord->SetFieldValue(""ratl_membership"", determineConnectorMastership()); $changeRecord->SetFieldValue(""full_state_included"", ""0""); $changeRecord->SetFieldValue(""jazz_ProjectArea_id"", $projectArea); $changeRecord->Validate(); $changeRecord->Commit(); # the sync record is deleted by the gateway after the proxy is deleted. } #sub findQueryName { # my ($session, $entity) = @_; # my ($resultSetObj, # $filterNode, # $query, # $recordTypeName, # $queryKeyString, # @queryKey); # $recordTypeName = $entity->GetEntityDefName(); # $queryKeyString = ""cq.query."" . $recordTypeName; # @queryKey = ($queryKeyString ); # if ($session->HasValue($queryKeyString)) { # return $session->GetNameValue($queryKeyString); # } # $query = $session->BuildQuery(""JazzConnectorProperties""); # $query->BuildField(""value""); # $filterNode = $query->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND); # $filterNode->BuildFilter(""name"", $CQPerlExt::CQ_COMP_OP_EQ, \@queryKey); # $resultSetObj = $session->BuildResultSet($query); # $resultSetObj->EnableRecordCount(); # $resultSetObj->Execute(); # if ($resultSetObj->GetRecordCount() == 0) { # return undef; # } else { # $resultSetObj->MoveNext(); # $queryName = $resultSetObj->GetColumnValue(1); # if ($queryName ne """") { # $session->SetNameValue($queryKeyString, $queryName); # } # return $queryName; # } #} sub determineConnectorMastership { my ($session, $mastership, $record); $session = $entity->GetSession(); $mastership = $session->GetNameValue(""ConnectorMastership""); if ($mastership eq """") { $query = $session->BuildQuery(""JazzConnectorQueryInfo""); $query->BuildField(""ratl_mastership""); $resultSetObj = $session->BuildResultSet($query); $resultSetObj->Execute(); if ($resultSetObj->MoveNext() == $CQPerlExt::CQ_NO_DATA_FOUND) { # This means there are no queries, even the ""ALL"" query return; } $mastership = $resultSetObj->GetColumnValue(1); $session->SetNameValue(""ConnectorMastership"", $mastership); } return $mastership; } sub querySyncTable { my ($entityDbid, $recordTypeName, $session) = @_; my ($query, $filterNode, $resultSetObj, @dbid, @recordType, %projectAreaIds); @dbid = ( $entityDbid ); @recordType = ( $recordTypeName ); $query = $session->BuildQuery(""JazzConnectorSyncHistory""); $query->BuildField(""jazz_ProjectArea_id""); $filterNode = $query->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND); $filterNode->BuildFilter(""recordDbid"", $CQPerlExt::CQ_COMP_OP_EQ, \@dbid); $filterNode->BuildFilter(""entityRecordType"", $CQPerlExt::CQ_COMP_OP_EQ, \@recordType); $resultSetObj = $session->BuildResultSet($query); $resultSetObj->Execute(); while ($resultSetObj->MoveNext() != $CQPerlExt::CQ_NO_DATA_FOUND) { $projectAreaIds{$resultSetObj->GetColumnValue(1)} = 1; } return %projectAreaIds; } sub lookupSyncTable { my ($entityDbid, $recordTypeName, $projectArea, $session) = @_; my ($query, $filterNode, $resultSetObj, @dbid, @recordType, @projectAreaId); @dbid = ( $entityDbid ); @recordType = ( $recordTypeName ); @projectAreaId = ( $projectArea ); $query = $session->BuildQuery(""JazzConnectorSyncHistory""); $query->BuildField(""jazz_ProjectArea_id""); $filterNode = $query->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND); $filterNode->BuildFilter(""recordDbid"", $CQPerlExt::CQ_COMP_OP_EQ, \@dbid); $filterNode->BuildFilter(""entityRecordType"", $CQPerlExt::CQ_COMP_OP_EQ, \@recordType); $filterNode->BuildFilter(""jazz_ProjectArea_id"", $CQPerlExt::CQ_COMP_OP_EQ, \@projectAreaId); $resultSetObj = $session->BuildResultSet($query); $resultSetObj->Execute(); if($resultSetObj->MoveNext() == $CQPerlExt::CQ_SUCCESS) { return 1; } return return 0; } sub queryQueryInfoTable { my ($recordTypeName, $session) = @_; my ($query, $filterNode, $resultSetObj, @dbid, @recordType, %projectAreaQueryMap); @dbid = ( $entityDbid ); @recordType = ( $recordTypeName ); $query = $session->BuildQuery(""JazzConnectorQueryInfo""); $query->BuildField(""query_dbid""); $query->BuildField(""jazz_ProjectArea_id""); $filterNode = $query->BuildFilterOperator($CQPerlExt::CQ_BOOL_OP_AND); $filterNode->BuildFilter(""entityRecordType"", $CQPerlExt::CQ_COMP_OP_EQ, \@recordType); $resultSetObj = $session->BuildResultSet($query); $resultSetObj->Execute(); while ($resultSetObj->MoveNext() != $CQPerlExt::CQ_NO_DATA_FOUND) { $projectAreaQueryMap{$resultSetObj->GetColumnValue(1)} = $resultSetObj->GetColumnValue(2); } return %projectAreaQueryMap; } sub RunInteropFilter { my($actiontype) = @_; my ($interopFilterQueryName, $resultSetObj, $filterQuery, $session, $topNode, $recordCount, $currentWorkspace, @entityDbId, %previousProjectAreaIds, %currentProjectAreaIds, %projectAreaQueryMap, %projectAreaFullStateMap, $currentQueryMatches, $unspecifiedProjectAreaFound); $currentQueryMatches = 0; $session = $entity->GetSession(); $currentWorkspace = $session->GetWorkSpace(); $recordTypeName = $entity->GetEntityDefName(); %previousProjectAreaIds = querySyncTable($entity->GetDbId() . """", $recordTypeName, $session); if ($actiontype eq $CQPerlExt::CQ_DELETE) { foreach my $projectArea (keys %previousProjectAreaIds) { Change_History_Delete($projectArea); } } else { # run all queries for the record type %projectAreaQueryMap = queryQueryInfoTable($recordTypeName, $session); $unspecifiedProjectAreaFound = 0; foreach my $query_dbid (keys %projectAreaQueryMap) { # how to handle the no query?? my $queryPassed = 0; if ($query_dbid eq """") { $queryPassed = 1; } else { my $filterQuery = $currentWorkspace->GetQueryDefByDbId($query_dbid); $topNode = $filterQuery->CreateTopNode($CQPerlExt::CQ_BOOL_OP_AND); @entityDbId = ($entity->GetDbId() . """"); $topNode->BuildFilter(""dbid"", $CQPerlExt::CQ_COMP_OP_EQ, \@entityDbId); $resultSetObj = $session->BuildResultSet($filterQuery); $resultSetObj->EnableRecordCount(); $resultSetObj->Execute(); $recordCount = $resultSetObj->GetRecordCount(); $queryPassed = ($recordCount == 1); } if ($queryPassed == 1) { $currentProjectAreaIds{$projectAreaQueryMap{$query_dbid}} = 1; $currentQueryMatches++; } } # Determine whether or not to sync this record to each project area with # a matching query, ""moving"" a record if it no longer syncs with # a project area it has previously. foreach my $projectAreaId (values %projectAreaQueryMap) { if ($previousProjectAreaIds{$projectAreaId} == 1 && $currentProjectAreaIds{$projectAreaId} == 1) { # the record was synced with the project area before, so # just do an update WriteChangeHistoryRecord(0, $projectAreaId); } elsif ($previousProjectAreaIds{$projectAreaId} != 1 && $currentProjectAreaIds{$projectAreaId} == 1) { # the record is being created for the first time WriteChangeHistoryRecord(1, $projectAreaId); } elsif ($previousProjectAreaIds{$projectAreaId} == 1 && $currentProjectAreaIds{$projectAreaId} != 1) { # this case when it it moved, it is no longer in this project area if ($currentQueryMatches > 0) { # but it is in some other one Change_History_Delete($projectAreaId); } else { # didn't match any query - keep syncing to the last project area. WriteChangeHistoryRecord(1, $projectAreaId); } } } # Note that the algorithm does not disconnect records from any Jazz items # when the number of queries selected a record goes to zero. We feel that # would be too aggressive; we don't want a mistake in a query to cause # massive disconnection of all connected records, especially since there # is no way to reconnect to a work item. } } sub JazzCQConnector { my($actionname, $actiontype) = @_; # $actionname as string scalar # $actiontype as long scalar RunInteropFilter($actiontype); } ") ADD scriptdef ( "Defect", ACTION_HOOK , ACTION_NOTIFICATION , "Change_History", "", PERL , "JazzInterop", " JazzCQConnector($actionname, $actiontype); ") ADD scriptdef ( "UCM_Project", ACTION_HOOK , ACTION_NOTIFICATION , "Change_History", "", PERL , "JazzInterop", " JazzCQConnector($actionname, $actiontype); ") PACKAGE_USAGE ( "UCMInterop", 2 , "JazzInterop", "1.06", "", "") PACKAGE_USAGE ( "UCMInterop", 2 , "JazzInterop", "1.06", "Defect", "placeholder") PACKAGE_USAGE ( "UCMInterop", 2 , "JazzInterop", "1.06", "UCM_Project", "placeholder") } }