8,849
edits
Changes
no edit summary
'''Advanced Logic''' gives [[System Administrator]]s a higher level of control over the entire interface.
This feature allows control of the [[visibility ]] and/or access to [[Interfaces|interface]] elements such as buttons or tabs based on [[Administrator|administrator]] defined conditions.
[[Image:AdvancedLogicAdvancedLogicAugust2014.png|link=]] ==Location==This feature is available in 3 places:# '''Advanced Logic''' link on the [[Global Settings]] page (In the [[Business & System Configuration]] section) - to establish system-wide rules.# '''Advanced Logic''' link on the '''Settings''' Page within each [[Universal Tracking Application]] - for rules specific to each UTA.# In the [[:Category:Transactions|Transaction Types]] section on [[Global Settings]] - for both ''People'' and ''Company'' Transaction Types Advanced Logic on '''Transaction Types''' only has one control: It allows you to show/hide the '''Links''' button for individual Transaction Types. The '''Links''' button allows a Transaction to be linked to UTAs when viewing the Transaction. ==Overview=='''Object''': The object that is being controlled.<br />'''Condition''': A logical statement that when true will make the object statement true, and when false will make the object statement false. * If the '''Object''' says "Show Level 1 Save Button", if the statement in the '''Condition''' field is true the Save button will be shown.* If the '''Object''' says "Hide Top Invoice Tab", if the statement in the '''Condition''' field is true the Invoice Tab will be hidden.* If the '''Object''' says "Disable Delete Level 1 Contacts", if the statement in the '''Condition''' field is true, deleting Level 1 contacts will be disabled (meaning deletion won't be possible). ''For example, you can disable the '''Delete''' button when viewing '''Contacts''' at Level 1 for [[User]]s in a specific [[Role|role]] by using the '''Advanced Logic''' setting on the [[Global Settings]] page.:[[Image:AdvancedLogicDCAugust2014.png|link=]] ''In the above example, users who are in the role "Program Director" or "Applicant" will be prevented from deleting contacts at {{l1}}.'' ==Sample Conditional Statements== '''NOTE:''' When possible, avoid using IDs (i.e., typeid, statusid). Using field names rather than IDs allows for better readability and cloning. * Using role name vs. role id !@me.inRole(Organization Contact)@ rather than 'instr('@me.rolelist@',',10733,')=0' * Not true for the Level 1 template with typeid ''12345'' '@opportunity.typeid@'<>'12345' or '@opportunity.typeid@'Not In('12345') * True if the Level 1 status is 'Draft': '@opportunity.status@'='Draft' or '@opportunity.status@' In ('Draft') * True unless the Level 1 status is 'Draft' or 'Open': '@opportunity.status@' Not In ('Draft','Open')
The syntax used will vary depending on which '''Object''' is being controlled.<br>
For example, consider the '''Show Level 3 New Button'''. This button is shown when you are viewing a Level 2 record.
* If you want to control the visibility of the Level 3 New button based on the status of the '''Level 2''' item you would use:
'@statusid@' In ('765','766')
[[Category:Global Settings]][[Category:UTA Settings]][[Category:Universal Tracking Application]][[Category:Advanced Logic]]