Expand my Community achievements bar.

Announcing the launch of new sub-community for Campaign Web UI to cater specifically to the needs of Campaign Web UI users!
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