Parsing External Signal Parameters | Community
Skip to main content
shiva_kumarp498
Level 2
March 29, 2021
Solved

Parsing External Signal Parameters

  • March 29, 2021
  • 2 replies
  • 1324 views

Dear All,

 

I created a workflow where query activity retrieves IDs passed to an External signal activity. My question is I am unable to parse the IDs relevant to query criteria. Below is the syntax of the query condition

 

@2175539in ($(vars/@ids))

 

what I am passing in external activity is  id = "id1','id2"

 

$(vars/@ids) gets parsed to 'id1\',\'id2'

 

I know that it is escaping single quotes with a backward slash, which I wanted to avoid, and also I tried to use replace function of ACS which was not working as expected, below is the syntax for the same.

 

Replace($(vars/@ids),'\\','')

 

I am expecting the following desired output.

 

$(vars/@ids) = 'id1','id2' which would fit perfectly in my query criteris i. e  @2175539 in ('id1',id2')

 

Any insights would be really helpful.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by bisswang

Unfortunately you can't achieve what is intended.

For security purposes, any string / variable used in a query is automatically escaped.

You can't use a single input string and use that in an "in" statement.

 

What you could try is:

  • bring in the comma separated values
  • Then use a condition like ',' + ($(vars/@ids)) + ',' LIKE '%@name%'
  • Though note that this won't be able to use any DB index, so shouldd be used with care

2 replies

Craig_Thonis
Adobe Employee
Adobe Employee
March 30, 2021

Hi Shiva,

 

Why are you trying to pass IDs to the external signal activity? The point of this activity is to be started from another workflow.  Now it can be started with expected parameters per below but I don't think that its expected to be able parse out IDs from the previous query.

 

https://experienceleague.adobe.com/docs/campaign-standard/using/managing-processes-and-data/calling-workflow-external-parameters/declaring-parameters-external-signal.html?lang=en#managing-processes-and-data

 

Regards,

Craig

bisswangAdobe EmployeeAccepted solution
Adobe Employee
April 5, 2021

Unfortunately you can't achieve what is intended.

For security purposes, any string / variable used in a query is automatically escaped.

You can't use a single input string and use that in an "in" statement.

 

What you could try is:

  • bring in the comma separated values
  • Then use a condition like ',' + ($(vars/@ids)) + ',' LIKE '%@name%'
  • Though note that this won't be able to use any DB index, so shouldd be used with care