HistoryOf()
This function enables the user to search for specific entries in field history. It is important to note that the use of this function requires the prior activation of the Track Changes field permission.
Once field history is available for querying, the function can be accessed through the Syntax Checker. To utilize the Syntax Checker, enter Edit mode for the record, navigate to Options → Configuration Mode, and select the Syntax Checker Tool. Upon the appearance of the Syntax Checker window, users will be able to employ the HistoryOf function. Examples are provided below.
Function Syntax
@HistoryOf(FIELDNAME::CONDITION::TEMPLATE::SORTFIELD::SORTDIRECTION::LIMIT)@
Available Parameters
Parameter | Definition |
FIELDNAME | Indicate the field name to query. |
CONDITION | Specify the condition for the search. This may include a specific field value (either old or current), a date (to indicate when an update occurred), or a specific user associated with the update. Available fields include: [Value], [OldValue], [UpdatedTime], [UpdatedBy]. |
TEMPLATE | Define how the results will be presented. Available fields are: [Value], [OldValue], [UpdatedTime], [UpdatedBy]. Additional text may be included for clarity. |
SORTFIELD | Specify which parameter value will serve as the sorting criterion. Options include: [Value], [OldValue], [UpdatedTime], [UpdatedBy]. |
SORTDIRECTION | Indicate asc (ascending) or desc (descending) to determine the order of the results. |
LIMIT | The maximum number of matching entries to display. |
- It is permissible to leave a parameter space empty; however, the double colon separators must remain intact. FIELDNAME must be specified, along with either CONDITION or TEMPLATE, as a minimum requirement.
- For the FIELDNAME parameter, users may utilize a Standard or Custom field name, or a custom field ID.
Examples
Display one record where the Application Name field was updated after February 1, 2019. The results will be sorted in descending order by the field value.
@HistoryOf(Application Name::[UpdatedTime]2019-02-01::::[Value]::desc::1)@
Display the most recent individual who set the status to Approved (if that status was assigned more than once), along with the corresponding date and time.
@HistoryOf(Status::[Value]='Approved'::Update to [Value] by [UpdatedBy] at [UpdatedTime]::[UpdateTime]::desc::1)@
Display a maximum of five matches where the Description field contains the string 'test', without specifying a display template, sorted in descending order by UpdatedTime.
@HistoryOf(Description::[Value] like %test%::::[UpdatedTime]::desc::5)@
Display the last individual to modify the Status of the record, including both the old and current values, along with the date and time.
@HistoryOf(Status::::Changed from [OldValue] to [Value] by [UpdatedBy] on [UpdatedTime]::[UpdatedTime]::desc::1)@
Syntax for the CONDITION Parameter
When querying a numeric field type, the following comparison operators may be utilized: >, <, >=, <=, =.
[Value]=30
To verify whether a text field value contains a specific substring, employ LIKE and %.
[Value] LIKE '%hello%'
For a custom date or datetime field, the comparison operators >, <, >=, <=, = may be used. The syntax for date values is either: YYYY-MM-DD or YYYY-MM-DD HH:mm:ss.
[Value] '2019-01-23 13:30:40' AND [Value]
- Date formatters also apply to the [UpdatedTime] field.
Notes
- The base search format may also be utilized if preferred: @HistoryOf(FIELDNAME)@
- The TEMPLATE parameter may include HTML tags for formatting purposes, such as paragraph or break tags:
<p>[Value]</p>
Advanced example: Find the first OR last time the record Status changed to "Completed"
<!--@sscalculation(DATE_FORMAT("@HistoryOf(Status::[Value]='Completed'::[UpdatedTime]::[UpdatedTime]::desc::1)@","%d/%m/%Y"))-->
ssAttach()
The ssattach function can be utilized to append one or more PDF documents that are stored within either a Single File Field or a Smart Folder to a Web Page View Field.
Note: The attached PDF file(s) will not be visible when the web page is viewed in HTML mode, but they will be included when exported as a PDF, saved as a PDF, emailed as a PDF, or created by a Workflow as an attachment.
To attach a PDF file to the beginning or the end of the Web Page View:
<!--@ssattach(position;pdf file location)-->
Where:
- position can be either before or after.
- pdf file location is specified as follows:
File Source Syntax Comments Smart Folder /files/folder1/folder2/File_Name.pdf
To obtain the selected View URL from the File Options dropdown next to the relevant file in the Smart Folder.
The initial part of the URL should be omitted; the specified location should commence with "/files/..." as illustrated in the examples below.Single File Custom Field @Custom Field Name.value@
Multiple Files Custom Field @Custom Field Name.files@
All PDF files stored in the field will be attached.
Notes:
- Single or Multiple file fields on parent or grandparent levels can also be included using:
@parent.Custom Field Name.value@
@parent.parent.Custom Field Name.files@
Examples
- To append a PDF file from a Smart Folder before the current Web Page View Field page:
<!--@ssattach(before;/files/1234/123/myfile.pdf )-->
- To append a PDF file from a Smart Folder after the current Web Page View Field page:
<!--@ssattach(after;/files/1234/123/myfile.pdf )-->
- To append a PDF file from a Single File Custom Field named "AttachPDFFile" before the current Web Page View Field page:
<!--@ssattach(before;@AttachPDFFile.value@)-->
- Note: Please ensure to include .value
- To attach PDF files to a Level 1 Web Page View from the UTA Role Custom Fields located in the contact section:
[#(?object=contact;)<!--@ssattach(after;$?opr_123456.value$)-->#]
Where 123456 represents the Custom Field ID
- To attach PDF files to a Level 1 Web Page View from the organization Custom Fields associated as the Customer on the Level 1 record:
<!--@ssattach(after;@client.UploadFieldName.files@)-->
Where UploadFieldName is the field name of the multi-file upload custom field on the organization record.
Additional Information
- IMPORTANT: Any PDF files that have security restrictions, such as Content Copying or Content Copying or Extraction, are encrypted and cannot be included.
The settings can be viewed by opening the PDF and navigating to File > Document Properties > Security (steps may vary depending on the version of your PDF reader).
See also: Display Additional File Attributes for PDF Documents
- The ssattach function can be placed anywhere within the HTML tags of the Web Page View Field.
- All PDF page settings will be determined by the first PDF document file, whether it is a static file or one generated by SmartSimple.
- Multiple PDF files can be attached from different sources by utilizing multiple ssattach statements:
<!--@ssattach(before;/files/1234/123/myfileheader.pdf )--><!--@ssattach(after;/files/1234/123/myfilefooter.pdf )--> <!--@ssattach(after;/files/1234/123/myfileappendix.pdf )--> <html><body> My Pdf file </body></html>
- sslogic can be employed if the PDF file(s) to be attached must vary based on conditional statements:
<!--@sslogic('@type@'='contact')--> <!--@ssattach(after;@parent.contract.value@)--> <!--@else--> <!--@ssattach(after;@parent.othercontract.value@)--> <!--@end-->
For attaching a file from a transaction to a Level 1 Web Page View, utilize:
@client.[#(?object=transaction::criteria=typename="Transaction Name" and statusname="Submitted"::orderby=trsts desc) <!--@ssattach(after;$fieldname.value$)-->#]@
Example:
@client.[#(?object=transaction::criteria=typename="Audited Financial Statements" and statusname="Submitted"::orderby=trsts desc) <!--@ssattach(after;$Recent Audited Financial statements.value$)-->#]@
ssCalculation()
The sscalculation function is a variable syntax for:
- Web Page Views
- Store Value - System Variables
- Read Only - System Variables
This functions similarly to sslogic, but it performs calculations based on the formula provided. It operates as follows:
<!--@sscalculation('@field@'*0.05)-->
This will return the computed value of '@field@'*0.05 and replace the sscalculation tag.
This allows for calculations directly within the web page views without the necessity of using JavaScript. This addresses issues related to creating PDF files from web page views that contain JavaScript.
The "sscalculation" method employs MySQL syntax. Any MySQL function such as concat(...), format(...), round(...), can be utilized.
Using sscalculation in a List
To calculate a sum (for example) of the values in a Custom Field for all transactions associated with a Company/Contact using sscalculation:
<!--@sscalculation( [#(?object=transaction)$add this$+#]0)-->
- Important: There must be a space prior to the opening square bracket.
- Additionally, if you are calculating the sum, do not forget to include the zero at the end of the statement. For instance, if there are transactions with values of 10, 15, and 20, the statement within the square brackets would be interpreted as follows:
[#(?object=transaction)$add this$+#] becomes 10+15+20+
Thus, the zero at the end ensures that the statement evaluated does not conclude with a plus sign (which would result in an error).
- If you need to retrieve information from level 1 while at level 2 within the sscalculation tag, you can utilize the parent keyword.
<!--@sscalculation(date_format("@parent.fullstartdate@","%Y"))-->
Note: When using date_format with a standard date field, you must reference the field using either @datetime(parent.startdate)@ or @parent.fullstartdate@.
- To sum a value on a Company Role field (Custom Field ID 123456) for all companies with the role of Funding Agency AND a value stored on level 1 (Custom Field ID 545454) and format it with no decimal places:
<!--@sscalculation(format(( [#(?object=company::criteria=rolename='Funding Agency') $?opc_123456.value$ + #] @#545454.value#@),0))-->
- To calculate the average of all values (Custom Field ID 1755555) on a specific Level 2 Type (typeid=54321), excluding a particular status (statusid is not 10001), rounded to the nearest whole number:
<!--@sscalculation(format( ( [#(?object=activity::criteria=typeid='54321' and status.statusid not in ('10001')) $1755555$ + #] 0 )/@level2.count(*):typeid='54321' and status.statusid not in ('10001')@,0))-->
- To determine the difference in days between two distinct dates:
<!--@sscalculation(datediff('@datetime(currentdate)@','@Last Contact Date@'))-->
- To add a number of months to a date equivalent to the quantity selected in another field:
<!--@sscalculation(DATE_ADD('@Anticipated Project End Date@', INTERVAL @system.Grants-FinalDisbursementDelay@ MONTH))-->
- To subtract a number of months from a date, utilize a negative number for the INTERVAL (for example, -6 months as shown below):
<!--@sscalculation(DATE_ADD('@Anticipated Project End Date@', INTERVAL -6 MONTH))-->
- To calculate the difference in months between two date values:
<!--@sscalculation(PERIOD_DIFF(DATE_FORMAT('@Anticipated Project End Date@','%Y%m'),DATE_FORMAT('@Anticipated Project Start Date@','%Y%m')))-->
or
<!--@sscalculation(TIMESTAMPDIFF( MONTH,'@Start Date.value@','@End Date.value@') )-->
Utilizing sscalculation to Modify Date Formats of Data in Custom Fields
- To extract date/time information from a custom field and present it in an alternative format, the following syntax can be employed at level 2, referencing the field fieldname at level 1:
<!--@sscalculation(date_format("@parent.fieldname@","%M %d, %Y"))-->
- Utilize the following arguments to format the date/time information:
Format Description %M %d, %Y will yield the date in the format September 30, 2012 %a will return the abbreviated day of the week, e.g., Sun. for Sunday %b will return the abbreviated name of the month, e.g., Sep for September %c will return the month number in abbreviated format, e.g., 9 for September %d will return the numeric day of the month (01-31) %e will return the numeric day of the month (1-31) %h will return the hour (01-12) %i will return the minutes (00-59) %j will return the day of the year (001-366) %k will return the hour (0-23) %l will return the hour (1-12) %m will return the month number, e.g., 09 for September %p will return AM/PM information, e.g., AM %r will return the full time in 12-hour format, e.g., 12:00:00 AM %s will return seconds (00-59) %u will return the week number (00-53) where Monday is considered the first day of the week %w day of the week (0=Sunday...6=Saturday) %y will return the abbreviated year, e.g., 12 for 2012 %D will return the ordinal day of the month, e.g., 30th %H will return the hour (00-23) %M will return the month name, e.g., September %T will return the full time in 24-hour format, e.g., 23:00:00 %U will return the week number (00-53) where Sunday is considered the first day of the week %W will return the day of the week, e.g., Sunday %Y will return the four-digit year, e.g., 2013
Note: Any MySQL syntax may be utilized within sscalculation.
- It is unnecessary to use sscalculation if the custom field being referenced is at the same level as the field referencing it. For instance, if you are referencing a level 2 custom field in a web page view field at level 2. In such cases, you may employ the syntax outlined on the Web Page View Field Variables page.
Utilizing sscalculation to Replace Text
In the subsequent example, the variable @Select Many Checkbox Fields@ produces a semicolon-separated list of selected values from the field:
Option 1;Option 2;Option 3
To replace the semicolons with a comma followed by a space, the following syntax may be utilized:
<!--@sscalculation(REPLACE("@Select Many Checkbox Field@",";",", "))-->
...which will yield:
Option 1, Option 2, Option 3
References
- MySQL Date Format Note: this is an external website.
Hide ADD/DELETE form buttons by role
<!--@sslogic("@me.inRole(Applicant)@")-->
var oldLoadXML = loadXML;
loadXML = function() {
oldLoadXML();
disableProjectedAthletesInterimReport();
}
function disableProjectedAthletesInterimReport()
{
$("a[name='addDynamicRowButton']").each(function( index ) {
$(this).parent().hide();
});
$("a[name$='_deletebutton']").each(function( index ) {
$(this).parent().hide();
});
}
<!--@end-->
ssEscape()
This syntax serves to "escape" double quotes in text fields. The intent of this is to prevent code disruption on the page when field values containing double quotes are referenced in Template Formulae, Visibility Conditions and Browser Scripts.
IMPORTANT: This syntax will escape/ignore double quotes (") and eliminate HTML tags.
<ssEscape>.....</ssEscape>
Examples
- When employing template formulas to escape double quotes from a single line text field.
@level1.name@="<ssEscape>@level1.Proposal Title@</ssEscape>";
- When utilizing template formulas to escape double quotes from a multiple lines text field.
@level1.description@="<ssEscape>@level1.Project Description.value@</ssEscape>";
- When applying browser scripts to escape double quotes from a variable.
var name="<ssEscape>@name@</ssEscape>"; if(name=="") function goes here....
- When employing Sslogic or visibility conditions to escape double quotes from a single line text field.
<!--@sslogic("<ssEscape>@name@</ssEscape>"!="")--> There exists a project title with double quotes <!--@end-->
ssLogic()
Web Page View fields can utilize a unique SmartSimple logic interpreter. Web page logic provides the capability to display specific content or execute certain actions only when predetermined conditions are satisfied. SmartSimple logic employs the following syntax:
<!--@sslogic(CONDITION)--> The content to be displayed when the condition is true. This may comprise more than one line. <!--@end-->
- The content to be displayed (the middle line) may be in plaintext or HTML.
- Ensure that there are quotes (either single or double) surrounding the variable and value. Note: The choice of quotes depends on the variable's contents. For instance, names containing apostrophes should utilize double quotes when referencing that variable.
- SSlogic does not support nested logic statements. In other words, you cannot embed an sslogic statement within another sslogic statement.
- NOTE: sscalculation syntax cannot be employed within an sslogic statement. The sslogic syntax will manage the calculations independently, without requiring additional syntax prompts.
Example:
- The following will display an image of a Christmas tree if the month is December:
<!--@sslogic(month(now())=12)--> <img src="images/xmasstree.jpg" alt="" /> <!--@end-->
- Precede the equal sign with an exclamation point to test for Not Equal
- The following will display a message for all provinces except Ontario:
<!--@sslogic("@province@"!="Ontario")--> You are outside of Ontario <!--@end-->
Else Logic
- Frequently, it is necessary to display one of two texts—one text when a condition is met and another when the condition is not met. This can be accomplished through the use of an "else" operator.
- The following sample code will display one message if a user is male and another if the user is female:
<!--@sslogic(@age@>=18)--> The individual is an adult. <!--@else--> The individual is a minor. <!--@end-->
- The following will display two checkboxes. If the gender is male, the first checkbox (Male) will be selected. If the gender is female, the second checkbox will be selected:
<!--@sslogic(@parent.owner.age@>=18)--> <input checked="checked" type="checkbox" /> Adult <input type="checkbox" /> Minor <!--@else--> <input type="checkbox" /> Adult <input checked="checked" type="checkbox" /> Minor <!--@end-->
Multiple Options ("else if" syntax):
Multiple "else if" operators can be utilized if there are more than two options:
<!--@sslogic(condition 1)-->aaa <!--@else if(condition 2)-->bbb <!--@else if(condition 3)-->ccc <!--@else-->ddd <!--@end--></nowiki></nowiki></nowiki>
Example:
<!--@sslogic("@possibility@"="Yes")--> This will occur for certain. <!--@else if("@possibility@"="No")--> This is not occurring. <!--@else if("@possibility@"="Maybe")--> This may or may not occur. <!--@else--> No one knows what will transpire. <!--@end-->
Multiple Conditions
- It is permissible to include more than one condition:
<!--@sslogic('@year@'='2008' AND ('@month@'='1' OR '@month@'='2'))--> This is only displayed if the year is 2008 and the month is either January or February. <!--@end-->
Fields Storing Single Quotes or Double Quotes
- SSlogic can be utilized to display fields that may contain single quotes or double quotes.
- The escape[] function is employed to achieve this:
<!--@sslogic('escape["23456$]'!='')-->
<!--@sslogic('escape[@Field Name@]'!='')-->
- NOTE: The function must be wrapped in single quotes.
Utilizing Object Lists
- Object Lists can also be employed in SSlogic.
<!--@sslogic("[#(?object=contact::criteria=rolename='Supervisor'::groupfunction=count)~userid~#]">0)--> There is at least one Supervisor <!--@else--> There are no Supervisors <!--@end-->
Utilizing SSattach
- SSlogic can be employed to determine which PDF file is appended to the Web Page View using ssattach
- The following example will attach myfilefooter.pdf if the Type/Template is Contract, and myotherfilefooter.pdf if not:
<!--@sslogic("@type@"="Contract")--> <!--@ssattach(after;/files/1234/123/myfilefooter.pdf)--> <!--@else--> <!--@ssattach(after;/files/1234/123/myotherfilefooter.pdf )--> <!--@end-->
Note: ssattach can be utilized without sslogic if you desire the same PDF file attached to the Web Page View in all circumstances.
Notes
- SSlogic can be employed in workflow emails at Level 1 only.
-
In general, double quotes (") should be utilized to enclose variables rather than single quotes ('). If the content includes an apostrophe (equivalent to a single quote), it may disrupt processing. Double quotes are less commonly used as content. It may be advisable to add an onchange event to the source field to prevent the entry of double quotes.
SsParseNum()
To convert a number from a formatted string (containing symbols like "$" or "%") to a number using JavaScript; you can use a function called ssParseNum.
ssParseNum(value, emptyok );
Where:
Parameter | Description |
---|---|
value | Required. Is the value to be converted to a number (i.e: $5,000.00 and 5,000% will be converted to 5000) |
emptyok |
Optional. Is a true/false value
|
Examples
ssParseNum($5,000.50);
Will return: 5000.5
If you wish to display a ratio of two fields that are set to have currency formatting, you should convert the values to numbers using ssParseNum:
ssParseNum([field1])/ssParseNum([field2])
Requirements
This function is part of the sstools.js library and needs to be added to Browser Script custom fields or on template pages, sign-up pages etc. using the following syntax:
<SCRIPT type="text/javascript" language="javascript" src="/sstools.js"></SCRIPT>
When Using "Show Currency Format in Edit Mode"
When using the "Show Currency Format in Edit Mode" setting for custom fields, the following syntax must be used:
ssParseNumFromCurrency(value,getLocalestrByCurrency(code),1,emptyok);
(getLocalestrByCurrency will get the "default" locale of the currency code, e.g. CAD will result in en-CA, NOT fr-CA)
OR
ssParseNumFromCurrency(value,locale,1,emptyok);
(if you know the locale of the formatted currency, e.g. da-DK or fr-FR or fr-CA etc)
Where:
Parameter | Description |
---|---|
value | Required. Is the value to be converted to a number (i.e: $5,000.00 and 5,000 will be converted to 5000) |
emptyok |
Optional. Is a true/false value
|
code | Required. The three-letter currency code defined by ISO 4217. Example: JPY for Japanese Yen. |
Examples:
ssParseNumFromCurrency([YER Total revenue],getLocalestrByCurrency('CAD'),1,true) - ssParseNumFromCurrency([YER Total expenses],getLocalestrByCurrency('CAD'),1,true)
or
-
ssParseNumFromCurrency([YER Total revenue],'fr-CA',1,true) - ssParseNumFromCurrency([YER Total expenses],'fr-CA',1,true)
SsEncrypt
The functions ssEncrypt and ssEncrypt2 are utilized for the dynamic generation of encrypted tokens, which facilitate the creation of URLs for accessing various entities within SmartSimple.
Tokens are generated through two distinct encryption methodologies. Consequently, either ssEncrypt or ssEncrypt2 is employed based on the specific entity involved:
Level 1 Template Page Token
<ssEncrypt>typeid,rootcompanyid</ssEncrypt>
Level 2 Template Page Token
<ssEncrypt>typeid,appid,rootcompanyid</ssEncrypt>
When encrypting parameters in an internet-enabled Level 2 template (located at the URL /ex/ex_Evtpage.jsp), it is advisable to utilize ssEncrypt2.
- Instead of using 'eventid' as a parameter, utilize 'codedid'
- Instead of using 'parentids' as a parameter, utilize 'enparentids'
Unencrypted:
https://alias.smartsimple.com/ex/ex_Evtpage.jsp?token=Gw4NRhwGZVhdQhNRXxdTQlRVbFI%3D&parentids=@parent.opportunityid@&eventid=@eventid@
Encrypted:
https://alias.smartsimple.com/ex/ex_Evtpage.jsp?token=Gw4NRhwGZVhdQhNRXxdTQlRVbFI%3D&enparentids=<ssEncrypt2>@opportunityid@</ssEncrypt2>&codedid=<ssEncrypt2>@eventid@</ssEncrypt2>
Web Page View Token
<ssEncrypt2>objectid</ssEncrypt2>
For example, to access the Web Page View with custom field ID 123456 associated with a contact, the following syntax should be employed:
<input type=button class=Button value="Open" onclick="_openpageview('123456','<ssEncrypt2>@userid@</ssEncrypt2>',1)" >
Note: If you have URL Parameter Encryption enabled, the custom field ID must also be encrypted using ssEncrypt3. If custom field 654321 is on a Level 1:
<input type=button class=Button value="Open" onclick="_openpageview('<ssEncrypt3>654321</ssEncrypt3>','<ssEncrypt2>@opportunityid@</ssEncrypt2>',1)" >
Contact Role Intersection (Level 1)
<ssEncrypt2>oprid</ssEncrypt2>
Example (custom field located on the Level 1 UTA role):
<input type=button class="Button" onclick="javascript:openRoleFields('<ssEncrypt2>@oprid@</ssEncrypt2>',@roleid@)" value="My Vote"/> <script> function openRoleFields(objectid,roleid){ fieldid_window = window.open('/s_editcustomfields.jsp?iswin=1&objecttype=91&opportunityid=@levelone.opportunityid@&itemlist='+roleid+'&objectid='+objectid,'field_window','menubar=no,scrollbars=yes,width=850,height=300,status=no,resizable=yes,top=200,left=200,dependent=yes,alwaysRaised=yes'); fieldid_window.opener = window; fieldid_window.focus(); } </script>
Transaction Token
<ssEncrypt>userid,typeid</ssEncrypt>
ssGet()
The ssGet variable is employed to extract information from various databases, including:
- The OFAC (Office of Foreign Assets Control) database
- Watch List Integration third-party providers
- U.S. census data
The syntax for the ssGet variable varies depending on the database from which information is being retrieved.
Configuration - Office of Foreign Assets Control (OFAC)
On-request checks can be conducted against the OFAC's online database within SmartSimple. For instance, on an organization profile, a Web Page View Field can be configured to display the following check results:
In the illustration above, the OFAC check has returned a single 100% match result for the company name, with no results for the associated contacts. The syntax for configuring the OFAC check is as follows:
@ssGet(OFAC,entity;;firstname;;lastname;;search options;;roleslist;;meta template;;line template)@
Settings Explained - Office of Foreign Assets Control (OFAC)
Setting | Description |
Entity | accepts "people", "company" or "all" |
firstname | an individual's first name or company name |
lastname | an individual's last name (will be ignored if entity is "company" or "all") |
search options |
accepts "1", "2" or "3"
|
rolelist | applies if "search options" is set to "2" or "3". Should be in the format of comma-delimited Roleid or role names (but not ids mixed with names). |
meta template |
Template for how the "header" of results will be returned. The default template will be used if left empty. Variables that can be used include:
Example: "Search type: [[entity]], Search for: [[name]], Records returned: [[recordcount]], Date: [[now]]" |
line template |
Template for how the "body" of results will be returned. The default template will be used if left empty. Variables that can be used include:
|
To conduct an ad hoc OFAC check on a specific organization record, a Web Page View Field must be created within the Organization custom fields. The content of the Web Page View Field may be configured similarly to the example illustrated below:
-
When utilizing a Web Page View Field, you have the option to 'Enable Save to Server' within the field settings. This feature allows you to define an upload field on the organization profile where the stored PDF copy of the OFAC results will be saved upon triggering.
Configuration - Watch List Scanning
SmartSimple, in collaboration with our Watch List providers (CSI Web or Lexis Nexis Bridger), can provide access to additional third-party services lists beyond the OFAC list. When utilizing these services, a contractual agreement must be established with one of the two integrated providers. The account credentials received will be utilized within your SmartSimple instance to facilitate the integration.
In the Global Settings, under the Integrations tab, you will find the Watch List Settings.
The Watch List Settings allow for the entry of your billing ID and password for the third-party service being utilized.
When utilizing CSI Web, there are settings to define the watch list(s) you wish to search against, as well as the scan threshold, which dictates that only results matching or exceeding the percentage match threshold will be displayed.The list of supported third-party services with CSI Web includes:
- U.S. Bureau of Industry and Security
- Department of State - Bureau of International Security & Nonproliferation list
- Department of State - Defense Trade Controls Debarred Parties list
- International Criminal Police Organization (INTERPOL)
- Politically Exposed Persons, CIA Foreign Officials
- Office of Inspector General
- Excluded Parties List System provided by the General Services Administration (GSA)
- Financial Crimes Enforcement Network
- FinCEN Money Services Business
- World Bank Ineligible Firms
- Terrorist Exclusion List
- FBI Most Wanted Fugitives
When utilizing Lexis Nexis Bridger, the settings for the watch list services included in each scan, along with threshold settings, will be managed within your Lexis Nexis account and not within the SmartSimple instance.
Returning Information from Watch List
The syntax for configuring the Watch List check is as follows:
@ssGet(ServiceName,entity;;firstname;;lastname;;search options;;roleslist;;meta template;;line template;;additional search attribute)@
The ServiceName is contingent upon which third-party service you are utilizing:
- CSI Web: WatchList
- Lexis Nexis: LexisNexis
-
Configuration - U.S. Census Online Database
@ssGet(FFD,FIPS;;@address@ @city@ @state@)@
@ssGet(FFD,Profile;;year;;Address or FIPS code;;level;;[[template]])@
-
ssURL()
Introduced for the benefit of internal staff and partners, we have implemented a syntax that dynamically resolves URLs for various system objects and actions. This enhancement enables configuration teams to reference system objects utilizing variables, thereby optimizing the setup process when duplicating new systems. Previously, configuration teams were required to manually modify URLs due to unique attributes such as IDs that vary in cloned systems. With the introduction of this new syntax, links to assets including login and signup pages, report charts, submission buttons, and portal sections will automatically direct to the appropriate system asset post-cloning, eliminating the need for manual adjustments.
Syntax
The general format of the syntax is as follows:
@ssurl(objecttype,action,identifier)@
- The "objecttype" refers to the type of object being referenced, for example, "Signup" for a registration page.
- The "action" pertains to the operation being performed or accessed, such as “View” or "CreateLevelOne".
- The "identifier" denotes the name of the object being referenced, for instance, the name assigned to a signup page or an autoloader. In cases where multiple identifiers exist, separate them using double semicolons ( ;; ) as a delimiter. It is important for configuration teams to ensure that all objects possess a unique identifier (name); if two autoloaders are created with identical names, the system will only return the autoloader with the lower ID.
Usage Examples
Refer to the table below for the supported variable syntax.
Description objecttype
action
identifier
Examples with Resolved Results Signup Page signup view Signup Page Name User Signup Page Example:
@ssurl(signup,view,pagename)@
Result: /s_signup.jsp?token=XVtQC1oGZlBfRxddXxdSQUlSZ1R9Ew%3D%3D
Organization Signup Page Example:@ssurl(signup,view,pagename)@
Result: /s_csignup.jsp?token=XVtQHUUGZV1YShBFQhdQXlZSZVxy
Single User + Organization Page Example:@ssurl(signup,view,pagename)@
Result: /s_csignup.jsp?token=XVtQHUUGbFxRQhFaXxdSQUlSZ1R9HQ%3D%3D&ptoken=XVtQC1oGZlBeQBNZXxdSQUlTYFZzEg%3D%3D
Multiple Users + Organization Page Example:
@ssurl(signup,view,pagename)@
Result: /s_csignup.jsp?token=XVtQHUUGbFxcRhRRXxdSQUlSZ1R9Eg%3D%3D
UTA - Main List View uta listview UTA Name @ssurl(uta,listview,utaname)@
Result: /iface/uta/uta_list.jsp?appid=102161
UTA - Create Level One uta createlevelone UTA Name @ssurl(uta,createlevelone,utaname)@
Result: /Apps/app_editopportunity.jsp?appid=102161&opportunityid=0
UTA - Template Page uta templatepage UTA Name, Type Name @ssurl(uta,templatepage,utaname;;typename)@
Result: /ex/ex_Apppage.jsp?token=HwwPRhMGZVla
UTA - Impact Quadrant uta impactquadrant UTA Name, Quadrant Name @ssurl(uta,impactquadrant,utaname;;quadrantname)@
Result: /Apps/db/db_impact.jsp?impactid=@Hw0ERBkfbV5bQRRQRh8~
Report report view Report Name @ssurl(report,view,reportname)@
Result: /userreport/ur_openreport.jsp?reportid=44372
Report Chart reportchart view Report Name, Chart Name Client-Side Chart Example:
@ssurl(reportchart,view,reportname;;chartname)@
Result: /ex/ex_highchart.jsp?enc=1&chartid=H3ZfFAVpLgcxAVQ8GFAMERALMTY1QRYeH2JdUEJB&reportid=f1oJDE4bexInFm8TRRYqIxEmPA8rbTAKH2dZUkVG&rootcompany=GGZzFn0FZhk8JRocHGdIBBI7EzUSYAcDH2JcUg~~
Server-Side Chart Example:@ssurl(reportchart,view,reportname;;chartname)@
Result: /servlet/wChart?width=300&height=200&codedid=YnoRF35kEjwDHm0DMUQMNQ0kZwcdHTgRH2JdUEJC
Report Dashboard dashboard view Dashboard Name @ssurl(dashboard,view,dashboardname)@
Result: /userreport/ur_viewdb.jsp?dashbid=2348
SmartFolder (View) smartfolder view SmartFolder Name @ssurl(smartfolder,view,foldername)@
Result: /s_editresource.jsp?display=1&resourceid=68826
SmartFolder - View (Internet Enabled) smartfolder viewinet SmartFolder Name @ssurl(smartfolder,viewinet,foldername)@
Result: /files/113/68827/169542folderinet/
Autoloader - Dropbox autoloader dropbox Autoloader Name @ssurl(autoloader,dropbox,autoloadername)@
Result: /Archive/al_upload.jsp?loaderid=BEUFe2sDA1d7aV1cQUYBRWUDdgVhe2tRCwUDBg~~
AI Insight aiinsight view Name @ssurl(aiinsight,view,name)@
Result: /AI/ai_workingwithai.jsp?token=%40HwwMTxwbeFhFQhFFQRxZQVVTZFV1G3BhHQ~~