Show/Hide Toolbars

PerfectApps ® Help Guide

Different users will open your app instances at different stages of the workflow. You will almost certainly want to restrict access to specific fields on the app based on the current workflow stage and the user's role when viewing the instance.

 

Although not the only way to manage this, the recommended way is to define a restrictive rule for All Stages and All Roles and then define exceptions for specific stage and role combinations.

 

tipbulb

The Laying Out Your App and Workflow of your app should be completed before moving to this article.

 

Setting up access roles determines who can access what field at any stage.

For reference, a Capital Expenditure Request App is being created for the purposes of this article, and explanations will be visualized using screenshots.

Looking at our Capex Request, it might be helpful to note our workflow stages and the roles we have set up in the app.

 

Field Access Rules - Workflow Diagram

 

The capex workflow has five stages (New Request, Manager Approval, IT Manager Approval, Approved, and Rejected) and 3 Roles (Applicant, Manager, and IT Manager).

 

It would be best to determine which objects can be completed in each stage and who will complete them. For example:

 

Field:

Completed by who:



Fields not editable at any stage by any role (i.e. fields completed dynamically by behavior included in the app)



Request Date

Completed dynamically



Fields completed at the New Request stage



Applicant Name

Applicant

Applicant Email

Applicant

Manager Name

Applicant

Manager Email

Applicant

IT Manager Name

Applicant

IT Manager Email

Applicant

Request Type

Applicant

Request Value

Applicant

Request Details

Applicant



Fields completed at the Manager Decision stage



Manager Decision

Manager

Manager Comments

Manager



Fields completed at the IT Manager Decision stage



IT Manager Decision

IT Manager

IT Manager Comments

IT Manager



 

Once you have completed documenting the access rules, you can transfer that to PerfectApps.

 

Before we get into the process of setting up access rules for your app, it is important to understand each of the access rules or states that PerfectApps uses:

 

Default

The field will retain its previous state from the last submission.

Normal

The field is visible and editable for the user.

Read-Only

The field is visible but not editable for the user.

Disabled

The field is visible but not editable for the user. This is mainly used on radio buttons, checkboxes, and buttons. It will greys the text to prevent the user from making a selection or pressing a button.

Hidden

The field is not visible and not editable for the user.

 

It is also essential to understand that any rule set at the All-Stage and All-Role combination will have the lowest priority level and be overridden by any rule set at a specific stage or role combination. This is very useful as it means you can apply a standard rule, usually a restriction, for all stages and roles and then apply an exception to that rule for specific stages and roles where you want access to be allowed.

 

While there are a few different ways to manage your access rules, we recommend this method of a standard restriction followed by exceptions. It is relatively simple to understand and works equally well for simple and more complex workflow processes.

 

An important detail to note is that roles are not yet assigned in the Default stage of the app; roles are only assigned once the app has been submitted and a notification, with the role embedded, has been sent to an individual or group of people.

This means that for the Default stage (New Request using the example above), all fields editable by the applicant must be in the “Normal” state for all roles.

 

Document Icon

1.The first step is to apply your standard restrictive rule for the necessary fields. In the navigation panel on the left, make sure that the ALL setting is selected for both the Stage and Role.

2.Select the object(s) you want to set states for, and in the object properties and Access section, select your restriction. In our example this is Read-Only but it could also be Disabled or Hidden when appropriate.

Field Access Rules - Set State

3.The next step is to specify the exception(s) to the rule. In this example the exception is when the app is at the default stage of 'New Request'. At this stage the field(s) should be Normal. Remember that no roles have been defined at the default stage so you MUST use the Role = All setting.

Field Access Rules - Set State2

Repeat this process for all fields on the app.

 

tipbulb

If you look to the right of the state drop-down (see 1 above), you will see an ellipses button. This button displays an overview of an object's different states by stage and role combination. It can also be useful for setting exceptions to the standard restrictive rule.

flag_green

For more information on this topic, see Limiting User Access to App Fields

 

Field Access Introduction

Introduction

(4 min)

This is an introduction to the topic of field access rules. Watch this tutorial video first to learn about the app designer elements used in setting this type of logic.

Setting Access Rules on Input Fields

Access Rules on Input Fields

(3 min)

There are a few different ways that access rules can be set. In this tutorial you will see the recommended method used on input fields on your app.

Non Input Field States

Non-Input Field States

(2 min)

While the main focus of restricting access will be on input fields, it will also be necessary to control the states of some non-input fields like text labels and buttons.

Access Rules and Groups

Access Rules & Groups

(2 min)

Although the general methods for groups remain the same, there are a few specific things to be aware of. Watch this video to learn more.

Access Rules & Tables

Access Rules & Tables

(2 min)

Table objects also need special consideration when setting access rules. Learn about it in this tutorial.

 

If you have completed all the sections in this Quick Start Guide, then your app should now be complete and ready for testing.

 

Next: Testing Your App

 

Return to: App Design - Getting Started, QuickStart Tutorials