Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Create a new JSON file and add a Revision number, Version number and Schema save the file as VeraAPTutorial-part1.json.

    Code Block
    languagejson
    {
       
      "Revision": "1",
      "Approval Policy": {
          "Version": "1.0.0.0"
        }
    }

Create Approval Groups

Approval Groups are a list of Approval Roles that will be used later as Approval Tasks in the Approval Routes.

  1. Add Approval Groups Business, Technical and Quality

    Code Block
    languagejson
          "Approval Groups": [
            "Business",Vera Tutorial 1",
        "Schema": {
          "ID": "http://tx3services.com/schemas/0/0/approval-policy.json",
           "Major": "Technical0",
           "Minor": "Quality0"
        }
     ]

    Here is the updated Approval Policy with above code block:

    Code Block
    languagejson
    {
      "Approval Policy": {
        "Version": "1.0.0.0",
        "Approval Groups": [
          "Business",}

Info

Policy Revision management was introduced in Vera 2023.2. You still need to include a Revision and Version number to upload policies. The Version number can be used as a reference number. The Revision number is managed by Vera. The Revision number in the file is ignored when uploading policies.

Create Approval Groups

Approval Groups are a list of Approval Roles that will be used later as Approval Tasks in the Approval Routes.

  1. Add Approval Groups Business, Technical and Quality

    Code Block
    languagejson
          "Approval Groups": [
            "Business",
            "Technical",
            "Quality"
        ]   }
    }

Create Approval Template

Approval Templates define the approval tasks and approval order. Record Types and Constraints are used to associate an Approval Template to one or more Record Types. We will create a Default Approval Template for qTest records.

  1. Add an Approval Template Name, Default Approval.

    Code Block
        "Route Templates": [
         ]

    Here is the updated Approval Policy with above code block:

    Code Block
    languagejson
    {
      "Revision": "1",
      "Approval Policy": {
        "Version": "Vera Tutorial 1",
        "Schema": {
            "NameID": "Default Approval"http://tx3services.com/schemas/0/0/approval-policy.json",
          }
     "Major": "0",
      ] 

    Here is the updated Approval Policy with above code block:

    Code Block
    {   "Approval PolicyMinor": {"0"
        "Version": "1.0.0.0" },
        "Approval Groups": [
          "Business",
          "Technical",
          "Quality"
        ],
        "Route Templates": [
          {}
    }

Create Approval Template

Approval Templates define the approval tasks and approval order. Record Types and Constraints are used to associate an Approval Template to one or more Record Types. We will create a Default Approval Template for qTest records.

  1. Add an Approval Template Name, Default Approval.

    Code Block
        "Route Templates": [
      "Name": "Default Approval"  {
        }     ]"Name": "Default Approval"
          }
    }

    Add a Rank to the Approval Template. Rank determines the order Approval Templates are evaluated when a Record is routed for approval. Mutually exclusive Approval Templates that do not have overlapping Reocrd Types or Constraints can have the same Rank. Later, when we add additional Approval Templates, we will use Rank to ensure Approval Templates are evaluated in the correct order to ensure the correct Approval Template is matched to the Record. Set Rank with a value of 1.

    Code Block
       
        ] 

    Here is the updated Approval Policy with above code block:

    Code Block
    {
      "Revision": "1",
      "Approval Policy": {
        "Version": "Vera Tutorial 1",
        "RankSchema": {
          "1"

    Here is the updated Approval Policy with above code block:

    Code Block
    {
      "Approval Policy": {
     ID": "http://tx3services.com/schemas/0/0/approval-policy.json",
          "VersionMajor": "1.0.0.0",
           "Minor": "0"
        },
        "Approval Groups": [
          "Business",
          "Technical",
          "Quality"
        ],
        "Route Templates": [
          {
            "Name": "Default Approval",
            "Rank":
    "1"       }
        ]
      }
    }
  2. Add an optional element, Prevent Author Approval. When this option is set to true the qTest Test Case or qTest Test Run Author is not authorized to approve the record even if they have the correct approval role. The Author was defined in the Records Management Policy in the previous sections. Add Prevent Author Approval and set to true.

    Code Block

    a Rank to the Approval Template. Rank determines the order Approval Templates are evaluated when a Record is routed for approval. Mutually exclusive Approval Templates that do not have overlapping Reocrd Types or Constraints can have the same Rank. Later, when we add additional Approval Templates, we will use Rank to ensure Approval Templates are evaluated in the correct order to ensure the correct Approval Template is matched to the Record. Set Rank with a value of 1.

    Code Block
            "Rank": "1"

    Here is the updated Approval Policy with above code block:

    Code Block
    {
      "Revision": "1",
      "Approval Policy": {
        "Version": "Vera Tutorial 1",
        "Schema": {
          "ID": "http://tx3services.com/schemas/0/0/approval-policy.json",
          "Major": "0",
          "Minor": "0"
        },
        "Approval Groups": [
          "Business",
          "Technical",
          "Quality"
        ],
        "Route Templates": [
          {
            "Name": "Default Approval",
            "Rank": "1"
          }
        ]
      }
    }
  3. Add an optional element, Prevent Author Approval. When this option is set to true the qTest Test Case or qTest Test Run Author is not authorized to approve the record even if they have the correct approval role. The Author was defined in the Records Management Policy in the previous sections. Add Prevent Author Approval and set to true.

    Code Block
            "Prevent Author Approval": true

    Here is the updated Approval Policy with above code block:

    Code Block
    {
      "Revision": "1",
      "Approval Policy": {
        "Version": "Vera Tutorial 1",
        "Schema": {
          "ID": "http://tx3services.com/schemas/0/0/approval-policy.json",
          "Major": "0",
          "Minor": "0"
        },
        "Approval Groups": [
          "Business",
          "Technical",
          "Prevent Author Approval": true

    Here is the updated Approval Policy with above code block:

    Code Block
    Quality"
        ],
        "Route Templates": [
          {
      "Approval Policy": {     "VersionName": "1.0.0.0Default Approval",
             "Rank"Approval: Groups"1":,
     [       "Business",Prevent Author Approval": true
          }
    "Technical",    ]
       "Quality"
        ],}
    }
  4. Add the Record Types to the Approval Template. The Record Types are defined in the Records Management Policy. Enter the Record Types that should be associated with the Route Template. We will add qTest Test Case, Automated Test Case and qTest Test Run Record Types.

    Code Block
            "RouteRecord TemplatesTypes": [
      
       {         "Name": "Default Approval",
            "Rank": "1",
      qTest Test Case",
         "Prevent Author Approval": true   "Automated Test Case",
     }     ]   }
    }

    Add the Record Types to the Approval Template. The Record Types are defined in the Records Management Policy. Enter the Record Types that should be associated with the Route Template. We will add qTest Test Case, Automated Test Case and qTest Test Run Record Types.

    Code Block
     "qTest Test Run"
            ] 

    Here is the updated Approval Policy with above code block:

    Code Block
    {
      "Revision": "1",
      "Approval Policy": {
        "Version": "Vera Tutorial 1"Record Types": [
     ,
        "Schema": {
          "ID": "http://tx3services.com/schemas/0/0/approval-policy.json",
           "Major": "qTest Test Case0",
          "Minor": "0"
      "Automated Test Case"},
        "Approval Groups": [
        "qTest Test Run"Business",
          "Technical",
      ] 

    Here is the updated Approval Policy with above code block:

    Code Block
    {   "Approval PolicyQuality":
    {     "Version": "1.0.0.0",
     ],
        "ApprovalRoute GroupsTemplates": [
          {
     "Business",       "TechnicalName",: "Default Approval",
        "Quality"     ],
    "Rank": "1",
       "Route Templates": [   "Prevent Author Approval": true,
    {        "Record Types"Name": [
    "Default Approval",         "Rank": "1qTest Test Case",
              "PreventAutomated AuthorTest ApprovalCase":,
     true,         "RecordqTest Test TypesRun":
     [       ]
       "qTest Test Case", }
        ]
      }
     "Automated Test Case",}
  5. Add Constraints to the Route Template. Right now we only have one Route Template in the Approval Policy which will be used for all Record Types so there are no constraints.

    Code Block
            "Constraints": [] 

    Here is the updated Approval Policy with above code block:

    Code Block
    {
      "Revision": "1"qTest,
     Test Run"Approval Policy": {
        "Version": "Vera ]Tutorial 1",
         }
    "Schema": {
       ]   }
    }

    Add Constraints to the Route Template. Right now we only have one Route Template in the Approval Policy which will be used for all Record Types so there are no constraints.

    Code Block
    "ID": "http://tx3services.com/schemas/0/0/approval-policy.json",
          "Major": "Constraints0":,
      [] 

    Here is the updated Approval Policy with above code block:

    Code Block
    {   "Approval PolicyMinor": {"0"
        "Version": "1.0.0.0" },
        "Approval Groups": [
          "Business",
          "Technical",
          "Quality"
        ],
        "Route Templates": [
          {
            "Name": "Default Approval",
            "Rank": "1",
            "Prevent Author Approval": true,
            "Record Types": [
              "qTest Test Case",
              "Automated Test Case",
              "qTest Test Run"
            ],
            "Constraints": []
          }
        ]
      }
    }
  6. Add Levels to the Route Template. Levels contain one or more Levels with one or more Approvers. The Approvers are defined in the Approve Groups element of the Approval Policy. We recommend using Level # pattern for Levels. Approvers in the same Level can complete their approval tasks in any order. All approvals must be complete before Approvers in subsequent Levels can be completed. The Default Approver route template will have 3 Approvers, Technical and Business can approve in any order, then after those Approvers there is a Quality Approver on Level 2.

    Code Block

    Code Block
            "Levels": [
              {
                "Name": "Level 1",
                "LevelsApprovers": ["Technical","Business"]
              },
              {
                "Name": "Level 12",
                "Approvers": ["Technical","BusinessQuality"]
              },
            ]  {
      

    Here is the updated Approval Policy with above code block:

    Code Block
    {
      "Revision": "1",
      "Approval Policy": {
        "NameVersion": "LevelVera Tutorial 21",
        "Schema": {
          "ApproversID": ["Quality"]
        "http://tx3services.com/schemas/0/0/approval-policy.json",
         } "Major": "0",
          ] 

    Here is the updated Approval Policy with above code block:

    Code Block
    {
      "Approval Policy": {
        "Version": "1.0.0.0""Minor": "0"
        },
        "Approval Groups": [
          "Business",
          "Technical",
          "Quality"
        ],
        "Route Templates": [
          {
            "Name": "Default Approval",
            "Rank": "1",
            "Prevent Author Approval": true,
            "Record Types": [
              "qTest Test Case",
              "Automated Test Case",
              "qTest Test Run"
            ],
            "Constraints": [],
            "Levels": [
              {
                "Name": "Level 1",
                "Approvers": ["Technical","Business"]
              },
              {
                "Name": "Level 2",
                "Approvers": ["Quality"]
              }
            ]
          }
        ]
      }
    }

...