Simple approval workflow not displaying after Confluence upgrade

I upgraded a clone of our Confluence 3.2.1 --> 3.5.13 --> 4.2.4 last week. It is stable and works fine with the exception of the simple approval workflow.

If you look at the below attachments, you will see the 'Approvals: Edited Reviewed Signoff' and the 'Published' section is not showing in Confluence 4.2.4

The Adaptavist Essentials Plugin Pack has been installed and licensed, and I see no errors in the catalina.out file. Can someone point me in the right direction where to start looking.

2 answers

Hi Stuart,

A number of things have been changed around and improved in Ad hoc Workflows 3.2+ compared to older versions. One of those changes is that the "workflow line" below the page title has been moved to a "button" that is added on the left side of the standard confluence buttons. Similar to the "Tasks" button that is visible in your 2nd screenshot.

I'm not sure what version of Ad hoc Workflows you are upgrading from, but as you have been a longtime client, I'm guessing you are using what we call "2.0 Workflows" or "Space Approvals". In 3.2+, support for both options has been removed, but both can be upgraded to use standard workflows. To upgrade them, please see https://www.adhocworkflows.com/display/AWP/Upgrade#Upgrade-Upgradingfrom3.0

Thanks,
Miguel
Comalatech

Hi Miguel,

Thanks very much for your response.

We are using the 3.0.2 workflow plugin.

Under the 'Quality' Space, I selected Space Admin, Workflows. The 'Simple Approval Workflow' is a Global Workflow Template, and it needed to be made active.

I now see 'Draft' on the pages (which is a good start), but they should be 'Published'.

The link you sent indicates the workflow needs to be changed for version 2.0, but do we need to change it for 3.0.2 so our pages show the correct state?

Our markup is as follows:

{workflow:name=Simple approval workflow|key=com.comalatech.sample.approvals.01}
{description}
Simple approvals workflow with two states (Draft and Published). Staff edit pages but a change to a page is not visible to non-team members until someone in the edit team approves it.
{description}
{state:Draft.|approved=Published}
{approval:Approval}
{state}
{state:Published|final=true|rejected=Draft.|updated=Draft.}
{state}
{workflow}

I also tried 'Initializing' the space (did not override current state), but they still come up as Draft, not Published.

Hi Stuart,

Based on the screenshots you provided, the "Simple Approval Workflow" template you saw is not the workflow that you are using. It is just a leftover template from installing Ad hoc Workflows.

Also from the screenshot it looks like you are using "Space Approvals" instead of "2.0 Workflows" as I had initially thought, so yes you will need to "convert" them before you upgrade Confluence or Ad hoc Workflows. To convert them to workflows, please follow the directions here: https://www.adhocworkflows.com/display/public/AWP30/Upgrade#Upgrade-UpgradingSpaceApprovals

Once you confirm the workflow is working as expected, you can upgrade Confluence and Ad hoc Workflows, without having to further change the workflow.

If it is not working as expected, please let me know as we need to have it working correctly before you upgrade everything.

Thanks,
Miguel

Thanks. I cloned our Wiki environment again, and was upgraded our space approval to workflow.

Just one final question,... when I add a trigger to send an email, such as in this example:

https://www.adhocworkflows.com/display/public/AWP/Lesson+4+-+Adding+Triggers#Lesson4-AddingTriggers-Sendinganemailnotificationwhenapageisreadyforfinalapproval

I get an error saving it stating: Unknown macro: {send-email}

I presume this macro should be in Administration, User Macro section?
Can you point me to the code for this macro?

Hi Stuart,

Glad you were able to get your space approvals upgraded.

The {send-email} macro is part of Ad hoc Workflows, so the code isn't accessible. Can you post the workflow markup here so I can see what you are trying to do with {send-email}?

Thanks,
Miguel

I can not save the below when adding the trigger. Removing the trigger and the code saves okay.

{workflow:name=NIHI Simple approval workflow|space=qs}
{description}
Simple approvals workflow with three states (Edited, Reviewed, and Signoff). Staff edit pages but they must be approved by Quality Team members before it can be 'Published'.
{description}
{state:Edited|submit=Submitted}
{state}
{state:Submitted|approved=Reviewed|rejected=Edited}
{approval:Approve|group=@wiki2 Quality Review Team@}
{state}
{state:Reviewed|approved=Published|rejected=Edited}
{approval:Publish|group=@wiki2 Quality Signoff Team@}
{state}
{state:Published|final=true|updated=Edited|hideselection=true}
{state}
{trigger:statechanged|state=Submitted}
{send-email:user=@sure006@|subject=Page ready for approval}
The page @page@ has been submitted by [~@user@] and is waiting for your approval
{send-email}
{trigger}
{workflow}

The error I get when trying to save the workflow is as follows:

Error in workflow markup:
Unknown macro: {send-email} The page @page@ has been submitted by [~@user@] and is waiting your approval

<form id="workflowMarkupForm" method="POST" name="selectWorkflow">
</form>

Hi Stuart,

The workflow looks correct although if you are still using version 3.0.2 of Ad hoc Workflows that could be the issue. I'm not sure when {send-email} was added so try upgrading to the latest version of Ad hoc Workflows compatible with your current version of Confluence and try again.

Thanks,

Miguel

Hi Miguel,

I upgraded the plugin to 3.2.6, but then had to upgrade Confluence (to 3.5.13).

The above workflow markup didn't work in 3.5.13. I could only get as far as 'Submitted'. For some unknown reason, it didn't like the 'group=' part. I managed to get around this by using a workflowparameter and referring to it rather than the group directly. BTW, as the user directories was enhanced in 3.5 I updated my LDAP (we use OpenLDAP) and that was synchronising fine. I shortened the name of the LDAP group but still didn't like directly using the group.

{workflow:name=NIHI Simple approval workflow}
{workflowparameter:Reviewer|description=Quality Reviewer|type=group}
wiki2_review
{workflowparameter}
{workflowparameter:Signoff|description=Quality Signoff|type=group}
wiki2_signoff
{workflowparameter}
{state:Draft|submit=Submitted}
{state}
{state:Submitted|approved=Reviewed|rejected=Draft}
{approval:Review|group=@Reviewer@}
{state}
{state:Reviewed|approved=Published|rejected=Draft}
{approval:Publish|group=@Signoff@}
{state}
{state:Published|final=true|updated=Draft|hideselection=true}
{state}
{state:Closed}
{state}
{trigger:statechanged|state=Submitted}
{send-email:user=@Reviewer@|subject=Quality page ready for review}
The page @page@ has been submitted by [~@user@] and is waiting for you to review it
{send-email}
{trigger}
{trigger:statechanged|state=Reviewed}
{send-email:user=@Signoff@|subject=Quality page ready to be published}
The page @page@ has been reviewed by [~@user@] and is waiting for you to publish it
{send-email}
{trigger}
{trigger:pagerejected|approval=Reviewer}
{send-email:user=@Reviewed>approver@|subject=Quality page rejected}
The page @page@ has been rejected by [~@user@]
{pageactivity}
{send-email}
{trigger}
{workflow}

... to be continued

The workflow markup I just posted *works*, but I have two issues.

1. Everything works wonderfully through to 'Published', however, when I edit the page again, the 'Published' button (if that is the correct terminology) shows AND 'Draft'. Have a look at the attachment and you will see what I mean.

If I click on the 'Published', the page goes from 'Draft' directly back to 'Published'. This is definitely not what we want.

2. The pagerejected trigger doesn't work (no email is sent out).

Not really concerned much about that, but it would be nice if it could work. I want to send a reject email out if the page is rejected in either the Review or Publish approval, so presume I'd need two triggers (I only included one for this example).

Thanks for your help to date. It is very much appreciated.

Not sure if this is related, but the User Macro we have is:

{workflow-include}

{pagestatus}

#set( $modYear = $content.getLastModificationDate().year + 1900 )
© National Institute for Health Innovation, The University of Auckland, 2004-${modYear}
Printed copies are not valid. Please refer to the NIHI Wiki.
Version: $content.getVersion()
Print date: $generalUtil.formatDateFull($content.getCurrentDate())

Hi Stuart,

For the group names, you don't need to do a workflow parameter. The problem you are having with the group names is because you are enclosing the group names with "@", that format is only used for resolving metadata and workflow parameters. If you want to access the group directly just use something similar to:

{approval:Review|group=wiki2_review}

Regarding the issues:

1 - That is one of the differences between using Space Approvals and Workflows. Workflows have had a link between the published version and draft version for most likely since Workflows were added to the product(it was well before my time here). By default, this link is only available for users who have edit permissions for the page so they can switch back between the latest published version and the draft that is being worked on. Users without edit permissions for the page will only see the latest published version.

2. Try using @rejector@ instead for the rejection triggers/emails.

Not sure what you are referring to by your last comment as {workflow-include} and {pagestatus} are only used for custom themes created with ThemeBuilder and from the screenshots it doesn't look like you are using a custom theme.

Thanks.

1. That makes sense.

2. I still can't get that reject trigger to work. The last trigger stanza is what I'm working on. I want to send a reject email back to the person who submitted it saying it was rejected by the reviewer.

Can you give an example of how to get this working?

{workflow:name=NIHI Simple approval workflow}
{state:Draft|submit=Submitted}
{state}
{state:Submitted|approved=Reviewed|rejected=Draft}
{approval:Review|group=wiki2_review}
{state}
{state:Reviewed|approved=Published|rejected=Draft}
{approval:Publish|group=wiki2_signoff}
{state}
{state:Published|final=true|updated=Draft|hideselection=true}
{state}
{trigger:statechanged|state=Submitted}
{send-email:user=@Reviewer@|subject=Quality page ready for review}
The page @page@ has been submitted by [~@user@] and is waiting for you to review it
{send-email}
{trigger}
{trigger:statechanged|state=Reviewed}
{send-email:user=@Signoff@|subject=Quality page ready to be published}
The page @page@ has been reviewed by [~@user@] and is waiting for you to publish it
{send-email}
{trigger}
{trigger:pagerejected|approval=Reviewer}
{send-email:user=@user@|subject=Quality page rejected}
The page @page@ has been rejected by [~@rejector@]
{pageactivity}
{send-email}
{trigger}
{workflow}

Just noticed that you have slight typo in the approval name for the pagerejected trigger. You have "approval=Reviewer" when it should be "approval=Review".

Thanks,

Miguel

That's done it! Miguel, your a star!

Thank you so much for your help with this.

Regards

Stuart.

Suggest an answer

Log in or Sign up to answer
Community showcase
Posted Oct 24, 2018 in Confluence

Atlassian Research opportunity with Confluence templates

Do you use templates with Confluence? Take part in a remote 1-hr workshop. You'll receive USD $100 for your time!   We're looking for people to participate in a   remote 1-hr workshop...

989 views 14 12
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you