Triggers sind Subprozesse, die im GeoShop im Ablauf eines Prozesses zusätzlich aktiviert werden können. Die Triggers werden für den GeoShop Server definiert und von diesem ausgelöst.
Die Triggers werden im folgende File definiert.
GEOSHOP_DIR\user\options\appserver.opt
Trigger verweisen auf ICS-Konfigurationen, die vom GeoShop aufgerufen werden und die beliebige Aktionen ausführen können. Triggers sind optional.
Nachfolgend ein Beispiel für einen Trigger
ON_SENDORDER
. Dieser Trigger wird ausgeführt wenn im
GeoShop eine Bestellung eingeht.
Definition des Triggers.
GEOSHOP_DIR\user\options\appserver.opt
MAP AppServer MAP : ON_SENDORDER STRING \script\trigger\on_sendorder.cfg : } : }
Konfiguration des Triggers.
GEOSHOP_DIR\user\script\trigger\on_sendorder.cfg
!============================================================================ ! example on_sendorder trigger ! ! sends GeoShop Administrator an email for each incomming order !============================================================================ !============================================================================ ! license !============================================================================ |LICENSE \license\geoshop.lic !============================================================================ ! includes !============================================================================ |INCL \script\util.lib !============================================================================ ! maps !============================================================================ MAP EMAIL_PARAM MAIL_SERVER => 'mail.server.ch' ! mail server SENDER_MAILADDRESS => 'info@geoshop.ch' ! mail sender address END_MAP !============================================================================ ! procedures !============================================================================ PROCEDURE EMAIL_SEND ! [s Receiver-email, s subject, s messagefile] [b status] ! Arguments get !-------------- => LOCAL.FILE => LOCAL.SUBJECT => LOCAL.RECEIVER ! Log File !--------- OPT.temp_dir . '\email.log' => LOCAL.LOGFILE LOCAL.LOGFILE TEXTFILE.REMOVE POP ! Command build !-------------- OPT.jre_dir . '\bin\java.exe' . ' -jar ' . OPT.bin_dir . '\mailer.jar' . ' -body ' . LOCAL.FILE . ' -server ' . EMAIL_PARAM.MAIL_SERVER . ' -from ' . EMAIL_PARAM.SENDER_MAILADDRESS . ' -to ' . LOCAL.RECEIVER . ' -subject "' . LOCAL.SUBJECT . '"' . ' 2>nul >' . LOCAL.LOGFILE => LOCAL.COMMAND ! Command execute !---------------- IF LOCAL.COMMAND OSCALL = 0 THEN TRUE => LOCAL.STATUS ELSE FALSE => LOCAL.STATUS ERROR 'Could not send email !' DISPLAY LOCAL.COMMAND IF LOCAL.LOGFILE TEXTFILE.OPEN THEN => LOCAL.LOGFILE_ID DISPLAY '' DISPLAY 'email-logfile:' WHILE LOCAL.LOGFILE_ID TEXTFILE.READLN DO => LOCAL.LINE DISPLAY LOCAL.LINE END_WHILE LOCAL.LOGFILE_ID TEXTFILE.CLOSE DISPLAY '' END_IF END_IF ! Return !------- LOCAL.STATUS END_PROCEDURE !============================================================================ ! main !============================================================================ ! email subject !-------------- OPTIONS.AppServer.APPLI_NAME . ': Order ' . OPT.orderno . ' received' => VAR.SUBJECT ! email message file create and write !------------------------------------ OPT.temp_dir . '\message.txt' => VAR.MESSAGE_FILE IF VAR.MESSAGE_FILE TEXTFILE.CREATE NOT THEN ERROR 'Can not create File !' DISPLAY VAR.MESSAGE_FILE HALT END_IF => VAR.MESSAGE_FILE_ID VAR.MESSAGE_FILE_ID 'Hello Administrator' TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID '' TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'A GeoShop order came in !' TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID '' TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'order : ' . OPT.orderno TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'product : ' . OPT.selection_productname TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'name 1 : ' . OPT.delivery_laname1 TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'name 2 : ' . OPT.delivery_laname1 TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'city : ' . OPT.delivery_lacity TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'price : ' . OPT.price TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'mail : ' . OPT.delivery_laemail TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID '' TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID 'regards' TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID OPT.script TEXTFILE.WRITELN VAR.MESSAGE_FILE_ID TEXTFILE.CLOSE ! email send !----------- OPTIONS.AppServer.ADMIN_EMAIL VAR.SUBJECT VAR.MESSAGE_FILE EMAIL_SEND POP !============================================================================ ! end of script !============================================================================
Das Script sendet bei jeder einkommenden Bestellung eine Mail an die GeoShop Administrator Email-Adresse.
Triggers werden im folgenden File definiert.
GEOSHOP_DIR\user\options\appserver.opt
Folgende Trigger stehen zur Verfügung.
EMail Template | Type | Beschreibung |
GeoShopServer.PRE_STARTUP | STRING | Wird vor dem Starten des GeoShop Servers ausgeführt. |
GeoShopServer.POST_STARTUP | STRING | Wird nach dem Starten des GeoShop Servers ausgeführt. |
GeoShopServer.ON_SENDORDER | STRING | Wird bei einem Bestelleingang (Order) ausgeführt. |
GeoShopServer.PRE_EXECUTE | STRING | Wird bei einer Bestellung (Order) vor der Datenaufbereitung ausgeführt. |
GeoShopServer.POST_EXECUTE | STRING | Wird bei einer Bestellung (Order) nach der Datenaufbereitung ausgeführt. |
GeoShopServer.POST_DOWNLOAD | STRING | Wird bei einer Bestellung (Order) nach dem Bestellvorgang (download) ausgeführt. |