Skripte für das Action Framework

Einleitung

Das ConSol CM Action Framework bietet die Möglichkeit, Aktionen zu starten, die sich nicht auf Workflow-Aktivitäten beziehen, d. h. Aktionen können in einem anderen Kontext als im Workflow-Kontext gestartet oder angestoßen werden.

Das Action Framework besteht (in ConSol CM-Version 6.10) aus drei Komponenten, die in den entsprechenden Handbuchabschnitten detailliert beschrieben sind.

Im vorliegenden Abschnitt erfahren Sie mehr über die Programmierung mit dem Action Framework.

Admin-Tool-Skripte für das Action Framework

Skripttypen

Jede Aktion basiert auf einem Admin-Tool-Skript, wie in den oben erwähnten Abschnitten beschrieben. Für jedes Admin-Tool-Skript muss der richtige Skripttyp gesetzt werden.

Beachten Sie, dass für jedes Ausführungsskript ein Bedingungsskript definiert werden kann. Es muss im Admin Tool in der Definition der Aktion mit dem Ausführungsskript verknüpft werden. Das Bedingungsskript wird vor dem Ausführungsskript ausgeführt.

Daher wird das Ausführungsskript nur ausgeführt, wenn entweder

oder

Es stehen folgende Skripttypen für das Action Framework zur Verfügung:

Rückgabewerte der Skripte

Der Rückgabewert eines Bedingungsskripts muss entweder true oder false sein.

Der Rückgabewert eines manuellen Ausführungsskripts muss einer der folgenden PostActionTypes sein:

Eine detaillierte Beschreibung finden Sie im folgenden Abschnitt.

Aktionstypen

Eine Aktion kann von einem der folgenden Typen sein:

Programmieren mit dem Action Framework

Eine Kernkomponente der Programmierungsskripte für manuelle Aktionen im ConSol CM Action Framework ist die Klasse ActionScriptResultFactory. Alle Instanzen dieser Klasse stehen in jedem Ausführungsskript als actionScriptResultFactory zur Verfügung. Der Typ des zurückgegebenen PostActionScriptResult, d. h. der PostActionType, definiert den Schritt, der direkt auf die Ausführung eines manuellen Ausführungsskripts folgt. Mithilfe des PostActionType können Sie das gewünschte Systemverhalten implementieren.

Seite Neues Ticket öffnen

Beispiel:

import com.consol.cmas.core.server.service.action.PostActionType

import com.consol.cmas.common.model.ticket.Ticket

 

Ticket ticket = new Ticket();

ticket.setQueue(queueService.getByName("Helpdesk"))

ticket.setSubject("sample subject")

ticket.set("queue_fields.string", "test")

ticket.set("queue_fields", "boolean", "true")

return actionScriptResultFactory.getPostAction(PostActionType.CREATE_TICKET, ticket)

//to additionally set main contact use

//return actionScriptResultFactory.getPostAction(PostActionType.CREATE_TICKET, ticket, unit)

Code-Beispiel 61: Öffnen der Seite Neues Ticket

Ticketseite im Anzeigemodus öffnen

Beispiel:

UnitCriteria unitCriteria = new UnitCriteria();

Unit companyPattern = new Unit("company", customerGroup);

mdcmCriteriaBuilder.setReferencedCompanyCriteria(unitCriteria, companyPattern);

Code-Beispiel 62: Öffnen der Ticketseite im Anzeigemodus

Ticketseite im Anzeigemodus öffnen und vorher ACF anzeigen

Beispiel:

(...)

 

def executionContext = activityFormDefinitionService.getExecutionContext(newtic, "defaultScope/TaskInProgress/AcceptTask")

if (!executionContext) {

return actionScriptResultFactory.getPostAction(PostActionType.FAILURE, "action.fail.wrong.activity")

}

 

// Modify entities from the execution context - not the original ones

// - since the user may still press cancel.

executionContext.ticket.add("SpecialTasks_Fields","Deadline", new Date());

 

return actionScriptResultFactory.getPostAction(PostActionType.GOTO_TICKET, newtic, executionContext);

Code-Beispiel 63: Öffnen der Ticketseite im Anzeigemodus, nach Anzeige eines ACFs

Beachten Sie Folgendes: Die Implementierungsklasse für das Bean activityFormDefinitionService ist ActivityControlFormService. Weitere Informationen dazu finden Sie in der Dokumentation der Klasse. Die Verwendung in Skripten erfolgt über den Bean-Namen, siehe obiges Skript.

Seite Neuen Kunden (Kontakt oder Firma) öffnen

Beispiel:

import com.consol.cmas.common.model.customfield.Unit

import com.consol.cmas.core.server.service.action.PostActionType

 

Unit contact = new Unit("customer", unit.getCustomerGroup());

contact.set("firstname", "Luke");

contact.set("name", "Skywalker");

return actionScriptResultFactory.getPostAction(PostActionType.CREATE_UNIT, contact);

Code-Beispiel 64: Unit-Ausführungsskript (Kunde implizit verfügbar), um die Seite Neuer Kunde zu öffnen

Seite einer Unit (= Kunde, d. h. Kontakt oder Firma) im Anzeigemodus öffnen

Beispiel:

import com.consol.cmas.common.model.customfield.Unit

import com.consol.cmas.core.server.service.action.PostActionType

 

Unit contact = unitService.getByCustomerGroup(unit.getCustomerGroup()).get(0)

return actionScriptResultFactory.getPostAction(PostActionType.GOTO_UNIT, contact)

Code-Beispiel 65: Unit-Ausführungsskript (Unit implizit verfügbar), um die Kundenseite im Anzeigemodus zu öffnen

Seite Neue Ressource öffnen

Beispiel:

import com.consol.cmas.common.model.resource.Resource

import com.consol.cmas.common.model.resource.meta.ResourceType

import com.consol.cmas.core.server.service.action.PostActionType

 

ResourceType type = resourceTypeService.getByName("resource type 1")

Resource resource = new Resource(type)

resource.setFieldValue("group1", "stringField1", "value1")

resource.setFieldValue("group2", "numberField1", 1L)

return actionScriptResultFactory.getPostAction(PostActionType.CREATE_RESOURCE, resource)

Code-Beispiel 66: Öffnen der Seite Neue Ressource

Ressourcenseite im Anzeigemodus öffnen

Beispiel:

import com.consol.cmas.common.model.resource.Resource

import com.consol.cmas.core.server.service.action.PostActionType

 

Resource resource = resourceService.getAll().iterator().next()

return actionScriptResultFactory.getPostAction(PostActionType.GOTO_RESOURCE, resource);

Code-Beispiel 67: Öffnen einer Ressourcenseite im Anzeigemodus

Eine URL öffnen

Beispiel:

import com.consol.cmas.core.server.service.action.PostActionType

 

return actionScriptResultFactory.getPostAction(PostActionType.GOTO_PAGE, "http://consol.de");

Code-Beispiel 68: Öffnen einer URL

Ergebnismeldung im Web Client anzeigen: SUCCESS

Eine detaillierte Beschreibung finden Sie im Abschnitt Rückgabewerte und Rückgabemeldungen.

Ergebnismeldung im Web Client anzeigen: FAILURE

Eine detaillierte Beschreibung finden Sie im Abschnitt Rückgabewerte und Rückgabemeldungen.

Rückgabewerte und Rückgabemeldungen

Um den Rückgabewert einer ConSol CM-Aktion für den Bearbeiter im Web Client anzuzeigen, müssen Sie einen der beiden PostActionTypes verwenden:

Sie müssen für jedes Ausführungsskript einen Rückgabewert setzen. Es ist nicht möglich, ein Ausführungsskript ohne Rückgabewert zu beenden (in diesem Fall tritt ein Laufzeitfehler auf).

Beispiel für positives Feedback:

return actionScriptResultFactory.getPostAction(PostActionType.SUCCESS, "cmweb.search.assigned").withRefreshContent();

Abbildung 372: ConSol CM Web Client - Erfolgsmeldung nach Suche-Aktion

Beispiel für negatives Feedback:

return actionScriptResultFactory.getPostAction(PostActionType.FAILURE, "cmweb.search.assigned").withRefreshContent();

Abbildung 373: ConSol CM Web Client - Fehlermeldung nach Suche-Aktion

Der angezeigte Text (z. B. Aktion erfolgreich oder Aktion gescheitert) kann mit einer der folgenden beiden Methoden abgerufen werden:

CM-Standardwerte für Rückgabemeldungen

action.result.success=Action succeeded

action.result.failure=Aktion gescheitert

Verwenden systemspezifischer Labels

Sie können Ihre eigenen Labels für die Anzeige von Meldungen im Web Client definieren. Eine detaillierte Erklärung dazu finden Sie im Abschnitt Bezeichnungen.