Triggers.db
Triggers provide a mechanism for doing something on a regular timed basis, or
when a certain action occurs. Currently only time-based triggers are provided, but
in the future we will add new types of triggers that perform some action whenever
a database is modified, or a template is displayed.
Triggers do their work by simulating a browser hit to a URL. They act as if you had
manually used a browser to reload a page at a particular time each day. This gives
you the flexibility to create as much complex WebDNA as you like, and to test it
by simply using a browser to visit that URL. Once you have finished creating and
testing the template, then enter its URL into a trigger and it will be executed on
schedule from then on.
The URL must be of the form http://www.server.com/folder/file.ext (the same as you
would see in a browser window -- in fact, it is probably easiest to simply copy the
URL directly from your browser window). There is no restriction on the web site in
the URL, so you can actually have triggers that hit any web server in the world.
Because it is possible that the URL will fail for some reason (timeout, bad connection,
bad password), triggers have a timeout and retry interval. These numbers are used
to tell the trigger how long it should wait before attempting the URL again. Triggers
look for a string of text (which you specify) that tell them the trigger was successfully
executed. Often the text "<html>" is sufficient, but you can put
more sophisticated WebDNA into a page to create more detailed success information.
The single Triggers.db file must be in the main program folder (where Users.db, ErrorMessages.db,
etc. reside). An example of a useful time-based trigger is one that looks through
the ShoppingCarts folder once per hour and deletes any that are more than 24 hours
old. Another example is a trigger that looks for new order files in the Orders folder
and initiates a credit card transaction using credit card software such as ICVerify,
MacAuthorize, or CyberCash. Once the transaction is cleared, the trigger URL's WebDNA
could continue by sending fulfillment emails and updating an inventory database.
| Field | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
SKU |
A unique number that makes it easier to identify a particular trigger | ||||||||||||
|
Trigger |
Currently only TIME is allowed here, but in the future we will add values like APPEND, DELETE, REPLACE, SHOWPAGE, etc. | ||||||||||||
|
Param |
For TIME triggers, this is a specially-formatted string of numbers and asterisks that represents the time the trigger should execute. For example, to cause a trigger to execute 5 seconds after each minute, the text would be Y M D H M S (Year Month Day Hour Minute Second) * * * * * 5 To cause a trigger to execute at 9:15 PM every day, the text would be
|
||||||||||||
|
NextExecute |
This value gets changed automatically each time a trigger is executed. It is changed to the date and time of the next scheduled executeion of this trigger. If you do not want a trigger to start until a future date, you can preset this to the first date you want it to execute. After that, it is updated automatically. | ||||||||||||
|
Enable |
T or F to enable or disable the trigger | ||||||||||||
|
ExecuteURL |
Full URL to the template that you want executed at trigger time | ||||||||||||
|
User |
Optional username for this page. This is the same as an authenticated username that the [protect] tag uses. Requiring a username/password enables you to create triggers that outside visitors cannot view. | ||||||||||||
|
Pass |
Optional password for this page. This is the same as an authenticated password that the [protect] tag uses. Requiring a username/password enables you to create triggers that outside visitors cannot view. | ||||||||||||
|
WasGood |
A string of text that is returned from the URL which indicates the trigger was successfully executed. The trigger looks for this text anywhere in the returned HTML from the URL page. Often <html> is sufficient to tell the trigger that it successfully received the page. | ||||||||||||
|
TimeoutSeconds |
Number of seconds to wait for the URL to complete before giving up and trying again | ||||||||||||
|
RetrySeconds |
Number of seconds to wait before retrying the trigger. |