/*------------------------------------------------------------------------
    File        : pushPolling.p
    Purpose     : 

    Syntax      :

    Description : 

    Author(s)   : 
    Created     : Wed May 04 13:20:59 FET 2016
    Notes       :
  ----------------------------------------------------------------------*/

/* ***************************  Definitions  ************************** */

routine-level on error undo, throw.

define input  parameter channelName         as character    no-undo.
define input  parameter messageData         as longchar     no-undo.
define output parameter responseChannel     as character    no-undo.
define output parameter broadcastResponse   as logical      no-undo.
define output parameter responseData        as longchar     no-undo.
    
/* ***************************  Main Block  *************************** */
{io/akera/json/library.i}
{demo/api/pushLib.i}

define variable rndOrder  as integer    no-undo.

rndOrder = random(1, 25).

for each Order no-lock by Order.OrderDate descending:
    rndOrder = rndOrder - 1.
    
    if rndOrder < 0 then do:
        
        for each OrderLine no-lock 
            where OrderLine.Ordernum = Order.Ordernum
              by OrderLine.Qty descending:
            
            for each item no-lock
                where Item.Itemnum = OrderLine.Itemnum:
                responseData = substitute('~{"sender": "Pythia", "message": "&1 is selling out fast..."~}':u, Item.ItemName).
                return.
            end.
            
        end. 
    end.
end.
