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') * True if the Level 1 statusid is 765 or 766 '@opportunity.statusid@' In ('765'For example, you can disable '766') * True if the Level 1 statusid is NOT 765 or 766 '@opportunity.statusid@'Not In ('Delete765','766' button ) * True when viewing current user is in the role ''Program Director''or 'Contacts'Applicant'' for [[Users]] : @me.inRole(Program Director)@ OR @me.inRole(Applicant)@ * False when current user is in both the roles ''Program Director'' and ''Applicant'': !@me.inRole(Program Director)@ AND !@me.inRole(Applicant)@ * For a specific [[Role|role]] by using advanced logic based the '''Advanced Logicstartdate''' or '''enddate'''standard fields:::* Use ' setting on '''@fullstartdate@'''' rather than ''''@startdate@'''' and ''''@fullenddate@'''' rather than ''''@enddate@''''.:''This will format the [[Global Settings]] pagestored date as yyyy-mm-dd so it can be compared using < and >.'' '@fullstartdate@' >= '2009-05-01' * True if today's date is after the Start Date: now()>'@fullstartdate@' * Never True 1=0
* Always True
1=1
'''Example<u>IMPORTANT</u>''':
* [[Boolean Operators]]
* [[UTA Settings Page]]
* [[inRole]]
[[Category:Global Settings]][[Category:UTA Settings]][[Category:Universal Tracking Application]][[Category:Advanced Logic]]