# Low code, Unified Platform

Drive more value & successfully transform your entire organization.

## One Platform, Endless Possibilities...

WorkSmart is a zero-code, cloud platform for business management in the digital age. WorkSmart empowers both non-technical and tech-savvy business professionals to build custom business applications 10-20x faster than traditional development. ‍&#x20;

WorkSmart's unified framework of Content management, Collaborative Work management and Business Process Automation coupled with Business Intelligence - Reports and Analytics services, enables you to drive more value and successfully transform your entire organisation.

Today, growing number of forward thinking companies from wide range of backgrounds all over the world - are benefiting from unique WorkSmart solutions.


# Custom Database Apps

Build Your Own Custom App. Fields, Forms, Workflow Rules, Views, Reports and more.


# Create new App

Design, build and deploy custom applications tailored to your specific needs

1. To create a custom database app, navigate to one of your sites, and click “+”.
2. Select “Custom Database App” from the list of templates and add a name for your app and then Submit.

<figure><img src="/files/7fFXSZNhjdf1p193gqs9" alt=""><figcaption></figcaption></figure>


# Columns

Columns are at the core of your apps. There are the entiry that holds your data in WorkSmart.

You can create different types of columns as per your requirements from the following list:

* Single Line
* Multi-Line
* Email Address
* Phone/Fax No.
* Address
* URL
* Number
* Auto Number - auto-generated
* Currency
* Date Time
* Time Input - can store time of day, hours worked (max 24 hours)
* Duration - can store duration in days, hours and minutes
* Yes/No - boolean value of Yes or No
* Choice - includes subtypes as dropdown and radio (single item selection) or checkbox (multi-item selection)
* Users - linked to address book and has capability to define access control
* Relationship -  to establish parent-child relationships with other apps
* E-signature

<figure><img src="/files/Egn47dSyFfhfpzZQgi06" alt=""><figcaption></figcaption></figure>


# Column Types


# Text

A general purpose field which may be used to store a single line of text.

If you need to allow users to enter a large amount of text, or want to allow them to enter text on multiple lines, use the Multi-Line field type instead.&#x20;

Additional options for Line of Text fields:

1. Required: Enable checkbox if field cannot be left empty.&#x20;
2. No. Chars: Specify the maximum number of characters that users can enter in this field.&#x20;
3. Default: Specify the default content you want this field to display when you first create an entry.


# Multi-Line

A general purpose field which may be used to store multiple lines of text.

Additional options for Multi-Line fields:

1. Required: Enable checkbox if field cannot be left empty.&#x20;
2. No. Lines: Specify the height of the input box by indicating the number of lines to display. This does not affect the amount of text that users can enter, just the size of the input box.&#x20;
3. Default: Specify the default content you want this field to display when you first create an entry.


# Number

Allows the storage of whole or decimal numbers. Fields of this type may also be automatically totalled if required.

Additional options for Number fields:

* Required: Enable checkbox if field cannot be left empty.&#x20;
* Min and Max Values: Specify the minimum and maximum values that can be entered into this field.
* Default: Specify the default content you want this field to display when you first create an entry.&#x20;
* Show as %: Enable checkbox if entry is to be displayed as a % percentage.&#x20;
* Decimal Places: Specify the number of decimal places to display.&#x20;
* Blank as zero: Blank value will be converted to zero.


# Auto Number

This field will cause a unique auto-generated ID number to be assigned to each record upon creation.

Additional options for Number fields:

1. Alphabet: The starting alphabets to be used with this field. e.g. INV-123 will have alphabet will be INV.
2. Start With: The start value to be used for auto increment number.


# Currency

Allows the storage of currency values, combined with a currency code/symbol. Fields of this type may also be automatically totalled if required.

Additional options for Currency fields:

* Required: Enable checkbox if field cannot be left empty.&#x20;
* Min and Max Values: Specify the minimum and maximum values that can be entered into this field.&#x20;
* Default: Specify the default content you want this field to display when you first create an entry.&#x20;
* ISO Currency Code: Click on the image to select a currency format.&#x20;
* Position: Specify symbol placement as Prefix or Suffix.&#x20;
* Show Symbol in Columns: Enable checkbox if symbol is to be displayed in the columns.&#x20;
* Use 1000s Separator: Enable checkbox if you require a 1000s comma separator, e.g. $125,000.&#x20;
* Decimal Places: Specify the number of decimal places to display.


# Date/Time

Allows the storage of dates or dates/times which are specified by the user.

Additional options for Date/Time fields:

* Required: Enable checkbox if field cannot be left empty.&#x20;
* Type: Specify whether the field will be Date only OR Date and Time OR Time only.&#x20;
* Default: Specify if you want Today’s Date to be displayed by default or select None to leave this option blank.&#x20;
* Range: Specify whether the field will be range or single date field


# TimeInput

Allows the storage of  24-hour based time values.

Additional options for Date/Time fields:

* Required: Enable checkbox if field cannot be left empty.&#x20;
* Type: Specify whether the field value will be Minutes, Hours, OR Days.


# Duration

Allows the storage of time duration value.

Additional options for Date/Time fields:

* Required: Enable checkbox if field cannot be left empty.&#x20;
* Type: Specify whether the field value will be Minutes, Hours, OR Days.


# Yes/No

This field is presented as a simple slider which may be either enabled or disabled.

Additional options for Yes/No fields:

* Default: Enable checkbox if field requires to be ticked by default when adding a new entry.


# Choice – Drop Down, Radio Button, and Check Box

Allow users to select between a number of predetermined options.

* Drop Down and Radio Button types allow a user to select a single option. The Check Box type allows multiple options to be selected at once.

Additional options for Choice fields:

* Required: Enable checkbox if field cannot be left empty.&#x20;
* To add options:&#x20;

1. Click “New Option” button Type option value in the text box above “New Option” button Option for Drop down and Radio button can have a colour code associated with it.&#x20;
2. Click colour square before option text box to change the colour.&#x20;
3. Select colour from colour selector.&#x20;
4. Repeat step 1 to 3 to add multiple options.&#x20;

* To remove options:

1. Click delete icon located next to option text box&#x20;
2. Click “Confirm” button in the confirmation box to remove the option&#x20;
3. To sort options: Click “Sort Options” button&#x20;
4. Hold and drag the gripper icon to rearrange the options Click “Done” button&#x20;

**Note:** Sorting is only allowed once the options are saved


# Email Address

This field stores a single email address.

* Users must enter values that are in the format of a valid email address, e.g. <name@company.com>.

Additional option for Email Address fields:

* Required: Enable checkbox if field cannot be left empty.


# Phone/Fax No.

This field may be used for storing telephone/mobile/fax numbers.

Additional option for Phone/Fax No. fields:

* Required: Enable checkbox if field cannot be left empty.


# URL

Stores a single URL of the form <http://www.somewebsite.com>. If these fields are displayed in views, users may click on the URL to open the named website.

Additional options for URL fields:

* Required: Enable checkbox if field cannot be left empty.&#x20;
* Type: Select Embedded Link if you want users to view the named website in the main WorkSmart.net window or select External Link if you want the named website to be launched in an external browser window.&#x20;
* Default: Specify if you want a specific URL to be displayed by default.


# Relationship

Using Relationship you can establish parent-child relationships between apps

For example, you are creating a "Timesheet" app where you want to log time sheet data for each employee on a daily basis and you already have "Employee Directory" as a standalone application.

So you can add "Employee Directory" as a "Lookup" relationship in "Timesheet" app - this will link the entries in Timesheet app with the selected record from "Employee Directory" app.


# E-Signature

Digitally capture e-Signatures to create legally binding documents like contracts, SLAs, etc.

E-Signature field allows you to capture digital signatures from user which are legally binding.

This is useful for creating digital contracts, service level agreements, etc. in WorkSmart and ask the concerned parties to digitally sign those documents thereby maximizing efficieny, reducing complexities and eliminating carbon footprint - no need for printing out 100s of pages of documents.


# Formula

Formula field value of the field is not stored within the database record, but is calculated on the values of other fields within that record. The calculation is called a formula. This formula consists of values from other fields and the results of functions.

Available Formula Functions

Operators:

* \= plus

  – = minus
* \= multiply

  / = divide

  ( ) = precedence

Additional options for Form fields:

* Formula: Enter calculation, formula, and functions. Press “@” key to get the list of functions available to choose. Fields has to be enclosed in square brackets “\[ ]”. Go to Function Reference to see all the functions available.&#x20;
* Fields: Field list available to be inserted in formula. You can click field name in field list to insert in formula field at cursor position.&#x20;
* Display Format: Specify which field formatting details will be used to format the resulting formula value.


# Adding a New Column

To add a new column, navigate to your App and go to “App – Settings” as shown below&#x20;

<figure><img src="/files/DQMzH2JSRQQUCA8kpKff" alt=""><figcaption></figcaption></figure>

On “App Columns” page, click “+ New Column” to add a new column

Select the Column Type and provide relevant details for your new column


# Modifying Existing Column

To modify an existing column, navigate to your App and go to “App – Settings” as shown below

<figure><img src="/files/DQMzH2JSRQQUCA8kpKff" alt=""><figcaption></figcaption></figure>

1. Hover over the top-right corner of the column that you want to modify and click on “Edit”
2. Modify the details and click “Save Column” to save your modifications.


# Removing a Column

&#x20;To remove a column, navigate to your App and go to “App – Settings” as shown below&#x20;

<figure><img src="/files/DQMzH2JSRQQUCA8kpKff" alt=""><figcaption></figcaption></figure>

1. Click on the “X” icon on right of the column which you want to remove/delete

**NOTE:** Removing a column will remove all the data stored in that column and **THIS OPERATION IS NOT REVERSIBLE.**


# Views

Each App can have multiple views as per your requirements.

* Grouping (e.g. Group By Priority)
* Sorting (e.g. Sort By Time)
* Filter (e.g. Filter out Closed status)

Within a single view, you can display data with following visualisations :

* Table/List
* Kanban
* Chart (Pie, Traffic Light, Bar, Birds Eye)
* Calendar
* Project Plan


# Adding a View

* To add a View, navigate to your App and go to “Data Views” as shown below :
* Click on “+ New View” to add a new view :
* Follow below steps to setup your new view :

1. Add a name for the view.
2. Select at least one display type for your view (you can select more than one)&#x20;
3. Select the columns you want to display (only applicable for display type List View)&#x20;
4. (Optional) Select Grouping if you want to group your records by a particular field&#x20;
5. (Optional) Select Sorting for your records&#x20;
6. (Optional) Select Filters to filter out any records which match certain criteria(s)&#x20;
7. Click “Save” to save your new view.


# Adding a Chart View

&#x20;

* To add a Chart View, navigate to your App and go to “Data Views” as shown below :
* Click on “+ New View” to add a new chart view :
* Follow below steps to setup your new chart view :

1. Add a name for the view
2. Select at least one chart view display type for your view (you can select more than one chart to display)
3. (Optional) Select the columns you want to display (only applicable for display type List View)
4. (Optional) Select Grouping if you want to group your records by a particular field
5. (Optional) Select Sorting for your records
6. (Optional) Select Filters to filter out any records which match certain criteria(s)
7. Click “Save” to save your new view.

* Mandatory additional Setup for chart view :

1. Once you have created the chart view, go to the newly created view and select any of the charts from the chart icons on the right hand side
2. Then click on “setting” icon and click “View Settings”
3. Define the X-axis and Y-axis label and column settings and click “Submit”


# Adding a New Summary View

1. Select a Site

2. Click App Name on site menu

3. Click “Manage Views” from “More…” drop down menu located on top right corner of page

4. Click “New View” button located on top right corner of page

5. Summary view has five sections:

   \
   **a. View Details**

   1. Click View Details on left hand menu
   2. Select View Type as Summary
   3. Provide View Name and Description

   **b. Display Settings**

   1. Click Display Settings from left hand menu
   2. Sub-Column Settings: If this is Yes then plug-in data (comments, attachments, etc) will be displayed in field selected next to Yes/No buttons
   3. Extra Rows/Record
   4. Default Display: Each table view can have three display types
      1. List View
      2. Card View
      3. Group View
   5. By default the default display is List View.

   **c. Group By**

   1. Click Group By from left hand menu
   2. Select Column from Group By dialog to group the data

   **d. Data Summary**

   1. Click Data Summary from left hand menu
   2. Select Field and Summary Type

   **e. Data Filters**

   1. Click Data Filters from left hand menu
   2. Click “New Filter” button from Data Filters dialog
   3. Select Field, Operation, and compare value

6. Click “Save” button


# Editing a View

1. Select a Site
2. Click App Name on site menu
3. Click “Manage Views” from “More…” drop down menu located on top right corner of page
4. Click update icon on![](https://my.worksmart.net/DL/images2/update.png)located in “Modify” column
5. Change all necessary details
6. Click “Save” button


# Deleting a View

1. Select a Site
2. Click App Name on site menu
3. Click “Manage Views” from “More…” drop down menu located on top right corner of page
4. Click delete icon ![](https://my.worksmart.net/DL/images2/delete.png) located in “Delete” column
5. Click “Confirm” button in the confirmation box to remove the View


# View Settings


# Setting default view

1. Select a Site
2. Click App Name on site menu
3. Click “Manage Views” from “More…” drop down menu located on top right corner of page
4. Click “Settings” button located on top right corner of page
5. Select any one radio button located in Default column
6. Click “Save” button located on top right corner of page


# Re-ordering view sequence

1. Select a Site
2. Click App Name on site menu
3. Click “Manage Views” from “More…” drop down menu located on top right corner of page
4. Click “Settings” button located on top right corner of page
5. Hold and drag the gripper icon ![](https://my.worksmart.net/DL/images2/gripper.png) located just before view name to rearrange the views
6. Click “Save” button located on top right corner of page


# Making view active/inactive

1. Select a Site
2. Click App Name on site menu
3. Click “Manage Views” from “More…” drop down menu located on top right corner of page
4. Click “Settings” button located on top right corner of page
5. Tick or Untick checkbox in Active column to make a view active or inactive respectively
6. Click “Save” button located on top right corner of page


# Forms

Forms are used to Add/Edit/View the records in Database Apps.


# Adding a New Form

1. Select a Site
2. Click App Name on site menu
3. Click “Manage Views” from “More…” drop down menu located on top right corner of page
4. Click “New Form” button located on top right corner of page
5. Provide “Name”
6. Select Form Type by clicking the corresponding button. Three options are available:
   1. Edit Form
   2. Add Form
   3. View Form
7. Select Device if required
8. Select Form Layout. Three options are available
   1. One Column: Only once column per row is allowed
   2. Two Column: Maximum two columns per row are allowed
   3. Three Column: Maximum three columns per row are allowed
9. Hold and Drag Field name from Application Fields area and Drop it in Form Fields sections. All the fields dragged in Form Fields section will be displayed in the Form
10. Click “Section Separator” button located above Form Fields section to add section separator between form fields
11. Click “Save” button.


# Editing a Form

1. Select a Site
2. Click App Name on site menu
3. Click “Manage Views” from “More…” drop down menu located on top right corner of page
4. Click update icon ![](https://my.worksmart.net/DL/images2/update.png) located in “Modify” column
5. Change all necessary details
6. Removing a field from form: Click delete icon ![](https://my.worksmart.net/DL/images2/delete.png) located in Field box in Form Field
7. Click “Save” button


# Deleting a Form

1. Select a Site
2. Click App Name on site menu
3. Click “Manage Views” from “More…” drop down menu located on top right corner of page
4. Click delete icon ![](https://my.worksmart.net/DL/images2/delete.png) located in “Delete” column
5. Click “Confirm” button in the confirmation box to remove the form


# Plug-ins

Plug-ins provide additional features to the app. Following are the plug-ins available with all Apps

1. Comments: Allow users to add comments on record
2. Attachments: Allows users to add file attachments on record
3. Approval Process: Provides approval process for app and/or record\<br< li=””>\</br<>
4. To-Dos: Allows users to add a To-Do list with record
5. Subscribers: Allows users to subscribe to a record to get up-to date email notifications for record activity
6. Votes: Allow users to vote a record
7. Record Views: Shows the total views of a record
8. Tags Cloud: Allows tagging to a record which can be then used to search records
9. Archive Record: Allows records to be archived so that it can be locked to prevent further changes to record

Each plug-in can be installed OR uninstalled by clicking “Install” OR “Uninstall” link respectively. This links are located in settings menu located in top right corner of each plug-in box.<br>


# Relationships

App can have relationship with other App via this feature.


# Lookup

This feature allows you to Lookup or pick a field value from another app. E.g. In Time Tracker App, Title is a Lookup field from Tasks Manager.


# Adding a New Lookup Field

1. Select a Site
2. Click App Name on site menu
3. Click settings icon on top right corner of page OR Click “App – Settings” from “More…” drop down menu located on top right corner of page
4. Click “Relationships” link in left hand menu
5. Click “New Lookup Field” button located on top right corner of page
6. Provide “Field Name”
7. Select Site which contains the App which has to be looked up
8. Select Reference App from which the field will be looked up
9. Select Reference Field which will be used as Lookup field
10. Click “Submit” button


# Editing a Lookup Field

1. Select a Site
2. Click App Name on site menu
3. Click settings icon on top right corner of page OR Click “App – Settings” from “More…” drop down menu located on top right corner of page
4. Click “Relationships” link in left hand menu
5. Click update icon ![](https://my.worksmart.net/DL/images2/update.png) located in “Edit” column
6. Change Field Name
7. Click “Submit” button

**Note:** Only Field Name can be modified for existing Lookup field. You cannot change other details


# Deleting a Lookup Field

1. Select a Site
2. Click App Name on site menu
3. Click settings icon on top right corner of page OR Click “App – Settings” from “More…” drop down menu located on top right corner of page
4. Click “Relationships” link in left hand menu
5. Click delete icon ![](https://my.worksmart.net/DL/images2/delete.png) located in “Edit” column
6. Click “Confirm” button in the confirmation box to remove the Lookup field


# Summary

This feature allows you to get summary (Total Or Average) of Lookup field from another app. The App has to be connected to another App via Lookup field.


# Adding a New Summary Field

1. Select a Site
2. Click App Name on site menu
3. Click settings icon on top right corner of page OR Click “App – Settings” from “More…” drop down menu located on top right corner of page
4. Click “Relationships” link in left hand menu
5. Click “New Summary Field” button located on top right corner of page
6. Provide “Field Name”
7. Select Site which contains the App which has to be summarized
8. Select Reference App from which the field will be summarized
9. Select Reference Field which will be used as summarized
10. Select Summary Type total (Total/Average/Min/Max)
11. Click “Submit” button


# Editing a Summary Field

1. Select a Site
2. Click App Name on site menu
3. Click settings icon on top right corner of page OR Click “App – Settings” from “More…” drop down menu located on top right corner of page
4. Click “Relationships” link in left hand menu
5. Click update icon ![](https://my.worksmart.net/DL/images2/update.png) located in “Edit” column
6. Change Field Name
7. Change Summary Type total
8. Click “Submit” button

**Note:** Only Field Name and Summary Type total can be modified for existing Summary field. You cannot change other details.


# Deleting a Summary Field

1. Select a Site
2. Click App Name on site menu
3. Click settings icon on top right corner of page OR Click “App – Settings” from “More…” drop down menu located on top right corner of page
4. Click “Relationships” link in left hand menu
5. Click delete icon ![](https://my.worksmart.net/DL/images2/delete.png) located in “Edit” column
6. Click “Confirm” button in the confirmation box to remove the Summary field


# User Permissions


# Levels of Access Controls

WorkSmart provides different ways on controlling and managing access to your data within your WorkSmart portal.

Following are the different ways of access management availbable in WorkSmart:

1. Contact Groups - the setup access permissions at all app level using Contact Group. Any user added to a Contact Group automatically gets access to all the apps where this Contact Group is setup as part of the User Permissions
2. All Site Members - this is a special group created for each site - Any user added to a site gets access to all the apps where "All Site Members" is setup as part of the User Permissions
3. Individual access - you can add access for a specific user to a specific app
4. Via User Based Field - if you have a User field in an app, you can enable access control based on that field. This is a very powerful feature where you can control access for each record based on the value of the User field of that record - so need to worry about setting up access in any other way.


# Sharing an App

You can share an App with current Site Members on Your Portal and with external contacts as well.

**Site Members**

You can share an App with site members so that they can view, edit, or comment on it. Depending on the rights you give, site members will be able to see changes made as they happen so that everyone can be on the same page and you can get feedback quickly.

1. Select Site
2. Go to App by clicking App name on the site menu
3. Click “Share” button located on top right corner of page
4. Click “Get Shareable Link” button located in “Site Members” area
5. To share the link with site members, click “Notify via Email” button
6. You can provide multiple site members by selecting site members from select box appearing when you click on “Recipients” section
7. Provide extra message to be attached to invitation email
8. Click “Send Email” to send email to selected site members which will contain the details of link

**Note:** Site members will need need to login to portal in order to access shared App

To add/remove/modify permissions who have access to App

1. Select Site

2. Go to App by clicking App name on the site menu

3. Click “Share” button located on top right corner of page

4. Click “User Permissions” button located in “Site Members” area

5. To modify existing permissions, select a permission from selected box next to the user name.

   There are Four types of permissions availabl&#x65;**.**

   1. **View/Comment – All**
      * User/Group can View and Comment on All Records.
   2. **View/Comment – Own + Modify – Own**
      * User/Group can Add New Records.
      * User can View, Comment and Edit Own Records Only.
   3. **View/Comment – All + Modify – Own**<br>
      * User/Group can Add New Records.
      * User can View, Comment and Edit Own Records.
      * User can View/Comment All Records.
   4. **View/Comment – All + Modify – All**
      * User can Add New Records.
      * User can View, Comment and Modify All Records.

6. To remove existing permission, click ![](https://my.worksmart.net/DL/images2/delete.png) to remove the permission

7. To add new site members, click “Browse – Site Members” button located on top right corner of “User Permissions” dialog.

8. Select/Unselect existing site members by clicking/unclicking onto the corresponding checkboxes

9. Click “Apply” on “Site Members” dialog

10. Click “Apply” on “User Permissions” dialog

**External Contacts**

You can allow external contacts to have access to App. To get the link via which external contacts can access to the App:

1. Select Site
2. Go to App by clicking App name on the site menu
3. Click “Share” button located on top right corner of page
4. Click “Get Shareable Link” button located in “External Contacts” area
5. To share the link with external contacts, click “Notify via Email” button
6. You can provide multiple external contacts by providing external email address in “Recipients” section followed by “Enter” key
7. Provide extra message to be attached to invitation email
8. Click “Send Email” to send email to external contacts which will contain the details of link

By default the link is open. That means no password is required and there is no expiry date set of the link. You can set a password and/or an expiry date for the shareable link as well.

1. Select Site
2. Go to App by clicking App name on the site menu
3. Click “Share” button located on top right corner of page
4. Click “Get Shareable Link” button located in “External Contacts” area
5. Click “Edit” button located on top right corner of “App – Access Settings” section
6. Provide “Password” and/or “Expiry Date”
7. Click “Apply”


# Sharing a Record

You can share a single record from an App with current Site Members on Your Portal and with external contacts as well.

**Site Members**

You can share an App with site members so that they can view, edit, or comment on it. Depending on the rights you give, site members will be able to see changes made as they happen so that everyone can be on the same page and you can get feedback quickly.

1. Go to App and open the record that you want to share
2. Click “Share” button located on top right corner of page
3. Click “Get Shareable Link” button
4. Click on “Recipients” and search for the user with whom you want to share the record.
5. If the contact/user does not exist in your addressbook, then you can add a new contact using the "Add New Contact" button
6. Provide extra message to be attached to email
7. Click “Send Email” to send email to selected user which will contain the link to the access the shared record

<figure><img src="/files/jPUEvbueUFyQI2wQITKx" alt=""><figcaption></figcaption></figure>


# Notification Settings

This section deals with email templates related to activities in the Database App. E.g. Adding, updating, deleting, assignment, approval, etc.

Each app comes notification email templates for different actions like "Record Added", "Record Updated", "Comment Added", etc.

This allows for automated emails to be sent out to users when some activity happens within the app.

&#x20;&#x20;


# Adding a new Email Template

1. Select a Site
2. Click App Name on site menu
3. Click “Settings” button located on top right corner page
4. Click “Notification Settings” link in left hand menu
5. Click “New Notification” button located on top right corner of page
6. Following is the details of each field:
   1. Title
   2. From: From address to be used in the notification
   3. To
   4. CC
   5. Email Subject: Subject line of the notification
   6. Live Updates Subject: Subject line to be used in Recent Updates
   7. Notify When: Select the event for which the the email notification will be used
   8. Status: Determines whether the email notification is active/inactive
   9. Body: Email body
7. You can insert following macros Body, Subject, and Live Updates Subject. Note that macros should be surrounded by curly brackets. The macros will be replaced with appropriate values by system at run time.<br>

   | **Portal Name**      | **{PortalName}** |
   | -------------------- | ---------------- |
   | Portal Owner         | {PortalOwner}    |
   | Portal Location      | {PortalLoc}      |
   | Site Name            | {SiteName}       |
   | Site Owner           | {SiteOwner}      |
   | Site Location        | {SiteLoc}        |
   | Application Name     | {AppName}        |
   | Application Owner    | {AppOwner}       |
   | Application Path     | {AppPath}        |
   | Application Location | {AppLoc}         |
   | Record Title         | {RecTitle}       |
   | Record Owner         | {RecOwner}       |
   | Record Details       | {RecDetail}      |
   | Record Location      | {RecLoc}         |
   | Action               | {Action}         |
   | Action User          | {ActionUser}     |
   | Update Field         | {UpdField}       |
   | Logged In User       | {LoggedInUser}   |
   | Last Comment         | {LastComment}    |
   | To-Do                | {CheckListItem}  |
   | Attachment           | {AttachmentLink} |
8. Click “Save” button


# Editing a Email Template

1. Select a Site
2. Click App Name on site menu
3. Click “Settings” button located on top right corner page
4. Click “Notification Settings” link in left hand menu
5. Click Edit icon ![](https://my.worksmart.net/DL/images2/edit.png) in the Edit column
6. Change all necessary details
7. Click “Save” button


# Deleting a Email Template

1. Select a Site
2. Click App Name on site menu
3. Click “Settings” button located on top right corner page
4. Click “Notification Settings” link in left hand menu
5. Click Edit icon ![](https://my.worksmart.net/DL/images2/delete.png) in the Delete column
6. Click “Confirm” in the confirmation box to remove the email template


# Turning a Email Notification as On/Off

1. Select a Site
2. Click App Name on site menu
3. Click “Settings” button located on top right corner page
4. Click “Notification Settings” link in left hand menu
5. Click Edit icon ![](https://my.worksmart.net/DL/images2/edit.png) in the Edit column
6. Change the Status to On/Off to turn email notification as active/inactive respectively
7. Click “Save” button


# Automation Rules

Automation Rules provides you the ability to automate your repetitive tasks.

Automation Rules provides you the **ability to automate your repetitive tasks.**

For example, you have a Task Manager app and it has got two fields

1\. `Status` – which shows the current status of the task like `Open`, `In Progress`, `Closed`\
2\. `End Date` – which shows the date when the task was completed.

You can define an automation rule to set `End Date` to today’s date when the `Status` is changed to `Closed`.

There are 3 types of Automation Rules you can define – User Based Rules, Record Based Rules and Time Based Rules.

Each Automation Rule can carry out one or more different type of actions depending on the type of the rule.


# Adding a new Rule

To add a new Automation Rule, follow the steps mentioned below :

1. Select your Site and then an App.
2. Go to “App Settings” under “Settings” of your App
3. From the left menu, go to either User Based Rules, Record Based Rules or Time Based Rules :
4. Click “New Rule” to add a new rule :
5. Add rule name and define Conditions & Actions for the rule :
6. Add/Remove Condition :
   1. To add new Condition, click “New Condition” button in Conditions section
   2. To remove a Condition, click delete icon “x” located next to condition
7. Add/Remove Action :
   1. To add new Action, click “New Action” button in Actions section
   2. To remove an Action, click delete icon “x” located next to action
8. Click “Save” to save your new rule.


# Edit a Rule

* To edit an existing Automation Rule, follow the steps mentioned below :&#x20;

1. Select your Site and then an App.&#x20;
2. Go to “App Settings” under “Settings” of your App :&#x20;
   1. From the left menu, go to either User Based Rules, Record Based Rules or Time Based Rules depending on where your existing rule is&#x20;
   2. Click “Edit” against the rule which you want to edit.
   3. Change rule name and/or add/delete Conditions or Actions for the rule.&#x20;
   4. Click “Save” to save your changes.


# Deleting a Rule

* To delete an Automation Rule, follow the steps mentioned below :

1. Select your Site and then an App. Go to “App Settings” under “Settings” of your App
2. From the left menu, go to either User Based Rules, Record Based Rules or Time Based Rules depending on where your rule is&#x20;
3. Click delete icon “x” located under “Delete” column.
4. Click “Confirm” button in the confirmation box to delete the rule.


# Custom Action Rules

* Custom Action Rules allow you to create flexible and powerful workflow process for your application.&#x20;
* By adding Custom Action Rules, you can take various actions for your application like update a field in the record, trigger an email notification, etc.
* To add a Custom Action Rule, follow the steps mentioned in [Adding a new Rule](/custom-database-apps/automation-rules/adding-a-new-rule).
* With Custom Workflows, you have to define a text to be displayed as a button and specify who can perform that particular Custom Workflow action. The Custom Workflow action will only be visible to the users if the user is mentioned in the rule or if the user belongs to a group mentioned in the rule.
* You can also define additional conditions to be checked for displaying the Custom Workflow action.
* Below example creates a Custom Action rule to display `Start Progress` button for any user who belongs to `Support Team` and the current status of the request is `New`.
* When the action is invoked, the status will be updated to `In Progress`.

You can following types of actions as part of your Custom Action Rules :

* [Update Record](/custom-database-apps/automation-rules/rule-actions/update-record)
* [Add Record](/custom-database-apps/automation-rules/rule-actions/add-record)
* [Apply Approval](/custom-database-apps/automation-rules/rule-actions/apply-approval)
* [Email Alert](/custom-database-apps/columns/column-types/email-address)


# Overview

Custom Action rules are the most powerful feature of WorkSmart which allows you to display customised action buttons based on different triggers/conditions and then take appropriate actions when a user interacts with that custom action button.

For example, you can setup a rule to display a button called "Start Work" for a support ticket using the following condition and action:

1. Who can perform action - this controls to who should see the custom action button - you can select a user, contact group and a column value from the record&#x20;
2. Condition - Define a condition as when the button should be made available - in above example, we only want to display the "Start Work" button when the Status field has a value of "Submitted"
3. Action  - Define an action which will be trigged when the "Start Work" button is clicked by the user - for example, you can directly change the status to "In Progress" or you can use the "Navigate To" action to open an edit session for the user to input further information when they are starting the work.


# Rule Conditions

* For Custom Action Rules, you must define a "Who Can Perform Action" value which controls who can see the button to perform that custom action
* Additionally you can also add extra conditions to compare the fields of the selected app or any connected apps of the selected app.


# Rule Actions

When it comes to Custom Action Rules, you have wide range of actions available which will be executed when the Custom Action button is clicked

Below are the actions available for Custom Action Rules :

* Navigate To
* Update Record
* Add Record
* Email Alert


# User Based Rules

User Based Rules allow you to define Automation Rule based on the user or his/her membership of a Workgroup.

* Defining Condition for User Based Rules
* Defining Action for User Based Rules


# Rule Conditions

* For User Based Rules, you can define conditions based on the `Current/Logged In User`.
* You can compare if the `Current User` `IS` or `IS NOT` a specific user from your “Site Members” or you can compare if the `Current User` `belongs to` or `does not belong to` a particular “Workgroup"
* Below example shows a User Based Rules condition which will execute the rule action if the `Current User` `does not belong to` the Workgroup “Managers”


# Rule Actions

You can define Actions of below types for your User Based Rules :

* Hide Fields
* View Only Field
* Required Fields
* Hide Choices


# Record Based Rules

Record change rules allows an App to change the value of a field based on changes happening to another field. E.g. In Tasks Manager, if the `%Completed = 100` then change the value of `Status` field to `Completed`.


# Rule Conditions

* For Record Based Rules, you can define conditions based on the fields of your App.
* You can compare the fields of the selected app or any connected apps of the selected app. You can also add multiple conditions and use `AND` – (all conditions must satisfy) or `OR` – (any one condition should satisfy).
* The above example shows two conditions must match (use of `AND`) in order for the rule’s action to be executed :

1. `Current Stock <= Minimum Stock`
2. `Category = Automotive`


# Rule Actions

When it comes to Record Based Rules, you have wide range of actions available which will be executed automatically (provided the condition of your rule is satisfied).

* Update Record
* Add Record
* Column Control
* Hide Form Page
* Apply Approval
* Add Subform Record
* Email Alert
* Delete Connected Records


# Time Based Rules

Time Based rules allows you to trigger actions when a `Date/Time` field happens to be after/before a set number of days/hour/weeks/months.

For example, you can setup an Email Alert action before 2 days of the `Target Response Time`

* Define Condition for Time Based Rule
* Define Action for Time Based Rule


# Rule Actions

When it comes to Time Based Rules, you have wide range of actions available which will be executed automatically (provided the condition of your rule is satisfied).

Below are the actions available for Time Based Rules :

* Update Record
* Add Record
* Email Alert
* Delete Connected Records


# Rule Conditions

For Time Based Rules, you can define conditions based on a `Date/Time` field of your App.

You can also add additional conditions to compare the fields of the selected app or any connected apps of the selected app.

The above example shows the rule setup to execute `2 days` `BEFORE` `Target Response Time` field:


# Periodic Rules

Periodic rules allows you to trigger actions periodically – Daily, Weekly or Monthly.

For example, you can setup a rule to update a field every Friday based on some conditions.

* Define Condition for Periodic Rule
* Define Action for Periodic Rule


# Rule Conditions

* For Periodic Rules, you can define a period when you want to execute some actions. You can define a frequency of the rule execution as `Daily`, `Weekly` or `Monthly`
* You can also add additional conditions to compare the fields of the selected app or any connected apps of the selected app.
* The above example shows the rule will execute `Every Friday at 5 PM` .


# Rule Actions

When it comes to Periodic Rules, you have wide range of actions available which will be executed automatically on a set periodic interval (provided the other condition(s) of your rule is/are satisfied).

Below are the actions available for Periodic Rules :

* Update Record
* Add Record
* Email Alert
* Delete Connected Records


# Rule Actions

When it comes to Record Based Rules, you have wide range of actions available which will be executed automatically (provided the condition of your rule is satisfied).


# Hide Form Tabs

If you have got multiple tabs in your form, Hide Form Tabs action allows you to hide the tabs if the Condition(s) of your rule is/are satisfied.

Below rule hides the tab `Categorization & SLA`<br>


# Update Record

Update Record action allows you to update fields for your app if the Condition(s) of your rule is/are satisfied.

Below rule simply means that `if Current Stock >= Minimum Stock` then set `Replenish Stock?` column value to `Yes`<br>


# Add Record

Add Record action allows you to add a record to any app (including the current app) if the [Condition(s)](http://worksmart.net/user-guides/dynamic-custom-apps/automation-rules/record-based-rules/rule-conditions/) of your rule is/are satisfied.

You need to define column mappings using the “Add Column” button. These column mappings are used during the rule execution to populate the data for the new/existing record.

You can also use “Add Record” action to update an existing record in some another app if that other app has a “Primary Key” defined and that primary key column is also defined in the column mappings

The above rule adds a new record to “Purchase Order” app in “Inventory & Order Management” site.

It populates three columns when adding the new record – left hand side columns are the target app’s columns (“Purchase Order” app) and the right hand side (a) columns are the source app’s columns (“Products” app) or (b) a custom formula or (c) actual/definite values :

1. `Product` is set to `Record ID from source app`
2. `Status` is set to actual/definite value `New`
3. `Manufacturer` is set to `Manufacturer from source app`
4. `Quantity` is set to actual/definite value `10`

**Add Column Mapping** :\
To add a new column mapping, click on “Add Column” button and select (a) “Column Value” for copying column value from the source app’s (“Products” app) or (b) “Formula” for a custom formula or (c) “Actual Value” for actual/definite values.

**Remove Column Mapping** :\
To remove a  column mapping, click on “X” button<br>


# Column Control

Column control action allows you to hide fields or make fields as required/mandatory if the [Condition(s)](http://worksmart.net/user-guides/dynamic-custom-apps/automation-rules/record-based-rules/rule-conditions/) of your rule is/are satisfied.

You can define below mentioned types of Column Control actions :

* Hide Fields
* View Only Field
* Required Fields
* Hide Choices


# Apply Approval

* Apply Approval action allows you to dynamically apply approval process to your records
* For example, if you have a Budgeting app and all your budget records are approved by Manager. But for any budget record that exceeds, say $10,000.00, you want the CEO to approve the record in addition to the Manager approval.
* So in this scenario, you will define your rule condition as Budget Amount > 10000 and then add “Apply Approval” action.
* **Important Note:** For “Apply Approval” action to work, your app must have the record level approval enabled.

**Adding Approval Steps:**

Follow the steps mentioned below :

1. Add condition(s) for your rule&#x20;
2. Click “New Action” and select “Apply Approval”&#x20;
3. In the approval setting popup, click on the default approval step “Approve”, click “Modify” and change the Title, Assigned To, Duration (optional) and Description (optional) – DO NOT click “New Step” when you are adding the first step&#x20;
4. After you have filled the first approval step details, click “Apply”, and then “Save” the rule.&#x20;
5. You must save the rule, every time you add an approval step or you modify an existing approval step in your rule action.&#x20;
6. Add another approval step, if required.

The rule looks like this after final changes :

Below is an example, where the approval was applied via Record Based rule :


# Add Subform Record


# Email Alert

WorkSmart allows you to configure email alerts for different events like “Add Record”, “Record Commented”, “Edit Record”, etc. But sometimes you need the ability to trigger email notification based on some criteria – `Product Stock < Minimum Stock`, `Accounts Status = Rejected` and so on.

Email Alert action allows you to setup email alerts with conditions as part of your Record Based Rule. You define a condition for your rule and the email alert will be sent when the [Condition(s)](http://worksmart.net/user-guides/dynamic-custom-apps/automation-rules/record-based-rules/rule-conditions/) of your is/are satisfied.

When defining, Email Alert action, you can either choose one of your existing email notification templates (email templates for “Add Record”, “Edit Record”) or you can define a custom email for your rule.

Selecting existing email template :

Or define a new custom email template for your rule :


# Delete Connected Records

* Delete Connected Records action allows you to automatically delete records from the connected app if the Condition(s) of your rule is/are satisfied. You can define rule to delete records from more than one connected apps.
* Consider you have “Project Directory” as the parent app and “Project Metrics” as child app where “Project Directory” is used as a lookup app. You can define the rule to delete the “Project Metrics” record for a given project whenever some column on “Project Directory” app is modified.


# Navigate To

"Navigate To" action has three types of navigation flows.

1. "Add Record" - will navigate the user to an add record form to a configured app
2. "Edit Record" - will open an edit session of the current record where you can edit the data of the current record
3. "View Record" - will open record of an app which is connected to the current record


# Conditional Formatting

* Conditional Formatting rules allows you to change the text colour and background colour of the data in the List view based on the Conditions defined as part of the rule.
* Below example shows a Conditional Formatting rule setup to change text colour of field `Driving License` when the `Driving License Expiry` date has already passed:


# Operator Precedence

When you add multiple Conditions to your Automation Rules using “And” and “Or”, the order in which you define the condition and the Operator determines how the final result is evaluated. Following rules are applied during evaluation :

1. AND has the higher precedence compared to OR meaning AND conditions are always evaluated first
2. For multiple AND conditions, the evaluation is done from the LEFT moving towards the RIGHT
3. For multiple OR conditions, the evaluation is done from the LEFT moving towards the RIGHT

Below is an example which demonstrates this. It is a single rule but it evaluates to different result based on the field values

The rule involves 2 fields where the field “Impact” should be equal to “High” and the field “Priority” should be either “Blocker” or “Critical”

**Scenario 1** :During the evaluation of “Impact = Low” and “Priority = Blocker”, it evaluates to FALSE as below :

**Scenario 2**: During the evaluation of “Impact = Low” and “Priority = Critical”, it evaluates to TRUE as below, **although you may assume it to evaluate to FALSE because Impact is not High**:<br>

**Conclusion:** In such cases, it is always best to split the rule into 2 separate rules.


# Workflow Process

Custom Workflows allow you to create flexible and powerful workflow process for your application. By adding Custom Workflows, you can take various actions for your application like update a field in the record, trigger an email notification, etc.

To add a Custom Workflow, follow the steps mentioned in [Add a new Rule](/custom-database-apps/automation-rules/adding-a-new-rule)

With Custom Workflows, you have to define a text to be displayed as a button and specify who can perform that particular Custom Workflow action. The Custom Workflow action will only be visible to the users if the user is mentioned in the rule or if the user belongs to a group mentioned in the rule.

You can also define additional conditions to be checked for displaying the Custom Workflow action.

Below example creates a Custom Workflow rule to display `Start Progress` button for any user who belongs to `Support Team` and the current status of the request is `New`.

When the action is invoked, the status will be updated to `In Progress`.

You can following types of actions as part of your Custom Workflows :

* [Update Record](/custom-database-apps/automation-rules/rule-actions/update-record)
* [Add Record](/custom-database-apps/automation-rules/rule-actions/add-record)
* [Apply Approval](/custom-database-apps/automation-rules/rule-actions/apply-approval)
* [Email Alert](/custom-database-apps/automation-rules/rule-actions/email-alert)


# Modifying Database App Details

1. Select a Site
2. Click App Name on site menu
3. Click settings icon on top right corner of page OR Click “App – Settings” from “More…” drop down menu located on top right corner of page
4. Click “Properties” link in left hand menu
5. Click “Change” button located below App details
6. Change all necessary details
7. Click “Save” button located below App details


# Save As Template


# Transferring Ownership of Database App

1. Select a Site
2. Click App Name on site menu
3. Click settings icon on top right corner of page OR Click “App – Settings” from “More…” drop down menu located on top right corner of page
4. Click “Properties” link in left hand menu
5. Click “Change” button located below App details
6. Click delete icon “x” next to owner name in Owner field
7. Search owner name by typing name and select it from list appearing below owner text box
8. Click “Save” button located below App details


# Exporting Data

Two types of Export options are available: Excel & PDF


# Excel

1. Select a Site
2. Click App Name on site menu
3. Click “Export to Excel” from “More…” drop down menu located on top right corner of page
4. Click “Open” button to view the file in Excel OR Click “Save” button to save the file onto your machine


# PDF

1. Select a Site
2. Click App Name on site menu
3. Click “PDF Report” from “More…” drop down menu located on top right corner of page
4. Four different settings are available for PDF file
   1. File Name
   2. Page Size
   3. Orientation
   4. Left Margin
   5. Top Margin
5. Click “Submit” button
6. This will open PDF Preview page. Two options are available
   * **Save to Folder**
     1. Click “Save to Folder” button located on top right corner of page
     2. Select destination site from “Select Site” dropdown box
     3. Select destination folder from “Select Destination” area
     4. Click “Select” button to select the location
   * **Download:** Click “Download” button to download PDF file


# Delete a Database App

1. Select a Site
2. Click App Name on site menu
3. Click “Delete” from “More…” drop down menu located on top right corner of page
4. Click “Confirm” button on the confirmation box to delete the Database App


# Formula Functions


# Formula Funtions

| Name                     | Arguments | Result | Description | Examples |
| ------------------------ | --------- | ------ | ----------- | -------- |
| **Text Functions**       |           |        |             |          |
|                          |           |        |             |          |
| **Number Functions**     |           |        |             |          |
|                          |           |        |             |          |
| **Date Functions**       |           |        |             |          |
|                          |           |        |             |          |
| **Formatting Functions** |           |        |             |          |
|                          |           |        |             |          |
| **Aggregate Functions**  |           |        |             |          |
|                          |           |        |             |          |
| **Database Functions**   |           |        |             |          |
|                          |           |        |             |          |


# Text Functions

| Name    | Catergory      | Arguments                                             | Result                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | Examples                                                                 |
| ------- | -------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------ |
| Chr     | Text Functions | <p>NUMBER </p><p>ascii\_code</p>                      | TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Returns a one-character text value containing the character specified by ascii.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | Chr(65) will return “A”                                                  |
| ConCats | Text Functions |                                                       | TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Returns the merged text value of all the arguments.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | ConCat(“abc”,”def”,”ghi”) returns “abcdefghi”                            |
| LTrim   | Text Functions | TEXT text, \[TEXT character\_mask]                    | TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Strip whitespace (or other characters) from the beginning of a text value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | LTrim(” abc “) will return “abc “ LTrim(“–abc—“, “-“) will return “abc—“ |
| Num     | Text Functions | TEXT text                                             | NUMBER                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Converts a text value to number if the text value contains only numeric characters and a decimal point.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Num(“8950”) will return 8950 in numeric form                             |
| RTrim   | Text Functions | TEXT text, \[TEXT character\_mask]                    | TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Strip whitespace (or other characters) from the end of a text value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | RTrim(” abc “) will return ” abc” RTrim(“–abc—“, “-“) will return “–abc” |
| Str     | Text Functions | DATABASE\_FIELD/MIXED variable                        | TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Returns text value of a variable.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | Str(“12345”) returns “12345” in text form                                |
| StrLen  | Text Functions | TEXT\_FIELD/TEXT text                                 | NUMBER                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Returns the length of the given text value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | StrLen(“Hello World”) returns 11                                         |
| SubStr  | Text Functions | TEXT\_FIELD/TEXT text, NUMBER start, \[NUMBER length] | <p> Returns the portion of text value specified by the start and<br>length parameters.</p><p><strong>TEXT\_FIELD/TEXT text</strong><br>The input text value. Must be<br>one character or longer.</p><p><strong>INTEGER start</strong><br>If start is non-negative, the<br>returned text value will start at the start’th position in text value, counting from<br>zero. For instance, in the text value ‘abcdef’, the character at position 0 is ‘a’, the<br>character at position 2 is ‘c’, and so forth.</p><p>If start is negative, the returned<br>text value will start at the start’th character from the end of text value.</p> | <p>If<br>text value is less than start characters long, FALSE will be returned.</p><p><strong>INTEGER</strong><br><strong>length</strong><br>If length is given and is positive, the text value returned will<br>contain at most length characters beginning from start (depending on the length of text<br>value).</p><p>If length is given and is negative, then that many characters will be<br>omitted from the end of text value (after the start position has been calculated when a<br>start is negative). If start denotes the position of this truncation or beyond, FALSE<br>will be returned.</p><p>If length is given and is 0, FALSE or NULL, an empty text value<br>will be returned.</p><p>If length is omitted, the substring starting from start until<br>the end of the text value will be returned.</p> |                                                                          |
| Trim    | Text Functions | TEXT text, \[TEXT character\_mask]                    | TEXT                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Strip whitespace (or other characters) from the beginning and end of a text value.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Trim(” abc “) will return “abc” Trim(“—abc–“, “-“) will return “abc”     |




---

[Next Page](/llms-full.txt/1)

