Hier ein (kleiner) Teil
Hier eingestellt sind, das es um die letzten 10 Minuten geht.
Sollte der Agent nicht verfügbar sein erfolgt Umleitung zu einer extra Warteschleife.
WebInteractionComponent AnrufVerlauf = new WebInteractionComponent("AnrufVerlauf", callflow, myCall, logHeader);
AnrufVerlauf.HttpMethod = System.Net.Http.HttpMethod.Get;
AnrufVerlauf.ContentType = "application/json";
AnrufVerlauf.Timeout = 30000;
AnrufVerlauf.UriHandler = () => { return Convert.ToString(CFDFunctions.CONCATENATE(Convert.ToString("/api/CallLog?TimeZoneName=Europe/Berlin&callState=All&dateRangeType=LastThirtyDays&fromFilter="),Convert.ToString(variableMap["session.ani"].Value),Convert.ToString("&fromFilterType=MatchNumber&numberOfRows=1&searchFilter=&startRow=0&toFilter=&toFilterType=Any"))); }; AnrufVerlauf.ContentHandler = () => { return Convert.ToString(""); }; AnrufVerlauf.Headers.Add(new CallFlow.CFD.Parameter("Cookie", () => { return getLastCallLogin.ReturnValue; })); mainFlowComponentList.Add(AnrufVerlauf); TextAnalyzerComponent JsonXmlParser1 = new TextAnalyzerComponent("JsonXmlParser1", callflow, myCall, logHeader); JsonXmlParser1.TextType = TextAnalyzerComponent.TextTypes.JSON; JsonXmlParser1.TextHandler = () => { return Convert.ToString(AnrufVerlauf.ResponseContent); }; JsonXmlParser1.Mappings.Add("CallLogRows[0].CallTime", "callflow$.lastCallTime"); JsonXmlParser1.Mappings.Add("CallLogRows[0].Duration", "callflow$.lastCallDuration"); JsonXmlParser1.Mappings.Add("CallLogRows[0].Destination", "callflow$.lastDestination"); mainFlowComponentList.Add(JsonXmlParser1); hatSchonAngerufen658269291ECCComponent hatSchonAngerufen = new hatSchonAngerufen658269291ECCComponent("hatSchonAngerufen", callflow, myCall, logHeader); hatSchonAngerufen.Parameters.Add(new CallFlow.CFD.Parameter("lastCallDuration", () => { return variableMap["callflow$.lastCallDuration"].Value; })); hatSchonAngerufen.Parameters.Add(new CallFlow.CFD.Parameter("lastCallTime", () => { return variableMap["callflow$.lastCallTime"].Value; })); hatSchonAngerufen.Parameters.Add(new CallFlow.CFD.Parameter("now", () => { return CFDFunctions.NOW(); })); mainFlowComponentList.Add(hatSchonAngerufen); ConditionalComponent ruftWiederAn = new ConditionalComponent("ruftWiederAn", callflow, myCall, logHeader); mainFlowComponentList.Add(ruftWiederAn); ruftWiederAn.ConditionList.Add(() => { return Convert.ToBoolean(hatSchonAngerufen.ReturnValue); }); ruftWiederAn.ContainerList.Add(new SequenceContainerComponent("kleiner10Min", callflow, myCall, logHeader)); getAgentNumber1773457814ECCComponent getAgentNumber = new getAgentNumber1773457814ECCComponent("getAgentNumber", callflow, myCall, logHeader); getAgentNumber.Parameters.Add(new CallFlow.CFD.Parameter("agent", () => { return variableMap["callflow$.lastDestination"].Value; })); ruftWiederAn.ContainerList[0].ComponentList.Add(getAgentNumber); ConditionalComponent warBeiAgent = new ConditionalComponent("warBeiAgent", callflow, myCall, logHeader); ruftWiederAn.ContainerList[0].ComponentList.Add(warBeiAgent); warBeiAgent.ConditionList.Add(() => { return Convert.ToBoolean(CFDFunctions.NOT_EQUAL(getAgentNumber.ReturnValue,"")); }); warBeiAgent.ContainerList.Add(new SequenceContainerComponent("wahr", callflow, myCall, logHeader)); TcxGetExtensionStatusComponent AgentStatus = new TcxGetExtensionStatusComponent("AgentStatus", callflow, myCall, logHeader); AgentStatus.ExtensionHandler = () => { return Convert.ToString(getAgentNumber.ReturnValue); }; warBeiAgent.ContainerList[0].ComponentList.Add(AgentStatus); LoggerComponent loggerComponent2 = new LoggerComponent("loggerComponent2", callflow, myCall, logHeader); loggerComponent2.Level = LoggerComponent.LogLevels.Error; loggerComponent2.TextHandler = () => { return Convert.ToString(AgentStatus.CurrentProfile); }; warBeiAgent.ContainerList[0].ComponentList.Add(loggerComponent2); ConditionalComponent agentVerfügbar = new ConditionalComponent("agentVerfügbar", callflow, myCall, logHeader); warBeiAgent.ContainerList[0].ComponentList.Add(agentVerfügbar); agentVerfügbar.ConditionList.Add(() => { return Convert.ToBoolean(CFDFunctions.EQUAL(AgentStatus.CurrentProfileName,"Available")); }); agentVerfügbar.ContainerList.Add(new SequenceContainerComponent("istVerfügbar", callflow, myCall, logHeader)); TransferComponent zumLetztenAgenten = new TransferComponent("zumLetztenAgenten", callflow, myCall, logHeader); zumLetztenAgenten.DestinationHandler = () => { return Convert.ToString(getAgentNumber.ReturnValue); }; zumLetztenAgenten.DelayMilliseconds = 500; agentVerfügbar.ContainerList[0].ComponentList.Add(zumLetztenAgenten); agentVerfügbar.ConditionList.Add(() => { return Convert.ToBoolean(true); }); agentVerfügbar.ContainerList.Add(new SequenceContainerComponent("nichtVerfügbar", callflow, myCall, logHeader)); TransferComponent Rückruf = new TransferComponent("Rückruf", callflow, myCall, logHeader); Rückruf.DestinationHandler = () => { return Convert.ToString(809); }; Rückruf.DelayMilliseconds = 500; warBeiAgent.ContainerList[0].ComponentList.Add(Rückruf); warBeiAgent.ConditionList.Add(() => { return Convert.ToBoolean(true); }); warBeiAgent.ContainerList.Add(new SequenceContainerComponent("falsch", callflow, myCall, logHeader)); ruftWiederAn.ConditionList.Add(() => { return Convert.ToBoolean(true); }); ruftWiederAn.ContainerList.Add(new SequenceContainerComponent("mehrAls10Min", callflow, myCall, logHeader));