<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[CVP Call Studio — циклическое выполнение через XML]]></title><description><![CDATA[<h1>Здравствуйте,<br />
я пытаюсь написать приложение в Call Studio, которое принимает вывод вызова Finesse Get-Team и возвращает loginId пользователя на основе расширения и ID команды, переданных ICM.<br />
<a href="https://developer.cisco.com/docs/finesse/team/#team" rel="nofollow ugc">https://developer.cisco.com/docs/finesse/team/#team</a><br />
Я знаю, что могу использовать XpathUtil для проверки значения свойств, но я застрял на том, как пройти по циклу через несколько записей User, которые вложены в ответ Team/Users в результатах.<br />
<a href="https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/customer_voice_portal/12-6-2/user/guide/ccvp_b_1262-user-guide-for-cisco-unified-cvp-vxml-server-and-call-studio/ccvp_b_1251-user-guide-for-cisco-unified-cvp-vxml-server-and-cisco-unified-call-studio-release-1251_chapter_0110.html" rel="nofollow ugc">https://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/customer_voice_portal/12-6-2/user/guide/ccvp_b_1262-user-guide-for-cisco-unified-cvp-vxml-server-and-call-studio/ccvp_b_1251-user-guide-for-cisco-unified-cvp-vxml-server-...</a><br />
Я не уверен, в чем заключаются ограничения раздела «Настройки» элемента «Установить значение», где приведен пример выражения XPath в документации. На основе примера, ссылка на который приведена ниже, я смог понять, как использовать Rest Client в Call Studio для запроса данных и извлечения их из ответа с помощью XPath.<br />
[)<br />
Проблема заключается в том, что вывод из Get-Team API в Finesse возвращает несколько записей User в Users.<br />
Я пришел к выводу, что мне нужно создать цикл foreach, примерно такой, как ниже importPackage<br />
(<br />
com<br />
.<br />
audium<br />
.<br />
server<br />
.<br />
cvpUtil<br />
)<br />
;<br />
//REST client output<br />
var<br />
xml</h1>
<h1>{<br />
Data<br />
.<br />
Element<br />
.<br />
Finesse<br />
.<br />
response_body<br />
}<br />
;<br />
//pseudo code foreach loop<br />
foreach<br />
(<br />
XpathUtil<br />
.<br />
eval<br />
(<br />
xml<br />
,<br />
"/Team/Users"<br />
)</h1>
<blockquote></blockquote>
<h1>{<br />
//check the current User's Extension value against what ICM provided<br />
if<br />
(<br />
XpathUtil<br />
.<br />
eval<br />
(<br />
xml<br />
,<br />
"/Team/Users/User/Extension"<br />
)</h1>
<p dir="auto">Data<br />
.<br />
Session<br />
.<br />
Extension<br />
)<br />
{<br />
//write the matching user's loginId to the element's variable<br />
XpathUtil<br />
.<br />
eval<br />
(<br />
xml<br />
,<br />
"/Team/Users/User/loginId"<br />
)<br />
;<br />
}<br />
}<br />
)<br />
; Буду рад любым отзывам, идеям или альтернативным вариантам!</p>
]]></description><link>https://sla247.ru/forum/topic/1162/cvp-call-studio-циклическое-выполнение-через-xml</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 11:01:49 GMT</lastBuildDate><atom:link href="https://sla247.ru/forum/topic/1162.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Feb 2026 18:34:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to CVP Call Studio — циклическое выполнение через XML on Mon, 16 Feb 2026 18:34:41 GMT]]></title><description><![CDATA[<p dir="auto">Вам не нужно использовать цикл. Выражения XPath позволяют фильтрам выбирать строку (строки) массива на основе значения дочернего тега массива. Таким образом, если вам нужен loginId для записи, где /Team/users/User[#]/extension='1001002', вы можете использовать следующее выражение XPath: var path = "/Team/users/User[extension='1001002']/loginId" В вашем случае объедините данные сеанса в путь (это сложно, потому что вы должны использовать знак + для объединения переменной данных сеанса в литеральное выражение пути:<br />
var path = "/Team/users/User[extension='" + {Data.Session.Extension} + "']/loginId" Вероятно, вам следует использовать функцию подсчета массивов в XPath, чтобы определить, содержалось ли расширение в XML. Если нет, то присвойте локальной переменной значение типа «NA». Затем добавьте элемент Decision и проверьте, равно ли значение созданной локальной переменной строке NA. Используйте это в элементе SetValue: importPackage(com.audium.server.cvpUtil)<br />
var xml= {Data.Element.Finesse.response_body}; var path1 = "/Team/users/User[extension='" +{Data.Session.Extension}+ "']"<br />
var numResults = XpathUtil.eval(xml, path1) if(numResults&gt;0){<br />
var path2 = "/Team/users/User[extension='" +{Data.Session.Extension}+ "']/loginId"<br />
XpathUtil.eval(xml, path2)<br />
} else {<br />
"NA"<br />
}</p>
]]></description><link>https://sla247.ru/forum/post/8184</link><guid isPermaLink="true">https://sla247.ru/forum/post/8184</guid><dc:creator><![CDATA[janinegraves]]></dc:creator><pubDate>Mon, 16 Feb 2026 18:34:41 GMT</pubDate></item></channel></rss>