Beispiel für Kundenportal-Integration#

Sie können Allegra in Ihre Webseite integrieren. Dabei gibt es zwei Möglichkeiten: Direkte Anbindung des Allegra Servers, so dass Ihre Kunden den Bearbeitungsstand ihrer Meldungen direkt auf Ihrer Website verfolgen können, oder Anbindung über E-Mail, ohne dass der Kunde seine Vorgänge über die Website nachverfolgen kann.

Anbindung mit Verfolgbarkeit eigener Vorgänge#

Um Meldungen einreichen und abfragen zu können, muss sich der Nutzer zunächst authentifizieren. Dazu kann er sich beim System registrieren, oder lediglich seine E-Mail-Adresse angeben.

Nach der Anmeldung sieht der Nutzer die Liste seiner Meldungen, einschließlich der geschlossenen der letzten Zeit. Er kann nun auch neue Meldungen einreichen.

Die Integration in ihre eigene Webseite hängt naturgemäß vom verwendeten CMS ab. Auch ist die Gestaltung der Bedienoberfläche abhängig von ihrem Corporate Design und dem verwendeten CMS.

Eine Beispiel-Implementierung für eine Webseiten-Integration können Sie vom Download-Bereich herunterladen. Sie basiert auf PHP, JQuery und Bootstrap. Die Einbindung in ein Contao CMS mit Unterstützung für die deutsche und englische Sprache könnte zum Beispiel so aussehen:

{{iflng::de}} <iframe src="/service-desk/index-de.php" width="100%" height="600px"/> {{iflng}}
{{ifnlng::de}} <iframe src=/service-desk/index-en.php width="100%" height="600px"/> {{ifnlng}}

In den Dateien index-de.php und index-en.php müssen Sie die Adresse ihrer Allegra REST-Schnittstelle angeben. Sie müssen auch sicherstellen, dass auf ihrem Allegra Server die Web Services aktiv sind.

<?php // Ihren Serverzugang hier einsetzen
   $SERVER_BASE_URL = "https://www.yourserver.com/track/rest";
   $THEME = "custom"; // [custom | default]
   // Style sheet für custom ist in "Resources/custom-style.css"
   // Available locales: en_US, de_DE $PAGE_LANG = "de_DE";
   // Pfad leer lassen, wenn kein Logo gezeigt werden soll
   $NAVBAR_COMPANY_LOGO_SRC = ""; ... ``

Anbindung ohne Verfolgbarkeit eigener Vorgänge#

Wenn es nicht erforderlich ist, dass Ihre Kunden den aktuellen Bearbeitungsstand der von ihnen eingereichten Vorgänge jederzeit über Ihre Website ansehen könne, bietet die Anbindung des Allegra -Servers an Ihre Website per E-Mail den sicherheitstechnischen Vorteil, dass Sie kein zusätzliches System nach außen öffnen müssen.

Dazu stellen Sie ein entsprechendes Kontaktformular zur Verfügung, dessen Inhalt Sie dann bei Einreichung durch den Kunden per E-Mail an die entsprechende Empfangsadresse Ihres Allegra -Servers schicken.

Es ist möglich, durch eine entsprechende Formatierung der E-Mail Daten im Allegra -System einfach zu befüllen. Dazu gehen Sie wie folgt vor: Fügen Sie das folgende Groovy-Skript mit dem Typ “Workflow Activity Skript” zu den Skripten hinzu. Wenn Sie keine Workflows verwenden, nennen Sie das Skript “EmailActivityScript”. Wenn Sie das Skript in Workflows einbinden, benutzen Sie bitte einen anderen Namen, z.B. “EmailWfActivityScript.”``

import java.util.Locale;
import java.util.Map;
import com.aurel.track.beans.TPersonBean;
import com.aurel.track.beans.TWorkItemBean;
import com.aurel.track.fieldType.runtime.base.WorkItemContext;
import com.aurel.track.util.emailHandling.EmailJSONUtil;
import com.aurel.track.admin.customize.scripting.BINDING_PARAMS;

public class EmailActivityScript { // “EmailWfActivityScript” bei Nutzung in Workflows

   public Map<String, Object> handleEvent(Map<String, Object> inputBinding) {
      WorkItemContext workItemContext = (WorkItemContext) inputBinding.get(BINDING_PARAMS.WORKITEM_CONTEXT);
      String body = (String) inputBinding.get(BINDING_PARAMS.EMAIL_BODY);
      if (body == null) {
         return inputBinding;
      }
      TPersonBean senderUser = (TPersonBean) inputBinding.get(BINDING_PARAMS.USER);
      if (senderUser == null) {
         return inputBinding;
      }
      Locale locale = (Locale) inputBinding.get(BINDING_PARAMS.LOCALE);
      String fromAddress = (String) inputBinding.get(BINDING_PARAMS.EMAIL_FROM_ADDRESS);
      if (fromAddress != null && fromAddress.equals("info@yourdomain.com")) { // anpassen
         EmailJSONUtil.updateItem(workItemContext, body, senderUser, locale);
      }
      return inputBinding;
   }
}

Der Body der E-Mail muss ein gültiges JSON-Objekt sein. Die Attribute des Objekts werden dann die Attribute des neu anzulegenden Vorgangs. Beispiel:

{"Attributname1":"Attributwert1", "Attributname2":"Attributwert2", "..." }

also z.B.

{
   "Build":"5.2.4",
   "Description":"Some decription of the problem",
   "EndDate":"2017-09-12",
   "ItemType":"Requirement",
   "Manager":"Guest, John",
   "StartDate":"2017-09-10",
   "Status":"analyzed",
   "Synopsis":"Title of problem",
   "Shorttext":"A custom field here",
   "CustomSimpleSelect":"g1",
   "CustomInteger":3,
   "CustomDouble":7.0
}

Als Attributnamen nehmen Sie die Original-Attributnamen. Sie können lokalisierte Attributnamen verwenden, wenn der Absender der E-Mail (also Ihr Website-Formular) als Benutzer in Ihrem System bekannt ist und ein bevorzugte Sprache fest eingestellt hat.