Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Build SOQL query with Like operator and how to use in flow action.

Pushpa latha
Tera Contributor

Hi Everyone,

 

I am trying to fetch the active customer details by using Like operator from Salesforce. but i am getting errors in pre processing step in flow action. This is query used in flow action

var query ="?q=Select Name,Id,DTN_Text__c from+Account+where+Name +like+ '%' + name + '%'" ;

actual SOQL query: select Name, Id where Name like '%test%'  and status_c='Active'

 

Please, can any one help on this.

Thanks in Advance.

1 REPLY 1

-O-
Kilo Patron

Running

 

;
(function () {
	const QUOTED_STRING_ESCAPE_SEQ = {
		'\r': '\\R',
		'\n': '\\N',
		'\t': '\\T',
		'\x07': '\\B',
		'\f': '\\F',
		':': '\\"',
		'\'': '\\\'',
	};

	const QUOTED_LIKE_ESCAPE_SEQ = Object.extend(QUOTED_STRING_ESCAPE_SEQ, {
		'_': '\\_',
		'%': '\\%',
	});

	var name = '100%_ACME Inc.',
		queryTemplate = "?q=SELECT name, id, dtn_text__c FROM Account WHERE name LIKE '%{0}%' AND status_c = 'Active'",
		query = formatString(queryTemplate, [escapeStringForLikeQueryOperand(name)]);

	gs.debug(query);

	function escapeStringForLikeQueryOperand (string) {
		return String(string)
			.replace(/[\\]/g, '\\\\')
			.replace(/([\r\n\t\x07\f"'_%])/g, getByMemberReplacer(QUOTED_LIKE_ESCAPE_SEQ));
	}

	function formatString (template, replacers) {
		return String(template).replace(/\{\s*(\d+)\s*\}/g, getByIndexReplacer(replacers));
	}

	function getByIndexReplacer (replacers) {
		return function replace (fullMatch, captureGroup_1) {
			return replacers[+captureGroup_1] == null ? fullMatch : replacers[+captureGroup_1];
		};
	}

	function getByMemberReplacer (replacers) {
		return function replace (fullMatch, captureGroup_1) {
			return replacers[captureGroup_1] == null ? fullMatch : replacers[captureGroup_1];
		};
	}
})();

 

in Scripts - Background prints:

 

*** Script: [DEBUG] ?q=SELECT name, id, dtn_text__c FROM Account WHERE name LIKE '%100\%\_ACME Inc.%' AND status_c = 'Active'