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. |