Confiforms Approve/Reject workflow
Asked by Vanessa:

Hi Community, I am trying to design a form with approve/reject workflow. There is a status field in the form. After the form is created, the reviewer will either click "APPROVE" or "REJECT" button. The submitter can view the status change.

**Form Definition**(Submitter page)

1. I selected Status field type in the field definition macro and defined status options "APPROVE" and "REJECT".

2. Create 2 action buttons "Approve" and "Reject". And put the action to perform "Status.label=APPROVE" and "Status.label=REJECT"

**(FormView) Registration Control**(Submitter page)

1. Add Confiform Field "Status"

**TableView**(Reviewer page)

1. Add Confiform Field "APPROVE" and Confiform Field "REJECT".

Apply filter on choices: APPROVE.true:\[entry.Status.APPROVE\]

Apply filter on choices: REJECT.true:\[entry.Status.REJECT\]

2. Create 2 "ConfiForms IFMatches View Helper"

Confition: APPROVE:true (the other one REJECT:true)

Type:asFilter

Output: INLINE

The above macros work and are able to change status after clicking APPROVE or REJECT button and change Status field accordingly. However, it still pop out an error message "Could not complete action due to a technical issue on the backend: error". Can you help investigate this issue?


Answers:
author: Alex Medved _ConfiForms_
body: Hi [@Vanessa](/t5/user/viewprofilepage/user-id/5207993)

Please open a support request with us at <https://wiki.vertuna.com/display/VERTUNA/Support+Request+Form>

So we can look into this issue

PS, actions for action buttons dont look right, as they should operate on fields. Something like Status=APPROVE and Status=REJECT is more likely to be correct

Also filtering expression like APPROVE.true:\[entry.Status.APPROVE\]... well, I dont understand those either What should this do? Is this something to check if Status field has an APPROVE value? Then this is as simple as Status:APPROVE

Alex

comments: author: Vanessa
body: [@Alex Medved _ConfiForms_](/t5/user/viewprofilepage/user-id/781630) I follow your steps to update action buttons and filter on choice in the TableView and still receive the same result and error message.

The scenario is that when reviewer clicks "APPROVE" or "REJECT" button in the reviewer page, the Status field will be updated in the submitter view to track review result.

**Form Definition**(Submitter page)

1. Status options: "APPROVE" and "REJECT".

2. 2 Action buttons "Approve" and "Reject".

Action to perform: "Status=APPROVE" and "Status=REJECT"

3. 2 ConfiForms Rules for Field Definition

Field name: APPROVE

Condition: !APPROVE:\[empty\]

Action to execute: Apply Filter on a Field

Actionable Field Name: Status

Filter to apply on a field: Status:APPROVE

Field name: REJECT

Condition: !REJECT:\[empty\]

Action to execute: Apply Filter on a Field

Actionable Field Name: Status

Filter to apply on a field: Status:REJECT

**(FormView) Registration Control**(Submitter page)

1. Add Confiform Field "Status"

**TableView**(Reviewer page)

1. Add Confiform Field "APPROVE" and Confiform Field "REJECT".

Apply filter on choices: Status:APPROVE

Apply filter on choices: Status:REJECT

2. Create 2 "ConfiForms IFMatches View Helper"

Confition: APPROVE:true

Type:asFilter

Output: INLINE

Confition: REJECT:true

Type:asFilter

Output: INLINE

Btw, I need to check with our IT to get license SEN number, so I don't submit Support Request Form. Thanks for your help!

Vanessa


author: Alex Medved _ConfiForms_
body: Hi

I dont know, but this sounds over complicated to me... Here is a simple demo - hope that helps

<http://recordit.co/osjMzEJmfQ>

Storage format for easy import

```
<ac:structured-macro ac:macro-id="726a7554-8771-4d9f-b37a-0d86b5e22aee" ac:name="confiform" ac:schema-version="1">
<ac:parameter ac:name="formName">form</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="a42b078c-9a89-47c3-8f68-c80513c13ae9" ac:name="confiform-field-definition" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Status</ac:parameter>
<ac:parameter ac:name="fieldLabel">Status</ac:parameter>
<ac:parameter ac:name="values">false[APPROVE=APPROVE|REJECT=REJECT|]</ac:parameter>
<ac:parameter ac:name="type">select</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="3b9771e9-1da0-4d2d-b094-462f0a1e3191" ac:name="confiform-field-definition" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Approve</ac:parameter>
<ac:parameter ac:name="fieldLabel">Approve</ac:parameter>
<ac:parameter ac:name="extras">Status=APPROVE</ac:parameter>
<ac:parameter ac:name="type">action_button</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="9bbe58fa-9141-4204-827e-1ab9beaf160b" ac:name="confiform-field-definition" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Reject</ac:parameter>
<ac:parameter ac:name="fieldLabel">Reject</ac:parameter>
<ac:parameter ac:name="extras">Status=REJECT</ac:parameter>
<ac:parameter ac:name="type">action_button</ac:parameter>
</ac:structured-macro>
</p>
<ac:structured-macro ac:macro-id="69059cd2-ea79-4498-9d73-8dbe74acb439" ac:name="confiform-entry-register" ac:schema-version="1">
<ac:rich-text-body>
<p>
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<br/>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="2907d0e5-b7a8-48ad-a797-cf56f30cfca4" ac:name="confiform-table" ac:schema-version="1">
<ac:parameter ac:name="formName">form</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="8ed769c3-498e-48c0-8c3e-8dcbb0032469" ac:name="confiform-field" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Status</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="1c98d907-93da-4b1d-bc6a-939f02963e87" ac:name="confiform-field" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Approve</ac:parameter>
<ac:parameter ac:name="hideIfMatches">Status:APPROVE</ac:parameter>
</ac:structured-macro>
</p>
<p>
<ac:structured-macro ac:macro-id="42845530-554e-4538-bcb8-a05fd664d1c6" ac:name="confiform-field" ac:schema-version="1">
<ac:parameter ac:name="fieldName">Reject</ac:parameter>
<ac:parameter ac:name="hideIfMatches">Status:[empty] OR Status:REJECT</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<br/>
</p>
```

PS, SEN number is visible to anyone, in form admin UI (button with a "cog wheel" and the form name, then show/edit stored data menu item and table footer will show you all the necessary details)

Alex


author: Michael Taylor
body: Hey Alex, recordit closed on March 31st and has been bought out by placeit as a redirect to their store. It sucks, because I loved your videos in recordit, since our company blocks YouTube. I do see some discussion on alternatives - [Does anyone know an Recordit alternative? \| VectorStyler](https://www.vectorstyler.com/forum/topic/4017/does-anyone-know-an-recordit-alternative)


author: Alex Medved _ConfiForms_
body: We are trying to [put videos on our wiki instead](https://wiki.vertuna.com/download/attachments/178782502/Community%20-%20Confiforms%20Approve%3AReject%20workflow.mov?version=1&amp;modificationDate=1721367872016&amp;api=v2)(per request)

And also, here, we have a storage format provided for the easy import - does it help?


Tags: cloud

confiforms

confluence-cloud