Skip to main content

EVENT

EVENT( event , subtype )

eventA case-insensitive string constant naming the event to trap.
subtypeA case-insensitive string constant naming the specific type of event to trap. This may contain * and ? to wildcard-match the event's sub-type.
Return:EVENT returns a single event.

The EVENT function returns a trigger event, which may be used within the WHEN workflow service or the WAIT and NOTIFY actions.

Example:

IMPORT STD;
MyEventName := 'MyFileEvent';
MyFileName  := 'test::myfile';

IF (STD.File.FileExists(MyFileName),
 STD.File.DeleteLogicalFile(MyFileName));
 //deletes the file if it already exists

STD.File.MonitorLogicalFileName(MyEventName,MyFileName);
 //sets up monitoring and the event name
 //to fire when the file is found

OUTPUT('File Created') : WHEN(EVENT(MyEventName,'*'),COUNT(1));
 //this OUTPUT occurs only after the event has fired

afile := DATASET([{ 'A', '0'}], {STRING10 key,STRING10 val});
OUTPUT(afile,,MyFileName);
 //this creates a file that the DFU file monitor will find
 //when it periodically polls


//**********************************
EXPORT events := MODULE
  EXPORT dailyAtMidnight := CRON('0 0 * * *');
  EXPORT dailyAt( INTEGER hour,
   INTEGER minute=0) :=
  EVENT('CRON',
   (STRING)minute + ' ' + (STRING)hour + ' * * *');
  EXPORT dailyAtMidday := dailyAt(12, 0);
END;
BUILD(teenagers): WHEN(events.dailyAtMidnight);
BUILD(oldies)  : WHEN(events.dailyAt(6));

See Also: EVENTNAME, EVENTEXTRA, CRON, WHEN, WAIT, NOTIFY