Modify Policy

After a policy is defined, you can change the definition with the Modify Policy command. This command lets you add or remove defining clauses and change the value of clause arguments.

modify policy NAME [MOD_ITEM] {MOD_ITEM};
  • NAME is the name of the policy you want to modify.
  • MOD_ITEM is the type of modification you want to make. Each is specified in a Modify Policy clause, as listed in the following table. You only need to specify the fields to be modified.
    Modify Policy Clause Specifies
    defaultformat FORMAT_NAME The default is set to the format named.
    description VALUE The current description, if any, is changed to the values entered.
    icon FILENAME The image is changed to the new image in the field specified.
    add type TYPE_NAME {,TYPE_NAME} The named types are added to the list of object types that can have this policy.
    add type all All existing and future object types are permitted under this policy. For more information, see Type Clause for the Add Policy Command.
    remove type TYPE_NAME {,TYPE_NAME} The named object types are removed from the list of objects that can have this policy.
    remove type all Removes the 'type all' option from the policy. When the 'type all' option is removed or turned off, no types will be defined for the policy and no objects can be created under the policy until a type defined. If the 'type all' option was never used for the policy, 'remove type all' does nothing.
    add format FORMAT_NAME {,FORMAT_NAME} The named formats are added to the list of formats permitted by this policy.
    add format all All existing and future format types are permitted with this policy. For more information, see Format Clause for the Add Policy Command.
    remove format FORMAT_NAME {,FORMAT_NAME} The named formats are removed from the list of formats permitted by this policy.
    remove format all Removes the 'format all' option from the policy. When the 'format all' option is removed or turned off, no formats will be defined for the policy. If the 'format all' option was never used for the policy, 'remove format all' does nothing.
    add allstate [STATE_ITEM {,STATE_ITEM}] An allstate (accesses that apply to all policy states) with the specified STATE_ITEMs is added.

    You can also add allstate access that revokes access for Public and Owner. For example: modify policy "Product Requirement" add allstate revoke public read,modify,checkin;

    remove allstate Removes all accesses defined for allstate.
    allstate [ALLSTATE_MOD_ITEM {ALLSTATE_MOD_ITEM}] Modifies the allstate accesses based on the MOD_ITEMS.
    add state STATE_NAME [before STATE_NAME] [STATE_ITEM {,STATE_ITEM}] The named state is added to the policy with the state definitions listed. If you do not want the new state added after the existing states, you must specify which existing state the new state should precede.

    If a state is added to an existing policy which already governs objects, all object instances will be affected.

    If an object is in a state that precedes the new state, a state is added, as desired, in the object's lifecycle. However, if the object's current state is beyond where the new state is added, the object will never reach that state except through demotion. In some cases, this is not a concern; but, states should be added to existing policies with care.

    remove state STATE_NAME The named state is removed from the policy if there is at least one state remaining after the removal. Removing a state from a policy that is governing objects is not recommended.

    An alternate approach is to clone the policy and then remove the state from the clone. There is the notion that "from this point on" the policy will control these types of objects. New objects should use the new policy and older objects can change to the new policy, if desired. When a state is removed from a policy, all signatures to and from the state are removed. If the policy is in use, all signature approvals, comments, and so on are deleted.

    name VALUE The current state name is changed to that of the new name.
    minorsequence REVISION_SEQUENCE The minor revision sequence is changed to the sequence entered.

    Changing the minor sequence revisioning when objects already exist in the database might result in having unrevisable families. If the revision string of the last member is not included in the new sequence, the revision process will error when trying to revise an object because it cannot determine the next revision string.

    majorsequence REVISION_SEQUENCE The major revision sequence is changed to the sequence entered.

    Changing the major sequence revisioning when objects already exist in the database might result in having unrevisable families. If the revision string of the last member is not included in the new sequence, the revision process will error when trying to revise an object because it cannot determine the next revision string.

    state STATE_NAME [STATE_MOD_ITEM {STATE_MOD_ITEM}] The named state is changed according to the state modification clauses entered. For more information, see Modifying Policy States.
    store STORE_NAME The file store is changed to use the file store named.

    Keep in mind that if you change the store for a policy, files that are already checked into objects governed by the policy will still reside in the old store. If these objects are revised or cloned, the new revision/clone references the original file in its storage location and thus the clone or revision will be placed in the old storage location. When the time comes for the file reference to become an actual file (as when the file list changes between the 2 objects) the file copy is made in the same store the original file is located in.

    However any new files that are checked in will be placed in the new store. For more information, see MQL Concepts: Implications of Changing Stores.

    hidden The hidden option is changed to specify that the object is hidden.
    nothidden The hidden option is changed to specify that the object is not hidden.
    property NAME [to ADMINTYPE NAME] [value STRING] The named property is modified.
    add property NAME [to ADMINTYPE NAME] [value STRING] The named property is added.
    remove property NAME [to ADMINTYPE NAME] [value STRING] The named property is removed.
    history STRING Adds a history record marked "custom" to the policy that is being modified. The STRING argument is a free-text string that allows you to enter some information describing the nature of the modification. For more information, see Adding History to Administrative Objects.

Each modification clause is related to the clauses and arguments that define the policy. For example, assume you want to modify the policy for proposing, presenting, and releasing drawings. It has been decided to use the policy for only CAD drawings while a new policy is defined for handling non-CAD drawings. To customize the existing policy for CAD use, you might begin modifying the name and the policy’s description clause with the following Modify Policy command:

modify policy Drawings
   name "CAD Drawings"
   description "Policy for CAD Drawing Proposal, Review and Release";

In the following example, the policy Product Requirement is modified to add access for Sam on all states in the policy:

modify policy “Product Requirement” add allstate user Sam read,modify,checkin;

These changes leave only the states to be modified. Just as the Modify Policy clauses resemble the Add Policy clauses, the subclauses that modify states resemble those that define them. For more information, see Modifying Policy States.