Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

Parsing External Signal Parameters

shiva_kumarp498
Level 2
Level 2

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

 

@namein ($(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  @name in ('id1',id2')

 

Any insights would be really helpful.

1 Accepted Solution
ramon_bisswanger
Correct answer by
Employee
Employee

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

View solution in original post

0 Replies
craigthonis
Employee
Employee

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

 

Regards,

Craig

ramon_bisswanger
Correct answer by
Employee
Employee

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

View solution in original post