'you have mail' Template Detail

Ein 'you have mail' Template ist eine Vorlage um die Daten einer Message zu präsentieren und entweder als EMail oder als SMS an einen definierten Empfänger zu verschicken. Es wird zwischen 2 Templatetypen unterschieden, entweder ein Standardtemplate, oder ein Fehlertemplate. Ein Fehlertemplate darf pro Message nur einmal vorkommen, es wird verwendet wenn ein Fehler beim Prozess oder Versenden einer Message passiert, andernfalls bei einer Erfolgreichen Message wird das entsprechend ausgewählte Template verweneet.
Ein Template ist je nach Messagetyp, welcher einstellbar ist, entweder für SMS ein reines Textdokument, oder aber für EMail ein HTML-Dokument, und zwar der Body Teil eines gesamten HTML-Dokuments. Bitte beachten Sie dazu die HTML-Spezifikationen des World Wide Web Consortium (W3C).

Ein Template kann mit vordefinierten Variablen und mit den Daten aus dem Daten-Query abgefüllt werden, entweder für einzelne oder für summarische Daten. Es können beliebig viele Templates pro Message erfasst werden, diese müssen sich in einem der Attribute Typ, Sprache, Identifikator ID oder Identifikator Name unterscheiden, Dubletten sind keine zugelassen.
Eine Templatevorschau kann direkt im Dialog angezeigt werden, ebenso kann ein Template an eine Testadresse verschickt werden, um dieses zu prüfen.
Bitte beachen Sie, dass es keine Vorschau eines Templates mit den effektiven Daten einer Message gibt.

Ansicht

Der Detaildialog eines Templates ist in zwei Reiter aufgeteilt, und zwar in den Reiter "Template Detail", in dem das Template definiert wird, und in den Reiter "Template Vorschau", in dem das erfasste Template angezeigt werden kann. Wenn Sie ein Fehlertemplate bearbeiten, wird der Hintergrund des Dialoges rot angezeigt.

Template Detail

Hier befinden Sie alle Attribute eines Templates und ein Zeilenorientierter Editor zum Erfassen des Templates. Folgende Attribute sind verfügbar:

Eingabeattribut Datentyp Beschreibung
Typ Auswahl Mit dieser Auswahl definieren Sie den Typ des Templates, ob es ein Template ist welches mit SMS verschickt werden soll oder ein Template welches mit EMail verschickt werden soll. Aufgrund der Selektion des Templates wird diese Unterscheidung je nach verfügbarer Empfängeradresse gemacht, also wenn z.B. eine Person eine EMail-Adresse hat, wird ein EMail-Template verwendet, wenn diese  Person eine Telefonnummer hinterlegt hat, so wird ein SMS-Template verwendet. Es können beide Templates gleichzeitig verwendet werden, diese Steuerung erfolgt schlussendlich über das Template-Query.
Master Auswahl Hier bestimmen Sie, wie eine Message bearbeitet werden darf. Es stehen folgende Auswahl zur Verfügung:
<Undefiniert>:   Undefiniert wer die Message bearbeiten darf, also jederman
User-Interface: Nur die Benutzeroberfläche, ein Import einer Message ist nicht erlaubt
Import:            Die Message darf nur durch einen Import verändert werden, für den Benutzer im Dialog sind alle Eingabefelder gesperrt
Sprache String/Auswahl Weisen Sie diesem Template die Sprache zu, die auf dem Empfänger definiert ist und für welche es verwendet werden soll. Also wenn eine Message z.B. an eine Person geschickt wird, und diese Person in der Personalverwaltung (PV) die Sprache Englisch eingestellt hat, erfassen Sie in der gleichen Art die Sprache wie sie der Person zugewiesen ist. Bitte beachten Sie, dass die Sprache gleich geschrieben werden muss, also Gross- und Kleinschreibung und Ausschreiben oder Abkürzung beachten.
Bezeichnung String Beschreiben Sie das Template hier mit maximal 254 Zeichen.
E-Mail Betreff String Hier können Sie einen Betreff für ein EMail vorgeben, aber beachten Sie bitte, dass bei einer Message die dieses Template verwendet immer dieser Betreff verwendet wird und nicht verändert werden kann. Wenn Sie den Betreff mittels Template-Query abfüllen, kann dieser je nach Query dynamisch sein.
Identifikator ID Integer Hier können Sie eine eindeutige Identifikations-ID eingeben, mit der Sie im Befarfsfall beim Template-Query ein Template nicht nur aufgrund der Sprachzuweisung zu einem Empfänger sondern auch aufgrund einer Identifikations-ID zuweisen können.
Identifikator Name String Hier können Sie eine eindeutige Identifikations-Namen eingeben, mit der Sie im Befarfsfall beim Template-Query ein Template nicht nur aufgrund der Sprachzuweisung zu einem Empfänger sondern auch aufgrund einer Identifikations-Names zuweisen können. Zurzeit wird dieser Identifikationsname dazu verwendet, um mit dem Namen "Default" ein Standardtemplate zuzuweisen, falls kein Sprachabhängiges Template gefunden wurde.
Fehler EMail-Adresse String Ein Felertemplate wird immer dann verwendet, wenn ein Fehler im Prozess einer Message stattfindet. Da nicht in jedem Fall ein Empfänger vorhanden sein muss, muss hier eine EMail-Adresse definiert werden, dessen Empfänger die Fehlermeldungen bekommt im Fall wenn kein Empfänger der Message ermittelt werden konnte.
Text String Hier wird der eigentliche Templatetext eingegeben. Wenn es ein EMail-Template ist, dann erfassen Sie hier ein HTML-Dokument mit allen verfügbaren HTML-Elementen, um den Text zu formatieren und wie gewünscht darzustellen. Spezielle Ersetzungs- und Steuerzeichen werden nachfolgend beschrieben. Bitte beachen Sie, dass wenn Sie ein SMS-Template erfassen Sie sich an die SMS-Spezifikationen ihres Providers halten, z.B. beschränkte Textlänge usw.
Neben dem Text befinden sich 2 Menuschaltflächen, eine für die Standardvariablen welche weiter unten beschrieben werden, und eine mit den verfügbaren Datenbankvariablen die aus den Datenquerys ermittelt werden.

Template Vorschau

Auf diesem Reiter befindet sich in der ganzen Ansicht eine HTML-Browservorschau, in der das erfasst Template dargestellt wird. Somit sehen sie sofort die Anwendung von HTML-Tags, welche Sie im Template verwenden. Spezielle Template-Steuerzeichen für z.B. Schleifen für Datenwiederholungen werden dabei ausgeblendet, damit die Vorschau sichtbar ist wie sie später beim Benutzer ankommt.

Bedienung

Folgende Funktionen sind verfügbar:

  • OK
    Mit dieser Funktion speichern Sie ein Template und schliessen den Dialog. Um ein Template erfolgreich speicher zu können müssen Sie mindestens eine Sprachzuweisung, einen Text und eine Bezeichnung erfasst haben, andernfalls wird mit einem Fehlerhinweis darauf hingewiesen.

  • Abbrechen
    Mit dieser Funktion schliessen Sie den Dialog ohne speichern. Bitte beachten Sie, dass eventuell gemachte Änderungen verworfen werden.

  • Test
    Mit dieser Funktion haben Sie die Möglichkeit, das erfasst Template an eine beliebige EMail-Adresse zu schicken. Dabei wird ein Detaildialog geöffnet, in dem Sie die gewünschte Empfänger-EMail-Adresse eingeben und mit OK den Templatetext an diese Adresse schicken können.

  • yhm Variablen
    In dieser Menuschaltfläche werden alle Standardvariablen, inklusive Digitalisierungslinkvariablen angezeigt, die hier für die Message zur Verfügung stehen. Positionieren Sie den Mauszeiger an die Stelle im Template, an dem Sie eine Variable einfügen möchten und wählen Sie die gewünschte Variable aus diesem Menu aus. Der Platzhalter für die Variable wird damit in das Template eingefügt.

  • Daten Variablen
    in dieser Menuschaltfläche werden alle Datenbankfelder, welche durch das Datenquery ermittelt werden, angezeigt. Dabei kann es sich um Daten aus maximal 5 verschiedenen Tabellen handeln, dies wird im Menu mit der Tabellennummer 1 - 5 angegeben, die Reihenfolge der Tabellen ist die gleiche Reihenfolge wie die Querys im Daten-Query. Positionieren Sie den Mauszeiger an die Stelle im Template, an dem Sie eine Variable einfügen möchten und wählen Sie die gewünschte Variable aus diesem Menu aus. Der Platzhalter für die Variable wird damit in das Template eingefügt.

Template Spezifikation

Nachfolgend werden die Speziellen Steuerzeichen (also alle Steuerzeichen welche nicht HTML sondern CodX-Spezifisch sind) beschrieben, sowie alle Ersetzungszeichen welche verwendet werden können. Dabei handelt es sich um vordefinierte Ersetzungszeichen und um Datenersetzungszeichen.

 

CodX Spezifische Steuerzeichen Beschreibung
<%begindataloop%>
<%begindataloop2%>
<%begindataloop3%>
<%begindataloop4%>
<%begindataloop5%>
Da eine Message mehrere Datensätze der ihr zugewiesenen Entität enhalten kann, und es je nach Konfiguration möglich ist dass ein Empfänger mehrere Datensätze mittels einer Message in einem Template bekommen kann, muss es eine Möglichkeit geben um zu steuern, wo und wie diese Datensätze im Template abgefüllt werden. Das Abfüllen passiert mittels Datenersetzungszeichen, aber da diese wiederholend sein können, muss ein Bereich innerhalb des Templates definiert werden können, in dem die Wiederholung stattfindet.
Dies wurde mit den beiden Steuerzeichen <&begindataloop&> und <%enddataloop%> gelöst. Der gesamte Text inklusive Steuer- und Ersetzungszeichen  der sich innerhalb dieser beiden Steuerzeichen befindent wird so oft wiederholt, wie es unterschiedliche Datensätze zu dieser Message gibt. Dabei werden diese beiden Steuerzeichen nicht entfernt und damit ist es von Vorteil, wenn diese innerhalb einer HTML-Bemerkung stehen, also zum Beispiel wie folgt: <!--<%BeginDataLoop%>-->
Da im Datenquery bis zu 5 verschiedene Select-Statements verwenet werden können, die Daten in 5 unterschiedliche temporäre Datentabellen speichern, muss es auch 5 verschiedene Loops geben, damit diese Daten in das Template abgefüllt werden können. Dazu verwenden Sie einfach jeweils das entsprechende Paar von begindataloop und enddataloop.
Bitte beachten Sie, dass die Loops 2 - 5 nicht ineinander verschachtelt werden dürfen, sie dürfen sich aber innerhalb des ersten Loops <%begindataloop%> und <%enddataloop%> befinden.
Die Reihenfolge spielt keine Rolle, in der die Loops im Template verwendet werden, lediglich der erste loop muss als erstes im Template sein.
Bitte beachten Sie, dass ein Fehlertemplate nur den Hauptloop, also <%begindataloop%>, unterstützt.
<%enddataloop%>
<%enddataloop2%>
<%enddataloop3%>
<%enddataloop4%>
<%enddataloop5%>
Dieses Steuerzeichen markiert das Ende des sich wiederholenden Textblockes, auch dieser sollte innerhalb einer HTML-Bemerkung stehen, damit er nicht sichtbar ist. Beispiel: <!--<%EndDataLoop%>-->
Verwenden Sie jeweils das richtige enddataloop zum entsprechenden startdataloop.

 

Fixe Ersetzungen Beschreibung
<%date%> Wird ersetzt mit dem Datum im Format dd.mm.yyyy
<%time%> Wird ersetzt mit der Zeit im Format HH:MM:SS
<%datetime%> Wird ersetzt mit dem Datum und der Zeit im Format dd.mm.yyyy HH:MM:SS
<%errornumber%> Diese Variable wird im Fehlerfall zusammen mit dem Fehlertemplate verwendet, sie wird mit der Nummer des Fehlers ersetzt.
<%errortext%> Diese Variable wird im Fehlerfall zusammen mit dem Fehlertemplate verwendet, sie wird mit dem Text des Fehlers ersetzt.
<%yhmupoc%> Wird ersetzt mit dem UPOC der Message, zu der dieses Template gehört.
<%yhmname%> Wird ersetzt mit dem Namen der Message, zu der dieses Template gehört.
<%yhmhint%> Wird ersetzt mit dem Hint/Bemerkung der Message, zu der dieses Template gehört.
<%yhmtyp%> Wird ersetzt mit dem Typ der Message, zu der dieses Template gehört. Mit dem Typ ist die Datenentität gemeicht, welche einer Messge zugewiesen ist.
<%strComputername%> Wird ersetzt mit dem aktuellen Computernamen auf dem der yhm Service ausgeführt wird.
<%lMaxMailItemAge%> Wird ersetzt mit dem Inhalt des 'you have mail' Custfields
300: Maximales Alter der Sendungen die zum Verarbeiten noch zu berücksichtigen sind
<%strDefaultLanguage%> Wird ersetzt mit dem Inhalt des 'you have mail' Custfields
100: Standardsprache für yhm Templates
<%strEMailSender%> Wird ersetzt mit dem Inhalt des 'you have mail' Custfields
310: eMail Absender zum Versenden von yhm Messages über eMail
<%strEMailTestReceiver%> Wird ersetzt mit dem Inhalt des 'you have mail' Custfields
500: Empfängeradresse für eMail Testmeldungen
<%strSMSTestReceiver%> Wird ersetzt mit dem Inhalt des 'you have mail' Custfields
510: Telefonnummer für SMS Testmeldungen
<%lyhmMessageID%> Wird ersetzt mit der ID der zu versendenen Message
<%TrackandTrace%> Diese Variable wird nur bei Messages vom Typ "Sendungsinhalt" unterstützt. Sie ermittelt Aufgrund der Sendungsdaten einen Track and Trace Link sofern verfügbar und ersetzt diese Fixe Ersetzung damit. Bitte denken Sie daran, dass der Inhalt nur der Link ist, die HTML-Tags für einen Linke müssen Sie selber einfügen, also z.B:
<a href=<<%TrackandTrace%>>Track and Trace URL</a>
<%WebApp-MailItem-URL%> Diese Variable generiert den Link auf die Intranet Web-Applikation für Sendungen. Dazu ist es wichtig, dass man das Custfield "010: WebApp Server-URL" in den Einstellungen Allgemein - Intranet WebApp korrekt erfasst hat, und das im entsprechenden Datenquery der Sendungs-UPOC mit dem Alias "MailItemUpoc" selektioniert wird. Daraus wird ein Link in der Form "https:\\myserver:8080\myApp\?MailItem=0123456789" generiert.
Im Template müssen Sie einen HTML-Link einfügen, z.B. in der Form "
<a href="<%WebApp-MailItem-URL%>">Link zur Sendung</a>"
<%WebApp-Mailbox-URL%> Diese Variable generiert den Link auf die Intranet Web-Applikation für Mailbox. Dazu ist es wichtig, dass man das Custfield "010: WebApp Server-URL" in den Einstellungen Allgemein - Intranet WebApp korrekt erfasst hat, und das im entsprechenden Datenquery der Personen-UPOC mit dem Alias "PersonUpoc" selektioniert wird. Daraus wird ein Link in der Form "https:\\myserver:8080\myApp\?Mailbox=9876543210" generiert.
Im Template müssen Sie einen HTML-Link einfügen, z.B. in der Form "
<a href="<%WebApp-Mailbox-URL%>">Mein Postfach</a>"

 

Datenersetzungen Beschreibung
<%MailItemUpoc%> Hierbei handelt es sich nicht um ein spezielles Datenersetzungsfeld. Wenn dieses im Query verwendet wird, wird es autoamtisch mit dem UPOC der Message ersetzt.
<%PersonPin%> Hierbei handelt es sich nicht um ein spezielles Datenersetzungsfeld. Wenn dieses im Query verwendet wird, dann wird der PIN der Person welcher ja verschlüsselt in der Datenbank gespeichert ist, entschlüsselt und dann im Template ersetzt.
<%[Datenbankattribut]%> Das ist das universell einsetzbare Datenersetzungszeichen. Es handelt sich dabei um den Namen des Datenbankattributes, welches mittels dem Daten-Query ermittelt wurde. Im Template muss dieser Name mit den Steuerzeichen <% und %> eingefasst sein, wobei Gross- und Kleinschreibung der Variable nicht relevant ist.
Dieses Datenersetzungszeichen wird dann automatisch mit dem Wert aus der Datenbank ersetzt. Beim ersetzen der Variablen werden die gängigsten Datentypen der Attribute unterstützt und automatisch formatiert. Die Konvertierung sieht wie folgt aus:
Datentyp Wertbereich Formatierung
Boolean 0 und 1 "0" oder "1"
Long -2'147'483'648 bis 2'147'483'647 "-2147483648" bis "2147483647"
LongLong -9'223'372'036'854'775'808 bis 9'223'372'036'854'775'807 "9223372036854775808" bis "9223372036854775807"
Double 1.7E +/- 308 (15 Stellen)  
String Alle Zeichen "xxxxxx" z.B. "Peter Huber"
Date Datum "dd.mm.yyyy" z.B. "01.01.2021"
Time Zeit "HH:MM:SS" z.B. "12:04:33"
Datetime Datum und Zeit "dd.mm.yyyy HH:MM:SS" z.B. "01.01.2021 12:04:33"
Currency Währung, entspricht dem Datentyp Double "123.05", immer 2 Nachkommastellen auf 5 Rappen gerundet.
GUID Globally Unique Identifier Wird im Format "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX" dargestellt, immer ohne die geschweiften Klammern {}.

Variablen für Folgeprozess Links

Wenn Sie Links für die Digitalisierung zum Senden eines Folgeprozesses verwenden, können Sie das auf 2 verschiedene Arten machen. Entweder Sie verwenden die alte Version, indem Sie die entsprechenden Variablen einfügen (<%FollowingProcessDelivery%>, <%FollowingProcessDestroy%> usw.), oder aber Sie wählen die Variablen aus der Menuschaltfläche "yhm Variablen" aus. Diese sehen aus wie die alten Variablen, haben aber den führenden Begriff URL. Der Unterschied dieser beiden Varianten ist, dass die 1. alte Variante den gesamten Link inkl. Bezeichnung (in Deutsch) des Links einfügt, und die 2. neue Variante nur die effektive URL. In der 2. Variante müssen Sie also selber den Link mit Html-Tags einfügen, z.B. <a href="<%URLFollowingProcessDelivery%>">Text zum Link</a>.

Variable Beschreibung Beispiel
<%FollowingProcessDelivery%> Vollständiger Link für Folgeprozess Digitalisierung Zustellung.
<%FollowingProcessDestroy%> Vollständiger Link für Folgeprozess Digitalisierung Vernichtung.
<%FollowingProcessArchive%> Vollständiger Link für Folgeprozess Digitalisierung Archivierung.
<%FollowingProcessCaptureDelivery%> Vollständiger Link für Folgeprozess Sendungserfassung IHS Zustellung.
<%FollowingProcessCaptureDestroy%> Vollständiger Link für Folgeprozess Sendungserfassung IHS Vernichtung.
<%FollowingProcessCaptureArchive%> Vollständiger Link für Folgeprozess Sendungserfassung IHS Archivierung.
<%FollowingProcessCaptureDeliveryToDeputy%> Vollständiger Link für Folgeprozess Sendungserfassung IHS Zustellung an Stellvertreter.
<%FollowingProcessCaptureReturnToSender%> Vollständiger Link für Folgeprozess Sendungserfassung IHS Zurück an Absender.
<%FollowingProcessCaptureDigitization%> Vollständiger Link für Folgeprozess Sendungserfassung IHS Digitalisierung.
<%URLFollowingProcessDelivery%> URL für Folgeprozess Digitalisierung Zustellung. <a href="<%URLFollowingProcessDelivery%>">Zustellen</a>
<%URLFollowingProcessDestroy%> URL für Folgeprozess Digitalisierung Vernichtung. <a href="<%URLFollowingProcessDestroy%>">Vernichten</a>
<%URLFollowingProcessArchive%> URL für Folgeprozess Digitalisierung Archivierung. <a href="<%URLFollowingProcessArchive%>">Archivieren</a>
<%URLFollowingProcessCaptureDelivery%> URL für Folgeprozess Sendungserfassung IHS Zustellung. <a href="<%URLFollowingProcessCaptureDelivery%>">Zustellen</a>
<%URLFollowingProcessCaptureDestroy%> URL für Folgeprozess Sendungserfassung IHS Vernichtung. <a href="<%URLFollowingProcessCaptureDestroy%>">Vernichten</a>
<%URLFollowingProcessCaptureArchive%> URL für Folgeprozess Sendungserfassung IHS Archivierung. <a href="<%URLFollowingProcessCaptureArchive%>">Archivieren</a>
<%URLFollowingProcessCaptureDeliveryToDeputy%> URL für Folgeprozess Sendungserfassung IHS Zustellung an Stellvertreter. <a href="<%URLFollowingProcessCaptureDeliveryToDeputy%>">Zustellen an Stellvertreter</a>
<%URLFollowingProcessCaptureReturnToSender%> URL für Folgeprozess Sendungserfassung IHS Zurück an Absender. <a href="<%URLFollowingProcessCaptureReturnToSender%>">Zurück an Absender</a>
<%URLFollowingProcessCaptureDigitization%> URL für Folgeprozess Sendungserfassung IHS Digitalisierung. <a href="<%URLFollowingProcessCaptureDigitization%>">Digitalisieren</a>

Formeln und Funktionen

Innerhalb eines Templates haben Sie die Möglichkeit, mit Formeln und Sonderfunktionen den Text zu gestalten, ebenso mit den zur Verfügung stehenden Datenbankfeldern zu rechnen. Bitte beachten Sie, dass das Template zuerst mit den Daten abgefüllt wird, inklusive den Loops und erst danach werden die Berechnungen und Formeln ausgeführt. Nachfolgend werden die Funktionen und möglichen Mathematischen Operationen aufgeführt, welche Sie verwenden können. Bitte beachten Sie, dass diese Funktionen und Rechnungen beliebig lang und verschachtelt sein dürfen. Der Bezeichner "Ausdruck" als Funktonsargument bedeutet immer, dass das entweder eine Zahl, eine Berechnung oder eine andere Funktion (auch verschachtelt) sien kann. Als Wert im Ausdruck können natürlich alle Datenbankfelder verwendet werden, welche Zahlen beinhalten.

 

Funktion Beschreibung
Calc(Ausdruck) Der Ausdruck wird berechnet und das Resultat als Dezimalzahl eingefügt.
Sum(Summennummer, Ausdruck) Der Ausdruck wird berechnet und zur Summe mit der Summennummer hinzu addiert.
Die Summennummer kann ein Wert von 0 bis 2'147'483'647 sein.
Summe(Summennummer) Diese Funktion wird mit dem aktuellen Inhalt der Summe Summennummer ersetzt.
Die Summennummer kann ein Wert von 0 bis 2'147'483'647 sein.
Round(Ausdruck, Rundungsfaktor) Der Ausdruck wird berechnet und mit dem Rundungsfaktor gerundet. Der Rundungsfaktor wird von 0.1 bis 0.0001 angegeben, wenn man auf 5 Rappen runden möchte verwendet man 0.05.
Cos(Ausdruck) Der Ausdruck wird berechnet und dann mit der mathematischen Funktion Cosinus berechnet.
Sin(Ausdruck) Der Ausdruck wird berechnet und dann mit der mathematischen Funktion Sinus berechnet.
Abs(Ausdruck) Der Ausdruck wird berechnet und dann mit dem Absoluten Wert ersetzt. Der Absolute Wert ist jeweils die Zahl ohne Vorkommastellen.
Ceil(Ausdruck) Der Ausdruck wird berechnet und dann mit dem aufgerundetem Wert ersetzt.
Trunc(Ausdruck) Der Ausdruck wird berechnet und mit dem Wert ohne die Nachkommastellen ersetzt.
NumberFormat(Ausdruck, Vorkomma, Nachkomma, Rundungsfaktor, [Dezimaltrennzeichen = ,]) Der Ausdruck wird berechnet und dann formatiert ersetzt. Dazu wird der berechnete Wert mit dem Rundungsfaktor gerundet und mit den angegebenen Vor- und Nachkommastellen ersetzt. Das Dezimaltrennzeichen kann optional mitgegeben werden und ist standardmässig ein Komma.

Beispiele:

Calc(10 + 3 / 7.5 + Summe(1) / cos(Summe(2)+Summe(3))

NumberFormat(<%ArtikelPreis%>, 10, 2, 0.05)

Sum(1,Calc(<%dblCount%> * <%ArtikelPreis%>))

Decimal(<%ArtikelPreis%>)

Siehe auch:



CodX Software CodX Software AG
Sinserstrasse 47
6330 Cham
Switzerland
Support
http://support.codx.ch
CxSpickel