Use the {increment-metadata} macro to increment major.minor.patch metadata value for a single approval using three triggers.

Overview

Different events can be used to increment a composite version number using the {increment-metadata} macro.

You can add a condition to a trigger to increment one element of a composite version.

In this approval workflow the approver in the Review state chooses the element of the composite version update being approved.


Use of triggers

The workflow uses the following trigger actions

Each of the three pageapproved event triggers listen for the approval decision for the Approved content review in the Review state. But each trigger has a condition based on the type of version update set by the approver.

Metadata values are also updated in each of these three triggers for the following

These are displayed on the content using the @pageheader@ macro.

You may need to refresh the page content to view changes in the displayed metadata values.

Workflow parameter value trigger condition

Major, Minor and Patch are workflow parameter values set as a list option choice for the workflow parameter @Update type@.



In the workflow popup, the reviewer is required to set this parameter value for the approve decision to take place.


The approver chooses one of Major, Minor or Patch values from the parameter value option.


Once confirmed the approved transition occurs.


Composite major-minor-patch version workflow

{workflow:name=Increment a Metadata Version conditional|label=versiontest}
    {description}
    A simple approval workflow with use of increment-metadata macro to set the version of
    of approved contentand increment the version on the approval transition.
    {description}
    {pageheader}
         |Owner|@creator@|
         |Version|@current-version@|
         |Latest update|@current-type@ on @last-date@ by @last-approver@|
    {pageheader}
    {workflowparameter:Update type|description=Please, select the update type: Major (x.0.0), Minor (0.x.0), Patch (0.0.x)|type=list|options=Major,Minor,Patch|edit=true}
    {workflowparameter}
    {state:Review|approved=Approved|rejected=Rejected|taskable=true}
         {approval:Please review the content}
    {state}
    {state:Rejected|submit=Review|taskable=true|colour=#FF5630}
    {state}
    {state:Approved|final=true|updated=Review|hideselection=true|requiredparams=Update type}
   {state}
   {trigger:pagecreated}
       {set-metadata:current-version}1.0.0{set-metadata}
   {trigger}
   {trigger:statechanged|state=Review}
       {set-metadata:Update type}{set-metadata}
   {trigger}
   {trigger:pageapproved|approval=Please review the content|@Update type@=Major}
       {increment-metadata:current-version|increment=1.0.0}
       {set-metadata:current-type}Major update{set-metadata}
       {set-metadata:last-date}@date@{set-metadata}
       {set-metadata:last-approver}@user@{set-metadata}
  {trigger}
  {trigger:pageapproved|approval=Please review the content|@Update type@=Minor}
       {increment-metadata:current-version|increment=0.1.0}
       {set-metadata:current-type}Minor update{set-metadata}
       {set-metadata:last-date}@date@{set-metadata}
       {set-metadata:last-approver}@user@{set-metadata}
  {trigger}
  {trigger:pageapproved|approval=Please review the content|@Update type@=Patch}
      {increment-metadata:current-version|increment=0.0.1}
      {set-metadata:current-type}Patching update{set-metadata}
      {set-metadata:last-date}@date@{set-metadata}
      {set-metadata:last-approver}@user@{set-metadata}
   {trigger}
{workflow}



Here's how each trigger action works

Trigger EventAction macroNotes
pagecreated{set-metadata}
  •  sets the metadata current-version and initializes the value to 1.0.0 on the creation of the page
  • metadata displayed on the page using {pageheader} macro
  • only occurs if the workflow is applied in space mode

pageapproved|...@Update-type@=Major

{increment-metadata}

{set-metadata}

  • increments the composite current-version major value by 1 each time the content is approved, the approver sets the required parameter value to Major and transitions to Approved
  • minor and patch value are reset to zero
  • three separate set-metadata action macros update values for each of the following metadata
    • @last-approver@
    • @last-date@
    • @current-type@


pageapproved|...@Update-type@=Minor

{increment-metadata}

{set-metadata}

  • increments the composite current-version minor value by 1 each time the content is approved, the approver sets the required parameter value to Minor and transitions to Approved
  • patch value is reset to zero
  • three separate set-metadata action macros update values for each of the following metadata
    • @last-approver@
    • @last-date@
    • @current-type@

pageapproved|...@Update-type@=Patch

{increment-metadata}

{set-metadata}

  • increments the composite current-version patch value by 1 each time the content is approved, the approver sets the required parameter value to Patch and transitions to Approved
  • three separate set-metadata action macros update values for each of the following metadata
    • @last-approver@
    • @last-date@
    • @current-type@

statechanged|...state=Review


{set-metadata}
  • clears the value of the workflow parameter @Update type@ on transition to the Review state
  • {set-metadata :@Update type@} action macro with empty body clears any value for the workflow parameter


Only the approved transition to the Approved state will update the metadata version in this example.