Second Highest Winning Delivery Needs to be Deployed

mustufam5967803

05-02-2019

Hi Team,

I have a condition where I have four Deliveries and I need to deploy to the Second highest Open rate delivery.

The logic I am using is : A/B testing

Can you help me with the JS code that will pick the second winining delivery based on Open rate.

Thanks in Advance!

[ duplicate thread ] --> Second Highest Winning Delivery Needs to be Deployed

Accepted Solutions (1)

Accepted Solutions (1)

wodnicki

MVP

07-02-2019

You didn't select @internalName in the query. Use a simple counter here:

var winner, i = 1;

for each (var row in res) {

    if (i++ === 2) winner = row;

}

Answers (6)

Answers (6)

mustufam5967803

06-02-2019

Hi Wodnicki,

The code I  am using is as follows:

  var winner = xtk.queryDef.create(

  <queryDef schema="nms:delivery" operation="select">

       <select>

         <node expr="@id"/>

         <node expr="@label"/>

     <node expr="@internalName"/>

       </select>

       <where>

        <condition expr={"@FCP=0 and [@internalName] in ('em123','em124','em125','em126') and @isModel=0"}/>

       </where>

       <orderBy>

         <node expr="[indicators/@estimatedRecipientOpenRatio]" sortDesc="true" />       

       </orderBy>

     </queryDef>)

    res = winner.ExecuteQuery();

   

for each (var row in res)

{

     logInfo(row.@internalName)

     }

I tried reading the rows through for each, not getting the seond highest delivery internal name though, please help ASAP.

Regards,

Mustufa

mustufam5967803

06-02-2019

Hi Wodnicki,

Can you help me withe the code to iterate the result and stop at second row.

I tried with For Each loop but getting some error.

Regards,

Mustufa

wodnicki

MVP

05-02-2019

Hi,

Change the js so instead of operation="get" it's operation="select", for:

// query the database to find the winner (best open rate)

  var winner = xtk.queryDef.create(

  <queryDef schema="nms:delivery" operation="get">

Then iterate over the results, stopping at the second row.

Thanks,

-Jon