Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Нет скина)
  • Нет скина
Collapse

Networks Engineering

  1. Главная
  2. Совместная работа (Collaboration)
  3. Контакт-центр (Contact Center)
  4. CVP Call Studio — циклическое выполнение через XML

CVP Call Studio — циклическое выполнение через XML

Запланировано Прикреплена Закрыта Перенесена Контакт-центр (Contact Center)
2 Сообщения 0 Posters 0 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • T Не в сети
    T Не в сети
    Tanner.Zesiger
    написал в отредактировано
    #1

    Здравствуйте,
    я пытаюсь написать приложение в Call Studio, которое принимает вывод вызова Finesse Get-Team и возвращает loginId пользователя на основе расширения и ID команды, переданных ICM.
    https://developer.cisco.com/docs/finesse/team/#team
    Я знаю, что могу использовать XpathUtil для проверки значения свойств, но я застрял на том, как пройти по циклу через несколько записей User, которые вложены в ответ Team/Users в результатах.
    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-...
    Я не уверен, в чем заключаются ограничения раздела «Настройки» элемента «Установить значение», где приведен пример выражения XPath в документации. На основе примера, ссылка на который приведена ниже, я смог понять, как использовать Rest Client в Call Studio для запроса данных и извлечения их из ответа с помощью XPath.
    [)
    Проблема заключается в том, что вывод из Get-Team API в Finesse возвращает несколько записей User в Users.
    Я пришел к выводу, что мне нужно создать цикл foreach, примерно такой, как ниже importPackage
    (
    com
    .
    audium
    .
    server
    .
    cvpUtil
    )
    ;
    //REST client output
    var
    xml

    {
    Data
    .
    Element
    .
    Finesse
    .
    response_body
    }
    ;
    //pseudo code foreach loop
    foreach
    (
    XpathUtil
    .
    eval
    (
    xml
    ,
    "/Team/Users"
    )

    {
    //check the current User's Extension value against what ICM provided
    if
    (
    XpathUtil
    .
    eval
    (
    xml
    ,
    "/Team/Users/User/Extension"
    )

    Data
    .
    Session
    .
    Extension
    )
    {
    //write the matching user's loginId to the element's variable
    XpathUtil
    .
    eval
    (
    xml
    ,
    "/Team/Users/User/loginId"
    )
    ;
    }
    }
    )
    ; Буду рад любым отзывам, идеям или альтернативным вариантам!

    1 ответ Последний ответ
    0
    • J Не в сети
      J Не в сети
      janinegraves
      написал в отредактировано
      #2

      Вам не нужно использовать цикл. Выражения XPath позволяют фильтрам выбирать строку (строки) массива на основе значения дочернего тега массива. Таким образом, если вам нужен loginId для записи, где /Team/users/User[#]/extension='1001002', вы можете использовать следующее выражение XPath: var path = "/Team/users/User[extension='1001002']/loginId" В вашем случае объедините данные сеанса в путь (это сложно, потому что вы должны использовать знак + для объединения переменной данных сеанса в литеральное выражение пути:
      var path = "/Team/users/User[extension='" + {Data.Session.Extension} + "']/loginId" Вероятно, вам следует использовать функцию подсчета массивов в XPath, чтобы определить, содержалось ли расширение в XML. Если нет, то присвойте локальной переменной значение типа «NA». Затем добавьте элемент Decision и проверьте, равно ли значение созданной локальной переменной строке NA. Используйте это в элементе SetValue: importPackage(com.audium.server.cvpUtil)
      var xml= {Data.Element.Finesse.response_body}; var path1 = "/Team/users/User[extension='" +{Data.Session.Extension}+ "']"
      var numResults = XpathUtil.eval(xml, path1) if(numResults>0){
      var path2 = "/Team/users/User[extension='" +{Data.Session.Extension}+ "']/loginId"
      XpathUtil.eval(xml, path2)
      } else {
      "NA"
      }

      1 ответ Последний ответ
      0

      Здравствуйте! Похоже, вам интересна эта беседа, но у вас пока нет учетной записи.

      Вы устали просматривать одни и те же посты каждый раз, когда заходите на сайт? После регистрации, вам не придётся искать обсуждения в которых вы принимали участие, настройте уведомления о новых сообщениях так как вам это удобно (по электронной почте или уведомлением). У вас появится возможность сохранять закладки и ставить лайки постам, чтобы выразить свою благодарность другим участникам сообщества.

      С вашими комментариями этот пост может стать ещё лучше 💗

      Зарегистрироваться Войти
      Ответить
      • Ответить, создав новую тему
      Авторизуйтесь, чтобы ответить
      • Сначала старые
      • Сначала новые
      • По количеству голосов


      • Войти

      • Нет учётной записи? Зарегистрироваться

      • Login or register to search.
      • Первое сообщение
        Последнее сообщение
      0
      • Категории
      • Последние
      • Метки
      • Популярные
      • Пользователи
      • Группы