Page tree

Suche

In diesem Tutorial erfahrt ihr, wie im Modulsystem der STARFACE ermittelt werden kann, ob ein der aktuelle Zeitpunkt in einem konfigurierten Zeitraum liegt. Verwendung findet diese Methode in Modulen, welche "zeitgesteuert" Entscheidungen treffen müssen.

In dem unten gezeigten Beispiel entwerfen wir ein Modul, dass Rufe je nach Zeitraum zu zwei unterschiedlichen Zielen vermittelt. Dabei basiert die Vermittlung auf dem Module Designer Tutorial 1.

Hinweis: Bevor ihr nun loslegt und ein Modul mit Zeitsteuerung entwerft, solltet ihr überprüfen, ob eure Anforderungen nicht schon mit dem Modul Zeitgesteuerte Umleitung abgedeckt sind. Dieses Modul gehört zur Standardausstattung jeder STARFACE und ermöglicht viele individuelle Rufszenarien.

Zur Umsetzung unseres Beispieles verwenden wir die Komponenten CurrentDateTime, MatchDateTimeIntervalGetCaller und CallPhoneNumber

Hinweis: Einige der Komponenten findet ihr erst, wenn im Modul Designer der Expert mode im Bereich Components aktiviert ist. Die Beschreibung zu GetCaller und CallPhoneNumber findet ihr unter Anrufe mit dem Modulsystem verteilen (CallPhoneNumber).

Beschreibung der verwendeten Komponenten 

CurrentDateTime

Mit dieser Komponente kann der aktuelle Zeitpunkt Millisekunden genau abgefragt werden und die Rückgabe in anderen Komponenten weiter verarbeitet werden.

Rückgabe der Komponente: 

Timestamp:

 Der aktuelle Zeitpunkt als Millisekunden seit dem 1.1.1970 (Unix Timestamp)

MatchDateTimeInterval

Mit dieser Komponente kann geprüft werden, ob ein Zeitpunkt in einem vorgegeben Intervall liegt. Der Intervall wird als Text eingetragen und kann einDatum, einen Datumsbereich, Wochentage oder Uhrzeiten enthalten. Dabei können Datumsbereiche, Wochentage und Uhrzeiten auch kombiniert werden. 

Beispiele:

  • Datumsbereich: 01.01.2015-15.01.2015
  • Uhrzeitenbereich: 08:00-18:00
  • Wochentage: Samstag-Sonntag
  • Kombi 1: Montag-Freitag 18:00-08:00 (Diese Einstellung bedeutet tatsächlich von 18:00-23:59 und 00:00-08:00) 

  • Kombi 2: 01.11.2015-30.11.2015 Montag-Freitag 07:00-15:00

Eigenschaften der Komponente:

  • Date/Time: Das zu prüfende Datum als Zeitstempel (Unix Timestamp)
  • Interval: Der Intervall, gegen den das Datum geprüft wird
  • Language: Sprache in welcher der Intervall eingetragen wird. Diese Einstellung hat Auswirkung auf die Wochentage und das Datums-/Uhrzeitenformat
 

Rückgabe der Komponente:

Die Komponente gibt zurück, ob der Zeitstempel in den vorgegebenen Intervall passt
  • Match: Gibt Wahr (true) zurück, wenn der Zeitpunkt zum Intervall passt
 

Ablaufdiagramm des Beispielmodules

Anleitung zur Erstellung des Beispielmodules



Festlegen der Grundeinstellungen, wie Name und Hersteller. Konfiguration als Modul vom Typ Standard.
Anlegen eines neuen Reiters namens Einstellungen im Bereich GUI. in diesen Einstellungen können bei der späteren Konfiguration des Modules die Rufziele konfiguriert werden.
Per Drag&Drop können nun drei Felder vom Typ TextInput erstellt werden. Das Erste bekommt den Namen Zeitraum das Zweite den Namen Zielrufnummer 1, das Dritte den Namen Zielrufnummer 2. Diese Eingabefelder können gleich als Variablen im Module Designer verwendet werden.
Unter dem Bereich Development legen wir nun eine neue Funktion mi der Bezeichnung start an.
In unserer ersten Funktion verwenden wir zuerst die Komponente GetCaller, welche wir bei den Komponenten unter dem Bereich Call finden.
Nun konstruieren wir die Intervallüberprüfung mit den Komponenten CurrentDateTime und MatchDateInterval. Im Feld Date/Timeübergeben wir den Rückgabewert _dateTime von CurrentDateTime. Im Feld Interval fügen wir nun die Variable Zeitraum (GUI_ZEITRAUM) ein und wählen unter unter Language den Wert de aus.
Die Komponente MatchDateInterval liefert uns in der Variable _matchesInterval zurück, ob der Zeitraum in den Wert aus der GUI passt. Diese Variable können wir daher nun mit einer bedingten Anweisung abfragen. Der Module Designer stellt hierfür die Komponente if (unter Basic Components) zur Verfügung. Nun konfigurieren wir diese Komponente so, dass wenn _matchesInterval erfüllt (IsTrue) ist, der Ruf an das erste Ziel vermittelt wird. Für den Fall, dass der Wert nicht passt, fügen wir eine else Komponente ein.
Im nächsten Schritt fügen wir nun die Komponente CallPhoneNumber hinzu, welche den Ruf an unser erstes Ziel vermitteln soll. Damit die Vermittlung funktioniert, müssen wir die Komponente noch konfigurieren. Zuerst wählen wir bei Phonenumber to call unsere Zielrufnummer 1 (GUI_ZIELRUFNUMMER_1) aus. Als Caller Name und Caller number greifen wir auf die Informationen aus der GetCaller-Komponente zurück. In der Variable Ringing duration können wir nun festlegen, wie lange der Anrufversuch dauern soll (z.B. 45 Sekunden).
In den else-Bereich fügen wir nun noch einmal CallPhoneNumber ein. Diesmal wird als Phonenumber to call jedoch die Zielrufnummer 2 (GUI_ZIELRUFNUMMER_2) verwendet.
Zuletzt beenden wir das Modul richtig mit der Komponente exit aus dem Bereich Basic Components. Das Modul soll laut Ablaufdiagramm in beiden Fällen beendet werden, daher wird das exit nicht eingerückt und somit immer ausgeführt.

An diesem Punkt ist das Modul funktionsbereit und kann nun in der Modulkonfiguration, wie jedes andere Modul konfiguriert werden. 

Viel Spass beim Nachbauen.


Konfiguration des Modules


Damit wir dieses Modul verwenden können, müssen wir wie bei jedem anderen Modul eine Konfiguration erstellen.
Der Konfiguration vergeben wir einen aussagekräftigen Namen.
Da wir ein Modul vom Typ Standard gebaut haben, muss diesem jetzt eine Rufnummer zugewiesen werden.
Zuletzt konfigurieren wir das Modul unter dem Reiter Einstellungen.