[Subflow] ist ein Produkt der Firma [Intersult] zur Steuerung von [Geschäftsprozessen|Geschäftsprozesse] und im engeren Sinn [Workflows|Workflow].

!!!Was ist Subflow?
[Subflow] ist eine Web-Anwendung, die entweder auf einem eigenen Server installiert oder als Dienstleistung genutzt werden kann. Es ist ein verteiltes System zur Kommunikation, Dokumentation, Steuerung, Überwachung und Sicherung von [Workflows|Workflow].

!!Das Dashboard
Es enthält eine Übersicht der Aktivitäten auf [Subflow]. Die Einträge enthalten einige Details und sind auf den eingeloggten Benutzer zugeschnitten.

[{Image src='Subflow/subflow-dashboard.png' width='100%'}]

Durch Klick ins Dashboard, die Suche, andere Links oder Bookmarks kommt man auf die Details eines Prozesses:

[{Image src='Subflow/subflow ticket.png' width='100%'}]

Die Suche enthält einen Content-Assist, der schon während der Eingabe Vorschläge liefert. Diese Vorschläge brauchen nur noch mit Tab oder Return bestätigt werden:

[{Image src='Subflow/subflow search.png' width='100%'}]

Da Subflow unterschiedliche Einstellungen unterstützt, sogenannte Themes, wird die Workflow Konfiguration in einer anderen Farbe angezeigt:

[{Image src='Subflow/subflow workflow.PNG' width='100%'}]

!!!Technisch gesehen
Es handelt sich um eine Web-Anwendung, die mit dem Browser aus dem Intra- oder Internet zugreifbar ist (je nach Sicherheits-Einstellungen).

Der Kern von [Subflow] ist eine Steuerungseinheit für [Workflows|Workflow] mit der vor allem sogenannte [Transaktionen|Prozess] durchgeführt werden können. Die Steuerungseinheit bietet eine API (Advanced Programmers Interface) und ein Plugin-Interface an, mit denen eine Einbindung in andere Systeme erfolgen kann.

[Prozesse|Prozess] können Tickets, Zahlungen oder andere, unternehmensspezifische [Workflows|Workflow] haben. Ein Prozess gehört immer zu einen Projekt und kann einzelnen Benutzern oder Rollen-Gruppen zugeordnet werden. Dies können Mitarbeiter sein, die im Unternehmen bestimmte Aufgaben erledigen oder Kunden, die über einzelne Schritte benachrichtigt oder zur Aktion aufgefordert werden.

!!Prozesse
[Subflow] unterstützt Prozesse, die unterschiedliche Workflows haben können. Häufig genutzt ist ein sogenanntes Service Ticket:

[{Image src='Subflow/subflow ticket 2.PNG' width='100%'}]

[{Image src='Subflow/subflow ticket 3.PNG' width='100%'}]

[{Image src='Subflow/subflow ticket 4.PNG' width='100%'}]

!!Schlagwörter
Subflow unterstützt sie bei der Kollaboration von Fillialen, anderen Unternehmen und beim Einhalten von Service Level Agreements. [Subflow] vermeidet [Dead Ends|Dead End] in [Workflows|Workflow] durch Eskalationsstrategien.

!!Noch technischer...
[Subflow] basiert auf [Java] und implementiert [Servlets|http://de.wikipedia.org/wiki/Servlet], sowie Rest und [Web-Services|SOAP].

!!Bestandteile
* __Frontend:__ [Subflow] umfasst ein [Frontend] zur Verwaltung von Benutzern, [Workflows|Workflow] und [Prozessen|Prozess].
* __Service:__ [Subflow] enthält eine Service-Schnittstelle, welche die Transporte SOAP, HTTP-GET und HTTP-POST unterstützt.
* __Apps:__ [Subflow] kann für den Aufruf von Web-Apps konfiguriert werden, die über SOAP, HTTP-GET und HTTP-POST aufgerufen werden können.
* __Kollaboration:__ [Subflow] unterstützt [Subflows|Workflow], die über Server oder Unternehmen hinweg verteilt sind.

Damit ist [Subflow] auf Google-App-Engine oder anderen [Application-Servern|Application Server] lauffähig.

!!!Builds
Die Builds von [Subflow] im [Intersult Maven Repository] sind als [Thin WAR] konfiguriert. Diese enthalten anstelle von JARs eine [Maven] pom.xml in /META-INF/pom.xml zur Spezifikation der Abhängigkeiten. [Thin WARs|Thin WAR] können zum Beispiel auf [Tomcat] deployed werden, wenn die Erweiterung [Maven Loader] installiert ist.

!!!Configuration
[Subflow] hat ein paar wenige Parameter für die Konfiguration. Bei [Tomcat] können diese in die catalina.properties geschrieben werden:

{{{
subflow.site=https://www.<your-domain>.com/subflow
subflow.database.url=jdbc:mysql://localhost:3306/subflow
subflow.database.driver=com.mysql.jdbc.Driver
subflow.database.username=subflow
subflow.database.password=<password>
subflow.database.dialect=org.hibernate.dialect.MySQLDialect
subflow.mail.process=true
subflow.mail.host=localhost
subflow.mail.username=system@<your-domain>
subflow.mail.password=<password>
subflow.mail.sender=system@<your-domain>.com
subflow.crypt_key=<your-key>
subflow.row_count=10
subflow.plugins.default=com.intersult.subflow.plugin.EmailPlugin
}}}