Site Standards

To enable Site Standards configuration, you must first install Control-M/EM version 9.0.21 and the Control-M Workload Change Manager add-on.

Site Standards are rules that enable you to control job definition in Control-M by enforcing restrictions on specific job parameters. Site Standards are applied at the folder level, and apply to the subfolder and jobs within the folder.

Site Standard Properties

The following example shows the basic properties of a Site Standard:

Description

Describes the purpose of the Site Standard.

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Description": "This is a description of the Site Standard",
    "EventFormat": "{SourceProperty:JobName}-TO-{TargetProperty:JobName}",
    "Rules": [],
    "InternalRules": [],
    "BusinessParameters": []
}

Parameter

Description

Description

Describes the purpose of the Site Standard.

Maximum length: 512 characters

EventFormat

Defines a default pattern that applies when a condition is created, which can be assembled from the following parts:

  • Fixed text.

  • Source property: Defines a property value from the predecessor job in the following format: "{SourceProperty:<name>}".

  • Target property: Defines a property value from the successor job in the following format: "{TargetProperty:<name>}".

Valid values for Source and Target properties:

  • JobName

  • File

  • (z/OS) MemberName.

  • Application

  • SubApplication

  • Host/HostGroup

  • RunAs

  • ParentFolder

Default: {SourceProperty:JobName}-TO-{TargetProperty:JobName}.

Rules

List of property rules that define restrictions.

InternalRules

List of rules that are used internally by the Site Standard.

BusinessParameters

List of parameters that are defined on the folder level and apply to each job in the folder.

Site Standard Rules

Site Standard Rules define a restriction to apply to a specific job property.

The following Rule types are available:

Rule:Text

Applies to text-based job properties.

The following example shows a job property that is given a default value and is made into a mandatory field:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
        "Type": "Rule:Text",
        "Property": "Application",
        "Default": "APP",
        "Required": true
        }
    ]
}

Parameter

Description

Property

Specifies the job property to which the rule must apply.

Valid values:

  • ParentFolder

  • Application

  • SubApplication

  • Description

  • RunAs

  • DocumentationFileName

  • DocumentationPath

  • JobName

  • FileName

  • CreatedBy

  • Command (Command Line).

  • Priority

  • Host (Host/Host Group).

  • Name (Variables).

  • Value (Variables).

  • FolderName

  • SubFolderName

  • UserDaily

  • TimeZone

  • Calendar (Name).

  • MonthDaysCalendar. 

  • WeekDaysCalenda.r 

  • Event

  • Name (Resource Pools / Lock Resources) .

  • Message (Notification Before/After).

  • To

  • CC

  • Subject

  • Summary

  • Description

  • Name (Variable).

  • Value (Variable).

  • Job

  • Folder

  • Server

  • Event

  • RuleName

  • RuleValue

  • FromProgram

  • ToProgram

  • FromProcedure

  • ToProcedure

  • VariableName (Capture).

z/OS only:

  • Name (Step Range).

  • FromProgram (Step Range).

  • ToProgram (Step Range).

  • FromProcedure (Step Range).

  • ToProcedure (Step Range).

  • FilePath

  • OverridePath

  • EmbeddedScript (JCL).

  • SchedulingEnvironment

  • SystemAffinity

  • RequestNJENode

  • ControlDCategory

  • FolderLibrary

  • RerunMember

  • PDS

  • MinimumPDS

  • StatisticsCalendar

  • FromClass

  • FolderDSN

Default

Defines a default value for the defined job property when creating a new job.  

Use SystemDefault if you want this property to use the Control-M default value.

Required

Determines if the job property is a mandatory field.

Valid values: true | false

Default: false

The following example shows a rule that applies to a text-based job property only if certain conditions are met:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Text",
            "Property": "Application",
            "ApplyOn": {
                "JobType": "All",
                "Conditions" : [ 
                {
                  "Property" : "Application",
                  "Value" : "AAA",
                  "Operator" : "StartsWith"
                }, 
                {
                  "Property" : "Times",
                  "Value" : "3",
                  "Operator" : "GreaterThan"
                } 
              ]
           }
        }
    ]
}

Parameter

Description

ApplyOn

Defines one or more conditions that must be met for the rule to apply.

  JobType

Specifies the job type where the Site Standard rule must apply.

To apply the rule on all job types, use All. The rule is applied only if the property exists in the job type.

  Property

Specifies the job property to test with the pattern defined in Value.

  Value

Defines the pattern that must be matched.

  Operator

Defines the relationship between Property and Value:

Valid values for Boolean Property:

  • true 

  • false

Valid values for numeric Property:

  • Equals (default).

  • DoesNotEqual

  • GreaterThan

  • LessThan

Valid values for Enum Property:

  • Equals (default).

  • DoesNotEqual

Valid values for text Property:

  • Equals (default).

  • GreaterThan

  • LessThan

  • Contains

  • DoesNotContain

  • IsEmpty

  • IsNotEmpty

  • StartsWith

  • EndsWith

  • DoesNotStartWith

  • DoesNotEndWith

The following example shows a text-based job property that must include a Value and a Description from one of the objects that appears in the Values array:

Copy
"MyStandard": {
    "Type""SiteStandard",
    "Rules": [
        {
            "Type""Rule:Text",
            "Property""Application",
            "Include": {
                "Values": [
                    {"Value""DEV""Description""Development"},
                    {"Value""QA""Description""Quality Assurance"},
                    {"Value""PROD""Description""Production"}
                ]
            }
        }
    ]
}

The following example shows a text-based job property that must include a specific pattern and also excludes a list of values:

Copy
"MyStandard": {
    "Type""SiteStandard",
    "Rules": [
        {
            "Type""Rule:Text",
            "Property""Application",
            "Include": {
                "Patterns": [
                    "PREFIX-*"
                ]
            }
            "Exclude": {
                "Values": [
                    "PREFIX-EXCLUDE1",
                    "PREFIX-EXCLUDE2",
                    "PREFIX-EXCLUDE3"
                ]
            }
        }
    ]
}

Parameter

Description

Property

Specifies the text-based job property to which the rule must apply.

Include

Defines which text to allow.

You cannot Include Values and Patterns together.

Exclude

Defines which text to restrict.

You cannot Exclude Values and Patterns together.

  Values

Defines a list of values to allow or restrict

An empty list means that there is no restriction.

Each value must be an object of Value and Description:

Example: {"Value": "val1", "Description": "Des1"}

  Patterns

Defines a list of patterns to allow or restrict

An empty list means that there is no restriction.

Patterns can be assembled from a mix of the following parts:

  • Free text: "*".

  • Fixed text: "Fixed".

  • Control-M Property: "{Property:Application}".

  • Internal Rule: "{InternalRule:IR1}"

  • Business Parameter: "{BusinessParameter:PB1}"

Characters

Defines which characters to allow.

The default is all characters.

Default

Defines a default value for the defined job property when creating a new job.  

Required

Determines if the job property is a mandatory field.

Valid values: true | false

Default: false

The following example allows only uppercase letters for a text-based job property:

Copy
"MyStandard": {
    "Type""SiteStandard",
    "Rules": [
        {
            "Type""Rule:Text",
            "Property""Application"
            "Characters": {
                "Alphanumeric": {
                    "UppercaseLetters"true,
                    "LowercaseLetters"false,
                    "Digits"false
                }
            }
        }
    ]
}

The following example allows only specific alphanumeric values for text-based job property:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Text",
            "Property": "Application"
            "Characters": {
                "Alphanumeric": {
                    "UppercaseLetters": false,
                    "LowercaseLetters": false,
                    "Digits": false,
                    "SpecificCharacters": "@#$%"
                }
            }
        }
    ]
}

Parameter

Description

Alphanumeric

Defines which values are allowed.

Cannot be defined with an Any restriction.

  UppercaseLetters

Determines whether to allow uppercase characters.

Valid values: true | false

Default: true

  LowercaseLetters

Determines whether to allow lowercase characters.

Valid values: true | false

Default: true

  Digits

Determines whether to allow digits.

Valid values: true | false

Default: true

  SpecificCharacters

Lists specific characters to allow.

The following example shows a text-based job property that must contain a specific prefix and suffix:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Text",
            "Property": "Application",
            "Include": {
                "Patterns": [
                    "PREFIX-*-SUFFIX"
                ]
            }
        }
    ]
}

The following example shows a text-based job property that must include a specific pattern and also excludes a list of values:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Text",
            "Property": "Application",
            "Include": {
                "Patterns": [
                    "PREFIX-*"
                ]
            }
            "Exclude": {
                "Values": [
                    "PREFIX-EXCLUDE1",
                    "PREFIX-EXCLUDE2",
                    "PREFIX-EXCLUDE3"
                ]
            }
        }
    ]
}

The following example restricts the length of a text-based job property:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Text",
            "Property": "Application"
            "Characters": {
                "MinimumLength": 3,
                "MaximumLength": 5
            }
        }
    ]
}

Parameter

Description

MinimumLength

Defines the minimum text length.

Must be less than or equal to MaximumLength.

MaximumLength

Defines the maximum text length

Must be greater than or equal to MinimumLength.

The following example restricts certain characters from a text-based job property:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Text",
            "Property": "Application"
            "Characters": {
                "Any": {
                    "ExceptForCharacters": "^$"
                }
            }
        }
    ]
}

Parameter

Description

Any

Shows that any characters are allowed, which is the default.

Cannot be defined with an Alphanumeric restriction.

  ExceptForCharacters

Lists the characters to restrict.

Rule:Numeric

Applies to numeric job properties.

The following example shows a set of rules to apply to the Times (Maximum reruns) field:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Numeric",
            "Property": "Times",
            "Values": "2,4,6-9",
            "Default: "2",
            "Required: true
        }
    ]
}

Parameter

Description

Property

Defines the job property to restrict.

Valid values:

  • FromColumn

  • ToColumn

  • Tolerance

  • Every

  • Times (Maximum reruns).

  • DaysKeepActive

  • DaysKeepActiveIfNotOk

  • Quantity (Resource Pool).

For z/OS:

  • DaysToRetainData

  • JobRunsToRetainData

  • RetentionDays

  • RetentionGenerations

Values

Defines a list of allowed values:

  • n: Defines a specific number.

  • >n: Defines a number greater than n.

  • <n: Defines a number less than n.

  • n-m: Defines a range, where m is greater than n.

The n and m values can be either a positive or negative number.  

Default

Defines a default numeric value to set for a new job.

Required

Determines whether the field must contain a value.

Valid values: true | false

Default: false

Rule:Boolean

Applies to Boolean job properties, either Y/N or 0/1.

The following example shows a rule that defines that a job must always be cyclic:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Boolean",
            "Property": "Rerun",
            "Value": true
        }
    ]
}

Parameter

Description

Property

Defines the job property to restrict.

Valid values:

  • Remove

  • RunOnAllAgentsInGroup

  • EndFolder

  • ActiveRetentionPolicy

  • IndependentFlow

  • Critical

  • Rerun (cyclic).

  • RetroactiveOrder

  • Confirm (Requires user confirmation).

For z/OS:

  • RunAsStartedTask

  • EmergencyJob

  • AutoArchive

  • ArchiveSysData (Archive the job SYSDATA).

Value

Defines the Boolean value. The value cannot be Default.

Default

Defines a default value to set for a new job.

Valid values:

  • true

  • false

  • SystemDefault

Default: SystemDefault, which is the default value as defined by Control-M

Rule:Enum

Applies to job properties that have multiple fixed value enumerators.

A job property that appears as a drop-down list in the Control-M client (UI), is referred to as Rule:Enum in JSON format.

The following example shows the job property RerunFrom, and lists the allowed values in an array. The possible values for the RerunFrom job property are Start, End, and Target. In this example, you create a rule that limits the options to End and Target only:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Enum",
            "Property": "RerunFrom",
            "Values": [
                "End",
                "Target"
            ]
        }
    ]
}

The following example shows a rule that limits the job to a specific time using the ToTime job property:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:Enum",
            "Property": "ToTime",
            "Values": [
                "EndOfDay",
                "AllowSubmissionPastNewDayTime",
                "0000"
            ]
        }
    ]
}

Parameter

Description

Property

Defines the job property name to restrict.

Values

Defines an array of the allowed values that can apply to the defined property.

You must specify at least one value.

For a list of all the possible values for each property, see the next table.

Default

Defines a default value to set for new job.

Valid values:

  • Specific value: Sets one of the possible values for the defined Property.

  • SystemDefault: Sets the default value as defined by Control-M.

Valid Properties and Values for Rule:Enum

Properties

Values

FolderType

  • SimpleFolder (Regular folder).

  • Folder (SMART folder).

JobType

  • Command

  • Script

  • EmbeddedScript

OrderMethod

  • Automatic

  • Manual

  • AnyOtherValue

FromTime

  • NoStartTime

  • AnyTime

  • HHMM

ToTime

  • EndOfDay

  • AllowSubmissionPastNewDayTime

  • AnyTime

  • HHMM

RerunType

  • Rerun

  • RerunIntervals

  • RerunSpecificTimes

RerunFrom

  • Start

  • End

  • Target

ExceptionPolicy

(Rule Based Calendar)

  • DoNotOrder

  • OrderOnNextConfirmedDay

  • OrderOnPreviousConfirmedDay

  • OrderAnyway

ActivePeriod

(Rule Based Calendar)

  • Always

  • Active

  • NotActive

ExeptionalPolicy

  • DoNotOrder

  • OrderOnNextConfirmedDay

  • OrderOnPreviousConfirmedDay

  • OrderAnyway

ActivePeriod

  • Always

  • Active

  • NotActive

AdjustEvents

  • No

  • Yes

  • Bridge

  • (z/OS) Dummy. 

LockType

(Lock Resources)

  • Shared

  • Exclusive

Operation

(Output Handling)

  • None

  • Copy

  • Delete

  • Move

  • Release 

z/OS only:

  • File

  • NewDest

  • ChangeClass

NotificationType

(Before)

  • DoesNotStart

  • ExecutionTime

  • DoesNotEnd

  • ReRun

NotificationType

(After)

  • OK 

  • NotOK

Operation

(Do handle output)

  • None

  • Copy

  • Delete

  • Move

  • Release

z/OS only:

  • File

  • NewDest

  • ChangeClass

AttachOutput

(Do mail)

  • Default

  • Yes

  • No

RemedyUrgency

(Do remedy)

  • Low

  • Medium

  • High

  • Urgent

Urgency

(Do notify)

  • Normal

  • Urgent

  • Critical

(z/OS only) PreventNCT2

  • No

  • Yes

  • List

  • Flush

(z/OS only) SAC

  • ScheduleOnPreviousDay

  • ScheduleOnNextDay

  • ScheduleSMARTFolderOnNextDay

  • ScheduleSMARTFolderOnPreviousDay

(z/OS only) IfFail

(Resource Pools)

  • Keep

  • Release

(z/OS only) IfOk

(Resource Pools)

  • Release

  • Discard

(z/OS only) IfFail

(Lock Resources)

  • Keep

  • Release

Rule:List

Applies to list-based job properties.

The following example shows that a job must have at least one Event.

Copy
"MyStandard": {
    "Type""SiteStandard",
    "Rules": [
        {
            "Type""Rule:List",
            "Property""Events",
            "MustComply""AtLeastOne"
        }
    ]
}

The following example sets a defined Pattern for an Event:

Copy
"MyStandard": {
    "Type""SiteStandard",
    "Rules": [
        {
            "Type""Rule:List",
            "Property""Events",
            "Rules": [
                {
                    "Type""Rule:Text",
                    "Property""Event",
                    "Include": {
                        "Patterns": [
                            "PREFIX-*"
                        ]
                    }
                }
            ]
        }
    ]
}

The following example shows a set of rules that are created on an If-Action property:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:List",
            "Property": "If",
            "IfType": "CompletionStatus:NOTOK",
            "ActionType": "Action:Notify",
            "MustComply": "All",
            "PropertyCondition": {
                "Property": "Message",
                "Value": "NOTOK",
                "Operator": "Equal"  
            },
            "Rules": [
                {
                    "Type": "Rule:Enum",
                    "Property": "Urgency",
                    "Values": [
                        "Urgent",
                        "VeryUrgent"
                    ]
                },
                {
                    "Type": "Rule:Text",
                    "Property": "Message",
                    "Include": {
                        "Patterns": [
                            "MESSAGE_FORMAT*"
                        ]
                    }
                }
            ]
        }
    ]
}

Parameter

Description

Property

Defines the list-based job property to apply the rule.

Valid values:

  • If

  • Variables

  • FolderRuleBasedCalendars

  • JobRuleBasedCalendars

  • WaitForEvents

  • AddEvents

  • Resource:Pool

  • Resource:Lock

  • NotificationBefore

  • NotificationAfter

  • (z/OS) StepRange

  • (z/OS) CaptureOutput

IfType

Specifies the If type that is affected when the Property type is If.

Default: Any

ActionType

Specifies the Action type to take when the Property type is If.

Default: Any

MustComply

Determines how many items in the list must comply with the defined rule.

Valid values:

  • All: All the items in the list.

  • AtLeastOne: At least one item in the list.

Default: All

PropertyCondition

Defines properties that must satisfy the condition for the rule to apply.

To define PropertyCondition, MustComply must be All.

Valid values:

  • If

  • Variables

    • VariableName

    • VariableValue

  • FolderRuleBasedCalendars and JobRuleBasedCalendars.  

    • Calendar (Name)

    • MonthDaysCalendar

    • WeekDaysCalendar

    • DaysKeepActive

    • ConfirmationCalendar

    • ExceptionalPolicy

    • ActivePeriod

  • WaitForEvents

    • Event

    • Remove

  • Events

    • Event

  • Resource:Pool

    • PoolName

    • Quantity

    • IfFail

    • IfOK

  • Resource:Lock

    • LockName

    • LockType

    • IfFail

  • NotificationBefore and NotificationAfter.

    • NotificationType

    • Message

    • Urgency

    • Destination

  • (z/OS) StepRange

    • StepName

    • FromProgram

    • FromProcedure

    • ToProgram

    • ToProcedure

  • (z/OS) CaptureOutput

    • CaptureVariableName

  Operator

Defines the relationship between Property and Value.

Valid values:

  • Equals

  • DoesNotEqual

  • GreaterThan

  • LessThan

  • Contains

  • DoesNotContain

  • IsEmpty

  • IsNotEmpty

  • StartsWith

  • DoesNotStartsWith

  • EndsWith

  • DoesNotEndsWith

Rule:OperatorValue

Allows you to restrict the operator and value pairs that are allowed in a list-based field.

The following example restricts the operator and value for an If-Action job property:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        {
            "Type": "Rule:List",
            "Property": "If",
            "IfType": "If:CompletionStatus",
            "ActionType": "Action:Notify",
            "Rules": [
                {
                    "Type": "Rule:OperatorValue",
                    "Property": "CompletionStatus",
                    "Values": [{
                        "Operator": "Equal"
                        "Value": "2"
                    }]
                }
            ]
        }
    ]
}

Parameter

Description

Property

Defines the job property to apply the rule.

Valid values:

  • CompletionStatus

  • NumberOfExecutions

  • NumberOfReruns

Conditional Rule

A conditional rule is a customizable rule that applies to Events.

The following example defines a customized conditional rule for a defined job property:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        "MyOnDoRule": {
            "Type": "Rule",
            "Property": "KeepActive",
            "ApplyOn": {
                "Rerun": true
            },
            "Values": [">5"]
        }
    ]
}

The following example defines a customized conditional rule for an If-Action:

Copy
"MyStandard": {
    "Type": "SiteStandard",
    "Rules": [
        "MyOnDoRule": {
            "Type": "Rule:List",
            "Property": "If",
            "IfType": "If",
            "ActionType": "Action:StopCyclicRun",
            "ApplyOn": {
                "Rerun": true
            },
            "MustComply": "AtLeastOne"
            "PropertyApplyOn": {
                "CompletionStatus": "ANY"
            },
        }
    ]
}