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")
}
}