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 simple Site Standard. This Site Standard includes two Site Standard rules, as well as one business parameter and one internal rule that are used in the Site Standard rules.
"MyStandard": {
"Type": "SiteStandard",
"Description": "This is a description of the Site Standard",
"EventFormat": "{SourceProperty:JobName}-TO-{TargetProperty:JobName}",
"Rules": [{
"Type": "Rule:Text",
"Property": "Application",
"Include": {
"Patterns": [
"{BusinessParameter:3DIGIT_BP}*{InternalRule:3DIGIT_IR}"
]
}
},
{
"Type": "Rule:Text",
"Property": "SubApplication",
"Include": {
"Patterns": [
"{BusinessParameter:3DIGIT_BP}*{InternalRule:3DIGIT_IR}"
]
}
}],
"InternalRules": [{
"RuleName": "3DIGIT_IR",
"Characters": {
"MinimumLength": "3",
"MaximumLength": "3",
"Alphanumeric": {
"Digits": true
}
}
}],
"BusinessParameters": [{
"Required": true,
"ParameterName": "3DIGIT_BP",
"Characters": {
"MinimumLength": "3",
"MaximumLength": "3",
"Alphanumeric": {
"Digits": true
}
}
}]
}
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:
Valid values for Source and Target properties:
Default: {SourceProperty:JobName}-TO-{TargetProperty:JobName}. |
Rules |
List of rules that define restrictions on properties. |
InternalRules |
List of reusable rules that you can include within other rules or business parameters. |
BusinessParameters |
List of reusable input parameters that enable you to restrict values consistently in all jobs in the folder. Values of business parameters are defined at the folder level and are applied to all jobs within 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:
"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:
z/OS only:
|
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:
"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:
Valid values for numeric Property:
Valid values for Enum Property:
Valid values for text Property:
|
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:
"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:
"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:
|
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:
"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:
"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:
"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:
"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:
"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:
"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:
"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:
For z/OS:
|
Values |
Defines a list of allowed values:
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:
"MyStandard": {
"Type": "SiteStandard",
"Rules": [
{
"Type": "Rule:Boolean",
"Property": "Rerun",
"Value": true
}
]
}
Parameter |
Description |
---|---|
Property |
Defines the job property to restrict. Valid values:
For z/OS:
|
Value |
Defines the Boolean value. The value cannot be Default. |
Default |
Defines a default value to set for a new job. Valid values:
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 Desktop (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:
"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:
"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:
|
Valid Properties and Values for Rule:Enum
Properties |
Values |
---|---|
FolderType |
|
JobType |
|
OrderMethod |
|
FromTime |
|
ToTime |
|
RerunType |
|
RerunFrom |
|
ExceptionPolicy (Rule Based Calendar) |
|
ActivePeriod (Rule Based Calendar) |
|
ExeptionalPolicy |
|
ActivePeriod |
|
AdjustEvents |
|
LockType (Lock Resources) |
|
Operation (Output Handling) |
z/OS only:
|
NotificationType (Before) |
|
NotificationType (After) |
|
Operation (Do handle output) |
z/OS only:
|
AttachOutput (Do mail) |
|
RemedyUrgency (Do remedy) |
|
Urgency (Do notify) |
|
(z/OS only) PreventNCT2 |
|
(z/OS only) SAC |
|
(z/OS only) IfFail (Resource Pools) |
|
(z/OS only) IfOk (Resource Pools) |
|
(z/OS only) IfFail (Lock Resources) |
|
Rule:List
Applies to list-based job properties.
The following example shows that a job must have at least one Event.
"MyStandard": {
"Type": "SiteStandard",
"Rules": [
{
"Type": "Rule:List",
"Property": "Events",
"MustComply": "AtLeastOne"
}
]
}
The following example sets a defined Pattern for an Event:
"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:
"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:
|
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:
Default: All |
PropertyCondition |
Defines properties that must satisfy the condition for the rule to apply. To define PropertyCondition, MustComply must be All. Valid values:
|
Operator |
Defines the relationship between Property and Value. Valid values:
|
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:
"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:
|
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:
"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:
"MyStandard": {
"Type": "SiteStandard",
"Rules": [
"MyOnDoRule": {
"Type": "Rule:List",
"Property": "If",
"IfType": "If",
"ActionType": "Action:StopCyclicRun",
"ApplyOn": {
"Rerun": true
},
"MustComply": "AtLeastOne"
"PropertyApplyOn": {
"CompletionStatus": "ANY"
},
}
]
}