Workflow-Komponenten: Entscheidungsknoten

Einführung in Entscheidungsknoten

Ein Entscheidungsknoten ist ein Knoten, der einen oder mehrere Eintrittspunkte und genau zwei Austrittspunkte hat: true und false. Ein Entscheidungsknoten muss immer ein Skript haben, das entweder true oder false zurückgibt.

Das Ticket wandert in den Entscheidungsknoten, dann wird das Skript ausgeführt und abhängig vom Ergebnis (true oder false) verlässt das Ticket den Entscheidungsknoten über den entsprechenden Austrittspunkt.

Abbildung 62: ConSol CM Process Designer - Entscheidungsknoten

Eigenschaften eines Entscheidungsknotens

Ein Entscheidungsknoten hat folgende Eigenschaften:

Abbildung 63: ConSol CM Process Designer - Entscheidungsknoten: Eigenschaften

Beispiel für einen Entscheidungsknoten

Im folgenden Beispiel soll das System automatisch überprüfen, ob der Kunde (Hauptkunde des Tickets) ein VIP-Kunde ist. Wenn ja, soll das Ticket das Overlay VIP erhalten (im Beispiel einen gelben Stern).

  1. Ein Kundenfeld des Typs boolean muss im Kundendatenmodell (FlexCDM) definiert werden, um den Kunden als VIP (ja/nein) zu markieren. Siehe auch ConSol CM Administratorhandbuch, Abschnitt Einrichten des Kundendatenmodells.

    Abbildung 64: ConSol CM Admin Tool - Kundenfeld "vip" in den Kundendaten

    Abbildung 65: ConSol CM Web Client - Kundenfeld "VIP" für Kunden-/Kontaktdaten

  2. Im Skript des Entscheidungsknotens muss überprüft werden, ob der Kunde ein VIP (Rückgabewert: true) ist oder nicht (Rückgabewert: false).
  3. import com.consol.cmas.core.server.service.*

    import com.consol.cmas.common.model.customfield.meta.UnitDefinitionType

    def ticket = workflowApi.ticket

    // fetch main contatc of the ticket

    def maincontact = ticket.getMainContact()

    def unit_type = maincontact.definition.type

    log.info 'vipCheck: Unittype is ' + unit_type

    log.info 'vipCheck: Unittype class is ' + unit_type.getClass()

    if(unit_type == UnitDefinitionType.COMPANY) {

    log.info 'No vipCheck for comapnies possible! Returning false ... '

    return false

    } else if (unit_type == UnitDefinitionType.CONTACT){

     

    // fetch e-mail address of the man contact. The data object group field has to be addressed using data object group name:data object group field name

    def vip_field

    def custgroup = maincontact.customerGroup.name

    log.info 'vipCheck: Customergroup is now ' + custgroup

    switch(custgroup) {

    case "Reseller": vip_field = "vip_person";

    break;

    case "DirectCustomers": vip_field = "vip_dircust"

    break;

    case "MyCustomerGroup": vip_field = "vip"

    break;

    case "OurPartnerCompanies": vip_field = "vip_partners"

    break;

    case "RetailCustomers": vip_field = "retail_vip"

    break;

    }

    def vip_value = maincontact.get(vip_field)

    log.info 'VIP is now ' + vip_value

     

    if (vip_value){

    return true

    } else {

    return false

    }

    }

    Code-Beispiel 6: Bedingungsskript: Aktivität sollte nur für VIP-Kunden angezeigt werden

  4. Wenn ein Ticket den Entscheidungsknoten und die darauf folgende automatische Aktivität durchlaufen hat, bei der das Overlay VIP hinzugefügt wurde, erhält das Ticket-Icon im Web Client das Overlay, siehe folgende Abbildung.

    Abbildung 66: ConSol CM Web Client - Ticket-Icon mit VIP-Overlay