Standard Functions or built in functions refers to specific function by name . Functions are available to all users of a project, If a project is imported, the same files and and functions from original project is available to the cloned project.
1) Functions are code sensitive 2) When you are using functions, the string objects must be enclosed in single quotes . |
Function | Description | Examples | |||
ADDXML(String xml) | This function adds XML structure to the present element. This function is used when the source application doesn't expose their fields in their API then a user can map the field by modifying the XML structure to post back. This will add the XML on the root node of the target XML structure. | Mapping: <TargetField> = { ADDXML("<xml element>" + VALUE("sourcefield") + "</xml element>");return "";} Example: Database fields The above query fetches id, firstname from contact table of the database. The table also has a field of "contactaddress" and so query will not populate the "contactaddress" field in the target schema. Name = {ADDXML("<address>" +VALUE("ContactAddress") + "</address>");return VALUE("Firstname");} However i can map the source field and the populate the source field data in to contactaddress column of database and this contactaddress field is written to the target application | |||
ADDXML(String xPath, String xml) | This function appends XML structure to the XPath passed. This function is used when the source application doesn't expose their fields through their API then a user can do the mapping for the field and parse the data | Let us take an example of custom field SalesRep__c on Opportunity in Salesforce. We have to map this field to SalesRep custom field on QuickBooks online.To map this field, type custom field name(SalesRep) in the target area(QuickBook online) and add below given query in the source field. Mapping: <TargetField> = { ADDXML("<CustomField><DefinitionId>2</DefinitionId><Name>SalesRep</Name><Type>StringType</Type><StringValue>"+VALUE("SalesRep__c")+"</StringValue></CustomField>"); return ""; } Where: <Name>SalesRep</Name> : The custom field name in QuickBooks online. <StringValue>"+VALUE("SalesRep__c")+"</StringValue> : The custom field in Salesforce. | |||
AND (boolean booleanExp1, boolean booleanExp2) | This function used to check more than one condition/expression at the same time and returns true only if both conditions are satisfied; else returns false. | Mapping: <TargetField> = AND(booleanExp1,booleanExp2) From the above example, The function returns true for all the records which are having "stage" as "Closed Won" and Type as "Key Account". | |||
ASNUMBER(String value) | This function checks if a supplied value is a number and returns the actual number passed; else returns zero. | MAPPING: <TargetField> = ASNUMBER("String") If the value for the number of employees is null or empty it will return zero. In this example, it will return 123 as a number. | |||
CLEAN(String s1, String s2) | This function removes all non-printable characters from a supplied string value. | Mapping: <TargetField> = CLEAN("String VALUE") TODO:THIS IS WRONG - please check | |||
CONCATENATE(String... strings ) | This function allows you to join two or more text strings together. | Mapping: <TargetField> = CONCATENATE("String1", "string2", "string3") Example: passing text values <TargetField> = CONCATENATE("It's", "raining ", "heavily ", "outside.") The value returned by the function from the above example is "It's raining heavily outside." | |||
CODE(String s) | This function returns the numeric code of the first character of a supplied text value. | Mapping: <TargetField> = CODE("text value") Example 2: <TargetField> = CODE("Salesforce") TODO:THIS IS WRONG - please check | |||
DATE(String dateString) | This function reads a date string and returns it in the format of "yyyyMMdd-HHmmssZ". | Mapping: <TargetField> = DATE("date string") Example : <TargetField> = DATE("03-12-2010 12:33:21") The value returned would be transformed as "20101203-123321" | |||
DATE (String dateString, String inputFormat) | This function reads a date string and returns the date string as per user specified date format. If user specified date format is not passed then it passes date string as "yyyyMMdd-HHmmssZ". | Mapping: <TargetField> = DATE(VALUE("source field"), "format string") | |||
DATE(String dateString, String inputFormat, String outputFormat) | This function reads a date string and returns the date string as per user specified date output format. If the user specified date input format is not passed then it returns date string as "yyyyMMdd-HHmmssZ". | Mapping: <TargetField> = DATE(VALUE("source field"), "source format", "target format string") <TargetField>= DATE(DATE(VALUE("createddate"),"yyyy-MM-dd hh:mm:ss"),"yyyy-MM-dd'T'HH:mm:ss'Z'") | |||
DOLLAR(Arg 0) | Not implemented yet | ||||
EQUALS(String v1, String v2) | This function compares two given string values and returns true if both the values are exact match otherwise false(case-insensitive). | Mapping: <TargetField> = EQUALS(VALUE("CurrencyISO"),"USD") This function compares USD in CurrencyISO field for USD value and if found then it returns true; else false. TODO: Example missing | |||
ERROR() | This function can be used to get the error message for errors during writing to target. This is used in Status write back once an attempt has been made to write the record to the target. | Mapping: <TargetField> = ERROR() Example : Error while processing the state TODO: Example missing | |||
EXACT(String str1, String str2) | This function compares two given string values and returns true if both the values are exact match otherwise false(case-sensitive). | Mapping: <TargetField> = EXACT(VALUE("SourceField1"), VALUE("SourceField2")) The above example will return true as the value of first attribute is "Chris" and the value of second attribute is also "Chris". | |||
FAST_TLOOKUP(String query) | This function looks up a given Id from a passed query and returns the corresponding value. | Mapping: <TargetField> = FAST_TLOOKUP("select id from account where writer_name = { reader_name } and writer_code = { reader_code }") @return value of the return_col based on the where_clause, else it would return empty value TODO: NOT CLEAR - explain when to use and how to use | |||
FIND(String findText, String withinText) | This function returns the position of the first string parameter within the supplied second string parameter. | Mapping: <TargetField> = Find(VALUE("SourceField1"), VALUE("SourceField2")) In this example, pass the first string as "arch" and second string as "search". The FIND() function will return the position of "arch" in "search". The FIND() function will return 3 as the value. Note: If the findText parameter finds value in withinText parameter more than once, then the function returns the position of very first existence. | |||
FIND(String findText, String withinText, int startNum) | This function returns the position of the first string parameter within the supplied second string parameter from the passed start index. | Mapping: TargetField = FIND(VALUE("SourceField1"), VALUE("SourceField2"), "Start Position") In this example, pass the first string as "arch" and second string as "search". The FIND() function will search the string "arch" in "search" starting from the 2nd position of the "search" string and return the position of "arch" in "search". The function return 3 and first two characters of the string "Search" i.e. 's' and 'e' are ignored.
| |||
FIXED (Double) | This function rounds the decimal values up to two digits and returns the round off value. | Mapping: <TargetField> = FIXED("sourcefield") In the price field the value passed is 12.6789 so the FIXED() function will return the price value as 12.68 | |||
FIXED (Double, Integer) | This function rounds a supplied number to a specified number of decimal places. | Mapping: <TargetField> = FIXED("sourcefield",1) In the price field the value passed is 14.789 so the FIXED() function will return the price value as 14.8 | |||
FIXED (Double, Integer, Boolean) | Not supported | ||||
FORMAT(String value, String format) | This function transforms the numeric string passed in the first parameter based upon the format passed in the second parameter and returns the transformed number as a string. | Mapping: <TargetField> = FORMAT("SourceField", "Format String") <TargetField> = FORMAT(210.6,"#,##0.00") In the price field the value passed is 210.6 so the FORMAT() function will return the price value as 210.60 TODO: #,##0.00 - check if this format will return as above ?? | |||
GETROOTVALUE(String elementName) | This function returns the immediate parent node of XML element. | Mapping: <TargetField> = GETROOTVALUE("SourceField1") <TargetField> = GETROOTVALUE(VALUE("Name")) <Contact> The "Name" value will be compared in the XML and if found returns the parent node | |||
GETSOURCEXML2STRING() | This function returns the string formatted XML structure of the row. | Mapping: <TargetField> = GETSOURCEXML2STRING() The XML elements are returned as a string. Please Review | |||
GETSOURCEXML2STRING(String elementName) | This function returns the string formatted XML structure of the row, for the element name passed. | Mapping: <TargetField> = GETSOURCEXML2STRING("elementname") <TargetField> = GETSOURCEXML2STRING(VALUE("InvoiceRet")) The "InvoiceRet" node element is found in the xml and returned as a string. Please Review | |||
IF(Boolean condition, String trueValue, String falseValue) | This function tests the user-defined condition and returns one result if the condition is true, and another result if the condition is false. | Mapping : <TargetField> = IF(String,Integer,String) In this case the IF function checks the value of Rate to be empty then it returns 0.00 or else it returns original rate value from the Rate field. | |||
ISEMPTY(String s) | This function returns true if the variable is unintialized or explicity set to empty; otherwise it returns false. | Mapping: <TargetField> = ISEMPTY("sourcefield") In the above example, the first name field has a value of "Alan" so the function ISEMPTY() returns true. | |||
ISNULL(String s) | This function checks if the passed value is null then returns true; else, returns false. | Mapping: <TargetField> = ISEMPTY("sourcefield") <TargetField> = ISNULL(VALUE("lastname")) In the above example, the first name field has a value of "Alan" so the function ISNULL() returns false. | |||
LEFT (String var) | This function returns the first character of the supplied string which is on left hand side. | Mapping: <TargetField> = LEFT(VALUE("SourceField")) <TargetField> = LEFT("search") In this example, pass a string as "search". The LEFT() function returns the value as "s" which is on the extreme left of the string "search". | |||
LEFT(String var, int count) | This function returns the specified number of characters from the left of the given string. | Mapping: <TargetField> = LEFT(VALUE("SourceField1"), noofcharacters) <TargetField> = LEFT("search",3) In this example, pass the first parameter as "search" and second parameter as 3. The LEFT() function will return three characters from the left of the parameter "search" and the function returns "sea". Note: If the length of the passed string is less than the second parameter then the function will return a full string as a result. | |||
LEN(String var) | This function returns the length of the given string. | Mapping: <TargetField> = LEN(String) <TargetField> = LEN("search") In this example, pass the string as "search". The LEN() function will returns result as '6' which is the length of string "search". | |||
LINK(String colName, String value)
| This function reads the second parameter passed through this function and sets it as an attribute to the column name which is passed through the first parameter. | Mapping: <TargetField> = LINK(VALUE("SourceField1"), VALUE("SourceField2")) <TargetField> = LINK(VALUE("Name"), VALUE("Id")) In "Name" node, the "Id" value will be assigned as an default value and the returned value is an object. | |||
LINK(String colName, String query, String fieldName, String refValue, String objectName) | The Link function is used to update Salesforce (Target) field with a source value based on the source identifier that remains unique across Salesforce (Target) as well as Source (Ex: Quickbooks) application | Example: Mapping:
| |||
LINK(String colName, String query, String fieldName, String refValue, String objectName, String valueField) Note: This function is deprecated and an alternative function could be MEMLOOKUP orTLOOKUP functions. | Do not know the description | Mapping: <TargetField> = LINK(VALUE("SourceField1"), VALUE("SourceField2"), VALUE("SourceField3"), VALUE("SourceField4"),VALUE("SourceField5"),VALUE("SourceField6")) Example : <TargetField> = LINK(VALUE("Name"), VALUE("Id"), VALUE("Phone"), VALUE("Id"), VALUE("Website"), VALUE("PhotoUrl")) In "Name" node, default attribute values are set in order as "Id" value for "sql", "Phone" for "KeyField", "Website" for "ObjectIs", "PhotoUrl" for "ValueField". The last but second attribute refValue, here it is "Id", will be returned back. | |||
LOG() This is not in function2base | This function is used to print the value of a parameter passed to DBSync console. It can be used for debugging purpose. | Mapping: <TargetField> = LOG(VALUE("SourceField")) Example : <TargetField> = {LOG("********ChainId"+LEFT(VALUE("Udf_Pa_Pricing"),20));return LEFT(VALUE("Udf_Pa_Pricing"),20);} The log function gets the value of the target field "udf_pa_pricing" to while performing write operation and can be viewed in logs section for debugging whenever there is an error. | |||
LOOP | This function is different from the conventional '=' operator to map source and target. | Example1: Salesforce Oppotunity LineItems to QuickBooks Invoice LineItems
| |||
LOOKUP(String adapterName, String queryString) | This function searches for a specific value in the source connector where the condition is passed in the form of a query to be searched on the first parameter. | Mapping: <TargetField> = LOOKUP("sourceconnector" , "querystring") Example:<TargetField> = LOOKUP("Salesforce","select Id from Account where Name='Test'") The above example with fetch the Id from account object of Salesforce from the source application and assigns it to the target field whenever the name field has a value of "Test" | |||
LOWER (String var) | This function converts all character in a given string to lowercase. | Mapping: <TargetField> = LOWER(String) The function will return "SEARCH" as "search". | |||
LPAD(String text, String pattern, int pad) | This function is used to pad left side of a string with the specific set of characters. The integer is the total length of the string returned after padding. | Mapping: <TargetField> = LPAD(VALUE("SourceField"), "string", Int) The function would return result as "tech on the net"
| |||
LSPLIT(String text, String splitter) | This function returns the split value of the string starting from left side of a string till the splitter value. | Mapping: <TargetField> = LSPLIT(VALUE("SourceField"), "string")
| |||
MAP(String key, String...mapEntries) | This function returns the value against the key passed from the key-value pair(s) passed via second parameter of the function. | Mapping: <TargetField> = MAP(VALUE("string1", "string2", string3, string4) Example: <TargetField> = MAP("myKey", "a=b", "c=d", "myKey=myValue") The MAP function will return "myValue". If key is not present in any of the key-value pairs then function will return empty string. | |||
MEMLOOKUP(String cacheIdentifier, String query) | This function uses unique identifier of a query i.e cacheIdentifier which would load up the dataset for a lookup.This function creates a table in memory for returning the value of a lookup. | Mapping: <TargetField> = MEMLOOKUP(StringCacheIdentifier, StringKey) <TargetField> = MEMLOOKUP("AccountID",VALUE("SourceField") )
<TargetField> = MEMLOOKUP("AccountID", VALUE("SourceField") ) In this example, AccountID is the memory table created on dbAccount table of database using MEMTABLE() function. | |||
MEMLOOKUPREGEX(String cacheIdentifier, String key, String regex) | A variant of the MEMLOOKUP function which takes an additional parameter i.e. regex, returns the value of only those key which matches with regex. | The value whose key starts with prefix, or null if not available This need to be fixed | |||
MEMTABLE(String cacheIdentifier, String query) | This function creates a memory table in the system with key-value pair of the query passed through this function. | MAPPING: <TargetField> = VALUE("SourceField") + MEMTABLE(StringCacheIdentifier, StringQuery) <TargetField> = VALUE("SourceField") +MEMTABLE("AccountID","Select ID, Name from dbAccount") In this example, select ID and name value from dbAccount table for all records in dbAccount Table. This need to be fixed. | |||
MID(String text, Int startNum, Int numChars) | This function extracts a substring from the string and returns the substring. | Mapping: <TargetField> = MID(VALUE("sourcefield"), startnum, numchars) Example : <TargetField> = MID(VALUE("Firstname"), 6, 5) In this example the value of "Firstname" is "christopher" , So the functions returns the five characters of the "christopher" beginning with the sixth character from the left. The result is "tophe". | |||
NOTEQUALS(String v1, String v2) | This function compares the value with another value and returns true if it is not equals else returns false | Mapping: <TargetField> = NOTEQUALS("string1","string2") Example : <TargetField> = NOTEQUALS(VALUE("CurrencyISO"),"USD") This function compares "USD" against all the values of "CurrencyISO" field and it's start the function finds there is an value of "USD" to which it returns true. | |||
NUMBER(String text) This is not in UI | This function returns an integer value of the string passed to it. | MAPPING: <TargetField> = NUMBER("String") If the value of "numberofemployees" field is null or empty then the function returns zero. | |||
OR(boolean exp1, boolean exp2) | This function evaluates the conditions passed through the function and returns true if any one of condition evaluates to true; otherwise, returns false. | Mapping: <TargetField> = OR(Boolean, Boolean) In the above function the firstname has a value "Alan" and last name has a value "Chris" and Id field has a value of 456 which is not equivalent to 123 and hence, the function returns false. | |||
PARAM(String name) | This function PARAM extract the values from session which is in the format PARAM.SOURCE_Object.Variable=PARAM.TARGET_Object.Variable and returns the variable value. | Mapping: <TargetField> = PARAM(''string'') Example :<TargetField> = PARAM(VALUE("Description")) If the value of "Description" starts with "PARAM" and the value is present in the session, then the third text literal is extracted and returned. | |||
PARAM_PARENT(String name) | This function PARAM extract the values from the session which is in the format PARAM.SOURCE_Object.Variable=PARAM.TARGET_Object/Variable and return the parent value. | Mapping: <TargetField> = PARAM_PARENT(''string'') Example: <TargetField> = PARAM_PARENT(VALUE("Description")) If the value of "Description" starts with "PARAM" and the value is present in the session, then the second text literal is concatenated with "/" and third text literal and returned. | |||
PARENTVALUE(String name) | This function reads any node element and returns immediate parent value of the node element passed. | Mapping: <TargetField> = PARENTVALUE("sourcefield") Example : Salesforce object fields
<TargetField> = PARENTVALUE("Account/Name") This function to retrieves the value of the Account Name which is a lookup against each opportunity and returns to assigned target field. | |||
PARENTVALUEATTR(String path, String attr) | This function reads the passed node element and returns attributes of the immediate parent node. | Mapping: <TargetField> = PARENTVALUEATTR("stringpath","attr") Example : <TargetField> = PARENTVALUE("CustomerRef","Name") <CustomerRef> <Name>Alan</Name> </CustomerRef> In this example the the CustomerRef object has a Name field in the form of the XML and will return the value as "Alan". | |||
PROPER(String text) | This function reads a string and converts the first letter of a word to upper case and rest of alphabets in a word to lower case.This is used to represent camel notation | Mapping: <TargetField> = PROPER("SourceField1") In this example, Pass string "search" as the parameter then the function returns the result as "Search". | |||
REPLACE (String oldText, Int startNum, Int numChars, String newText) | This function replaces a full string or a part of string text with another text string from the position sent through parameter i.e. startNum. | Mapping: <TargetField> = REPLACE(VALUE("SourceField1), 1, 5, "replace string") <TargetField> = REPLACE("seaaarch",3,3,"a") In this example, Pass string "search" as the first parameter, 3 as start number for the second parameter, 3 as a number of characters to be replaced for third parameter and "a" as the replace string. The REPLACE() function will replace three characters from third character to fifth character in the string. The resulting string returned by function will be "search". | |||
REPT(String text, Int numberOfTimes) | This function returns a string consisting of a supplied text string, repeated specified number of times. | Mapping: <TargetField> = REPT(VALUE("sourcefield"), 2)
| |||
RIGHT(String var) | This function returns a right most character of the string value passed. | Mapping: TargetField = RIGHT(String) | |||
RIGHT(String var, Int count) | This function returns a specified number of characters from the end of a supplied text string. | Mapping: <TargetField> = RIGHT(VALUE("SourceField1"), NoOfCharacters) | |||
RPAD(String var, String value, Int size) | This function returns a string after padding the input string with extra characters from the right side. The user can pass the size of the input string till which the padding should be done. | Mapping: <TargetField> = RPAD(VALUE("SourceField1"), "string", Int) The function would return result string as "tech on the net" The function would return result as "tech on the net000" | |||
RSPLIT(String var, String splitter) | This function takes splitter text and compares it with the variable text. The function splits variable text basing on splitter text and returns character after the splitter text to the right. | Mapping: TargetField = RSPLIT(VALUE("SourceField"), "string") This function would return result string as return "net" | |||
SEARCH(String findText, String withinText) | This function returns the position of a supplied text string from within a supplied text string. | Mapping: <TargetField> = SEARCH(VALUE("SourceField1"), VALUE("SourceField2")) | |||
SEARCH(String findText, String withinText, int startNum) | This function returns the position of a supplied text string from within a supplied text string for which starting position can be specified. | Mapping: <TargetField> = SEARCH(VALUE("SourceField1"), VALUE("SourceField2"), "Start Position") <TargetField> = SEARCH("arch","search",2) | |||
SESSION_GET(String name) | This function returns the value of the key stored in the session of that particular process or workflow. | Mapping: <TargetField> = SESSION_GET("KEY") Example: Retrieving the "key" stored in the session CustomerAddRq/CustomerAdd/Name = SESSION_GET("Account_Name") | |||
SESSION_PUT(String name, String value) | This function stores the key/value pair in the session of that particular process or workflow which is active. This function can only work active workflows within DBSync. | Mapping: <TargetField> = SESSION_PUT("KEY","VALUE") Example: Storing a static value (Account_Name) in the session | |||
SETATTR(String colName, String attName, String attValue, String colVal) | This function sets the column with an attribute of name and value as specified. The column value would be set as specified in the colVal. This function can only be applied when writing to salesforce for pricebook object. | Mapping: <TargetField> = SETATTR(TargetField, TargetobjectName, Targetobjecttype, sourcefield1) Example :SETATTR("PricebookEntryId","pricebook","Standard Price Book",VALUE("ItemRef/FullName")) This function is used to query pricebook object i.e.( select pricebookentryid where name=standardpricebook and itemref/fullname = pricebookentryid) and if these condition is satisfied it returns the value of pricebookentry id and assigns it to the mapped target field. | |||
SUBSTITUTE(String str, String oldStr, String newStr) | This function replaces all occurrences of a string, within an old string, with the passed new string. | Mapping: <TargetField> = SUBSTITUTE("sourcefield", "string1", "string2") Example: <TargetField> = SUBSTITUTE(VALUE("FirstName"), "John" "Alan") | |||
SUBSTITUTE(String str, String oldStr, String newStr, int occurrences) | This function replaces the specified number of occurrences of a string, within an old string, with the passed new string. | Mapping: <TargetField> = SUBSTITUTE("sourcefield", "string1", "string2", occurences) Example : TargetField = SUBSTITUTE(VALUE("FirstName"), "John" "Alan",2) In the above example the firstname field which are having values as "John" with "Alan" for the first two occurrences only. | |||
TEXT(Arg 0, Arg1) | Not Currently Implemented | ||||
TLOOKUP(String queryString) | Returns the value for the column in the query. In the query, only one column can be specified. | Mapping: <TargetField> = TLOOKUP(stringQuery) | |||
TODAY() | This function returns Today's date.Format returned from TODAY() is "Day Mon DD HH:MM:SS TTT YYYY" | Mapping: <TargetField> = TODAY() | |||
TRIM(String value) | This function returns a text value with the leading and trailing spaces removed. | Mapping: <TargetField> = TRIM(VALUE("sourcefield")) TargetField = TRIM(VALUE("FirstName")) In the above example the field of "firstname" has a value " John" so the TRIM() function will remove the leading space and will return result as "John" | |||
UNIQUEFIELD(String colName, String value, String colValue) | This function sets the column with the column value and attribute with the unique field value and returns as an object. | Mapping: <TargetField> = UNIQUEFIELD(sourcefield, stringvalue, sourcefield value) Exmaple : <TargetField> = UNIQUEFIELD(VALUE("Name"), VALUE("Id"), VALUE("Phone")) In "Name" node, the "Id" value will be added as "uniquefield" attribute's value and the last attribute is returned as an object. | |||
UPPER(String text) | This function converts all the character in a passed string to upper case. | Mapping: <TargetField> = UPPER(String) | |||
VALIDATEROW() | This function returns true and is used only for validation of a rule section to check whether any conditon is satisfied | Mapping: <TargetField> = Conditional Statement Example: <VALIDATEROW> = IF(ISEMPTY(VALUE("OpportunityId")),"true","false") This condition will execute a row only if the field of "opportunityid" has a value and returns true; else false. In the above example the opportunitydid has a value of null and returns false. | |||
VALUE(String xPath) | This function converts the input parameter to be read as string and returns the passed value as string. | MAPPING: TargetField = VALUE("SourceField") | |||
VALUE(String xPath, boolean treatAsEmpty) | This function converts the input parameter to be read as string and returns the passed values as string. The function returns empty string if there is parameter has no value in it. | MAPPING: TargetField = VALUE("SourceField", true) XML Sample : <person gender = "female"> <firstname>Alan</firstname> </person> <TargetField> = VALUE("person/firstname", true) In the above example as the "firstname" attribute has a value of "Alan" so the function will return "Alan" as example. For better understanding lets assume if the firstname has no value in the attribute so the function returns the string as empty string as second parameter is set to true. | |||
VALUEATTR(String xPath, String attr) | This function takes a path and attribute name on it and returns the actual value of the attribute. | Mapping: TargetField = VALUEATTR("xpath","name") XML Sample : <person gender = "female"> <firstname>Alan</firstname> </person> <TargetField> = VALUEATTR("person", "gender") In the above example the function returns second passed attribute value i.e. female from the xml sample. |