Expand my Community achievements bar.

Join us for the Adobe Campaign Community Q&A Coffee Break on 30th September at 8 am PT with Campaign experts Arthur Lacroix and Sandra Hausmann.
SOLVED

How to log into journal and store open ratio of deliveries using javascript

Avatar

Level 3

Hi Everyone,

 

I'm facing an issue in displaying and storing the value of open ratio using JavaScript. I have used the below code, please let me know where i'm wrong.

 

// query the database to find the winner (best open rate)
var winner = xtk.queryDef.create(
<queryDef schema="nms:delivery" operation="get">
<select>
<node expr="@id"/>
<node expr="@label"/>
<node expr="@internalName"/>;
<node expr="[@operation-id]" alias="operationId2"/>
<node expr="[indicators/@estimatedRecipientOpenRatio]" alias="ratio"/>
<node expr="[indicators/@totalRecipientOpen]" alias="estimated"/>;
</select>
<where>
<condition expr="@internalName='DM187125'"/>
</where>
</queryDef>).ExecuteQuery();

for each (var w in winner){
vars.ratio = w.@ratio;
logInfo("The value of open ratio is " +vars.ratio); - This displays blank.
logInfo(winner); - This displays all the values in the journal.
}

Any help would be appreciated.

 

Thanks,

Akash

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

@akashaj7696 

 

Try this:

 

logInfo("The value of open ratio is " +""+vars.ratio+""); 

     Manoj
     Find me on LinkedIn

View solution in original post

7 Replies

Avatar

Community Advisor

Hi Akash,

 

Try this this should work inside for loop and rest of your code is fine

 

for each (var w in winner.ratio)

{
logInfo("The value of open ratio is " + w);
}

 

Thanks,

Kapil Kochar

Avatar

Level 3

Hi Kapil,

Appeciate your help.

I used the below code but i still get blank.

 

// query the database to find the winner (best open rate)
var winner = xtk.queryDef.create(
<queryDef schema="nms:delivery" operation="select">
<select>
<node expr="@id"/>
<node expr="@label"/>
<node expr="@internalName"/>;
<node expr="[@operation-id]" alias="operationId2"/>
<node expr="[indicators/@estimatedRecipientOpenRatio]" alias="ratio"/>
<node expr="[indicators/@totalRecipientOpen]" alias="estimated"/>;
</select>
<where>
<condition expr="@internalName='DM187125'"/>
</where>
</queryDef>).ExecuteQuery();

for each (var w in winner.ratio)
{
logInfo("the winner is" +w);
}

 

Thanks,

Avatar

Community Advisor
working fine for me.. i tested it on my instance.. also you can try to check value for operationid2 by using below for each (var w in winner.operationId2)

Avatar

Community Advisor

working fine for me.. i tested it on my instance.. also you can try to check value for operationid2 by using below for each (var w in winner.operationId2){logInfo("Operation Id is "+w)}

Avatar

Correct answer by
Community Advisor

@akashaj7696 

 

Try this:

 

logInfo("The value of open ratio is " +""+vars.ratio+""); 

     Manoj
     Find me on LinkedIn

Avatar

Administrator
Hi @_Manoj_Kumar_, Can you please help @akashaj7696 further please? Thanks!


Sukrity Wadhwa