Difference between revisions of "Submit Logic"

From SmartWiki
Jump to: navigation, search
(Condition Construction)
Line 58: Line 58:
 
* ''''@companies.count(*):rolename='Funding Agency'@<3'''' - Ensures there are less than 3 Funding Agencies in the Companies section.
 
* ''''@companies.count(*):rolename='Funding Agency'@<3'''' - Ensures there are less than 3 Funding Agencies in the Companies section.
 
* ''''@contact.supervisor.email@'!='@contact.referee.email@'''' - Ensure that the contact assigned at Level 1 with the role of Supervisor is not also assigned with the role Referee.
 
* ''''@contact.supervisor.email@'!='@contact.referee.email@'''' - Ensure that the contact assigned at Level 1 with the role of Supervisor is not also assigned with the role Referee.
 +
* '''"@level1.Proposal.filename@"!=""''' - Ensures you have a Proposal uploaded in the single file upload on the Level 1.
  
 
==Message Construction==
 
==Message Construction==

Revision as of 10:00, 2 October 2013

  • This feature works in conjunction with the Submit Buttons, and provides for the creation of any number of submission rules that control a submission process.
  • When a submission process is controlled by submission logic, then values at other levels can be validated.
  • Values are validated based on the sequence defined within the submission logic.
  • From Level 1 the submission rules can access any field at Level 1, account/contact fields, as well as aggregated fields at Level 2 and/or Level 3.
  • The Submit Logic feature is associated with a particular status and submit button. Associating the conditions with each status and button allows for different statuses to control sets of Submit Logic rules.

Accessing the Submit Logic Function

To access the Submit Logic feature:

Click the Settings tab within the UTA, then on the Statuses link in either the Level 1 settings section, or Level 2 settings section.

The Submit Button tab is displayed next to the Status Trigger tab. Click on this or scroll down to the Submit Button section.

SubmitButton1.png

Click on the hyperlink in the Label column for the Submit Button that you intend to add logic against.

In the resulting window scroll down to the Submit Logic section.

SubmitLogic.png

Click the New button to begin adding a New Condition.

Each Condition consists of the following fields:

  • Order - the order in which the condition can be executed. Each condition is executed in sequence based on the order. The submission process will stop and the associated message displayed if the condition is not met.
  • Name - a narrative name for the condition.
  • Description - narrative description of the condition.
  • Condition - stores the expression that represents the condition. Entity does not change status when condition evaluates as false.
  • Message - stores the message to be displayed if the condition is not met.

Condition Construction

Conditions consist of references to fields and aggregate functions and use the same syntax as the Template / Type Formula. The following examples illustrate various examples of the submit logic:

1. Criteria: a minimum of three level 2 items (of any type) are required to submit the level 1 item.

@level2.count(*)@>2

2. Criteria: a minimum of three level 2 items where the type is email are required to submit the level 1 item.

@level2.count(*):typename='email'@>2 

3. Criteria: a minimum of three level 2 items where the type is email and the status is closed (for both items).

@level2.count(*):typename='email' and statusname='closed'@>2

4. Criteria: the submission cut-off date and time has not passed

now() < '@system.closedate@'
Note you will need to create a System Variable that stores the cut-off date and time in the following format: yyyy-mm-dd hh:mm:ss (24 hour clock)


Additional examples:

  • @company.commission rate@ > 0.3 - the commission rate for the associated company must be greater than 0.3 (30%).
  • @branch.name@ = 'xyz' - the associated branch name must be 'xyz'.
  • @total salaries@ < 400000 - the total salaries field in the Level 1 Entity is less than 400,000.
  • @level2.sum(megawatts)@ > 5 - the sum of the megawatts field in all level 2 is greater than 5.
  • @level2.sum(cf_23232)@ > 5 - same as previous example but using the custom field ID.
  • '@opportunity.peopleid@'!='0' - Ensure that a contact has been added to the Level 1 Person standard field.
  • '@contacts.count(*):rolename='Supervisor'@=1' - Ensure there is exactly 1 contact at Level 1 with the role of Supervisor.
  • '@companies.count(*):rolename='Funding Agency'@<3' - Ensures there are less than 3 Funding Agencies in the Companies section.
  • '@contact.supervisor.email@'!='@contact.referee.email@' - Ensure that the contact assigned at Level 1 with the role of Supervisor is not also assigned with the role Referee.
  • "@level1.Proposal.filename@"!="" - Ensures you have a Proposal uploaded in the single file upload on the Level 1.

Message Construction

  • Messages are created for each condition providing the user with specific details as to the condition requirement that was not met.
  • The messages display in a pop-up window upon a failed submit logic condition when the user's attempts to submit. If multiple submit logic conditions fail, the messages will be shown in a consolidated pop-up window.
  • Field names and aggregate functions can be used in the same manner as with the condition construction.
  • For example, using the first condition example shown above, a message can be added such as:
At least three appendices are required to submit this proposal but only @level2.count(*)@ were found, please check and then submit the proposal again.
  • This message will display if the @level2.count(*)@>2 evaluates to false

See Also