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
Ein Entscheidungsknoten hat folgende Eigenschaften:
Abbildung 63: ConSol CM Process Designer - Entscheidungsknoten: Eigenschaften
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).
Abbildung 64: ConSol CM Admin Tool - Kundenfeld "vip" in den Kundendaten
Abbildung 65: ConSol CM Web Client - Kundenfeld "VIP" für Kunden-/Kontaktdaten
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
Abbildung 66: ConSol CM Web Client - Ticket-Icon mit VIP-Overlay