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
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'