Dynamic CTX payload | Community
Skip to main content
vraghav
Adobe Employee
Adobe Employee
December 27, 2016
Solved

Dynamic CTX payload

  • December 27, 2016
  • 3 replies
  • 2412 views

My question is related to Message Center. Is it possible to substitute a ctx node value into another node at the time when our event call is being bound to the delivery template?

Let's say I wish to send a SOAP event to MC using payload like the following: 

<ctx>
    <recipient> 

        <firstName>xxxxx</firstName>
        <fullName>Full Name is equal to: <%= ctx.recipient.firstName%></fullName>

    </recipient>
</ctx>

Inside the template I've used <%= rtEvent.ctx.recipient.fullName %>
When I'm trying to send the SOAP call, the output is coming as "Full Name is equal to: " and the firstName section is blank.

I'm pretty sure that my implementation is wrong and maybe it is not possible at all, but still will look forward to your inputs.

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 Amit_Kumar

Hi Vipul,

What you doing is not possible as <%= ctx.recipient.firstName%> will not be available in xml object definition of ctx.
this is similar to asking 
var foo = {
    a: 5,
    b: 6,
    c: this.a + this.b  // Doesn't work using a reference inside the definition. this reference will be available outside this definition.
};

and moreover this is against the current XSL for this xml.

Regards,
Amit

3 replies

Amit_Kumar
Amit_KumarAccepted solution
Level 10
January 3, 2017

Hi Vipul,

What you doing is not possible as <%= ctx.recipient.firstName%> will not be available in xml object definition of ctx.
this is similar to asking 
var foo = {
    a: 5,
    b: 6,
    c: this.a + this.b  // Doesn't work using a reference inside the definition. this reference will be available outside this definition.
};

and moreover this is against the current XSL for this xml.

Regards,
Amit

vraghav
Adobe Employee
vraghavAdobe EmployeeAuthor
Adobe Employee
January 3, 2017

Hi Amit,

Even I had this understanding but then was curious to know if someone has actually found a workaround to it.

Thanks for taking a look into it.

Regards,

Vipul

Level 2
March 3, 2021

Hi

 

I got it to work by doing something like this:

 

var count = 3;

 

<% for (var i = 0; i < count; i++){

 

 var name = "item" + i %>

<%= rtEvent.ctx[name] %>

 

<% } %>

 

 

<ctx>

<item1> a </item1>

<item2> a </item2>

<item3> a </item3>

</ctx>