CallFlow mehrere attached call datas führen zu Problemen

Gyros

New User
Mitglied seit
27. Juli 2021
Beiträge
3
Hallo zusammen,

ich habe aktuell das Problem, dass ich in einem Callflow in mehreren Subroutinen versuche, Variablen zuzuweisen. Im ankommenden Menü weiße ich "public_call_data" zu, das ist auch wie in dem Log zu sehen erfolgreich:

Code:
2021/07/27 13:00:36.174|30754|0008|Trc|CallPair._LipoMain.Main_69.Main.10895.[C:3474.2]-From script: LipoMain- CallID 0000017AE79F92CE_3474 - CallFlow.CFD.AttachCallDataComponent 'AttachCallData1' - Attaching data to the call Name='public_call_type' - Value='1'
2021/07/27 13:00:36.174|30754|0008|Trc|CallPair._LipoMain.Main_69.Main.10895.[C:3474.2]-From script: Start task for AttachCallerData(public_call_type=1)
2021/07/27 13:00:36.190|30754|0006|Trc|CallPair._LipoMain.Main_69.Main.10895.[C:3474.2]-From script: AttachCallerData(public_call_type=1).SetResult(True)

Daraufhin geht es in den nächsten Part und ich versuche die Variable "public_is_officehour" zuzuweisen, das sieht dann so aus:
Code:
2021/07/27 13:00:36.196|30754|0006|Trc|CallPair._LipoMain.Main_69.Main.10895.[C:3474.2]-From script: LipoMain - CallID 0000017AE79F92CE_3474 - CallFlow.CFD.AttachCallDataComponent 'is_officehour_true' - Attaching data to the call Name='public_is_officehour' - Value='True'
2021/07/27 13:00:36.196|30754|0006|Trc|CallPair._LipoMain.Main_69.Main.10895.[C:3474.2]-From script: Start task for AttachCallerData(public_is_officehour=True)
2021/07/27 13:00:36.196|30754|0006|Trc|CallPair._LipoMain.Main_69.Main.10895.[C:3474.2]-From script: AttachCallerData(public_call_type=1).SetResult(False)

Wie hieraus zu sehen ist, wird in der letzten Zeile aus irgend einem Grund auf "public_call_type" anstatt auf "public_is_officehour" verwiesen. Ist das Problem bekannt und wenn ja, wie könnte ich das Problem ggf. lösen?

Vielen Dank für die Mühen!
Viele Grüße
Philippos Goridaris
 
Zuletzt bearbeitet:
Hi Philippa,

was genau versuchst du mit den an den Anruf enghängten Daten?
Übergibst du den Anruf an einen anderen CFD?

Wenn du Variablen benötigst solltest du keine Daten an den Anruf anhängen.
CFD APPS haben Projekt oder call flow variablen, welche in diesem Fall benötigen.

Das Anhängen von Daten an den Anruf ist etwas das du tust um Informationen an eine anderen Entity zu senden, welche diesen Anruf entgegennimmt.

Bsp bearbeitest du den Anruf in einer CFD APP und hängst Daten an.
Anschließend leitest du den Anruf in eine Queue um.
Kein agent nimmt den Anruf an und der Anruf geht an eine zweite CFD APP welche Daten liest.
Das sind persistent Daten, welche mit den Anruf verknüpft sind aber innerhalb einer einzelnen CFD wird dieses nicht benötigt.
 
Hallo,


1. Ich leite den Anruf an ein Auswahlmenü.
2. In diesem Auswahlmenü setze ich die Calldata auf eine Zahl zwischen 1-6 (je nach Auswahl).
3. Dann wird geschaut, ob aktuell Arbeitszeit, Urlaub oder sonst irgendwelche Tage sind, an denen nicht gearbeitet wird und falls nein leite ich den Anruf an die entsprechende Queue.
4. Nimmt in der Queue niemand an geht der Anruf an diesen Callflow zurück und dann soll anhand der Calldata, die ich angehängt habe, ausgewertet werden, wie der Anruf weiter behandelt werden soll (also z.B. ob es zum AB gehen soll oder nicht, dies ist Zeitabhängig, weshalb ich da nicht in der Queue sagen kann "sende an AB", sondern über diese Zuweisung das umsetzen muss)
 
Hi,

ok, so macht es an sich Sinn.
Selbst wenn das Protokoll den falschen Schlüssel erwähnt was ein protokollierungsproblem sein könnten ist der wert nicht vorhanden?
 
Das Problem ist, das weitere Schritte nach der Zuweisung nicht ausgeführt werden, der Callflow hängt sich sozusagen auf.
 
Ja, das ist wirklich so, kann ich bestätigen. So wie versucht wird eine zweite Zuweisung durch AttachCallData auszuführen bleibt das Programm stehen.

Der Code wird nicht mehr ausgeführt:
C#:
AttachCallDataComponent AttachCallData1 = new AttachCallDataComponent("AttachCallData1", callflow, myCall, logHeader);
AttachCallData1.DataNameHandler = () => { return Convert.ToString("public_VarToAttach3"); };
AttachCallData1.DataValueHandler = () => { return Convert.ToString(variableMap["callflow$.var3"].Value); };
mainFlowComponentList.Add(AttachCallData1); // bis hierhin läuft es
AttachCallDataComponent AttachCallData2 = new AttachCallDataComponent("AttachCallData2", callflow, myCall, logHeader);
AttachCallData2.DataNameHandler = () => { return Convert.ToString("public_VarToAttach4"); };
AttachCallData2.DataValueHandler = () => { return Convert.ToString(variableMap["callflow$.var4"].Value); }; // läuft noch
mainFlowComponentList.Add(AttachCallData2); // genau hier ist stop
// hierhin kommt man schon nicht mehr

Eine Lösung wäre: alle zu übergebenden Daten in eine Variable zu packen, mittels CONCATENATE und einem sinnvollem Trenner z.B. und die Daten in der zweiten CFA mittels REPLACE REG EXP wieder trennen.
 
Zuletzt bearbeitet:
Hi,

sieht so aus als ob es Zeit Problem ist da beide Eigenschaften nacheinander kommen.

Man könnte eine Verzögerung auslösen zwischen den zwei Komponenten mit einem C# script
Evtl. 1 Sekunde nur um zu testen um dieses ein unterschied zu dem Verhalten bringt.

Folgendes Script kannst du zur Hilfestellung verwenden:

C#:
Task.Delay(1000).Wait();

 
Das nutzt nichts, die Abarbeitung bleibt dennoch stehen.

Die Anlage zieht auch keine wesentliche Last während die Anwendung stehenbleibt.
 
Hi fxbastler,

danke für die Info.

Wir haben es auf V18 getestet und auf unserer Seite funktioniert es.

Falls du Post von Ernesto noch nicht gelsen hast(mit Log Abschnitt)


V18 Beta 2
 

Statistik des Forums

Themen
44.415
Beiträge
232.722
Mitglieder
78.331
Neuestes Mitglied
b2daniel