Можно ли получить пароль пользователя или символический URL-адрес с помощью Siebel eScript?

У нас есть приложение Siebel 7.8, которое интегрируется с другим веб-приложением.

Мы реализовали его, создав символический URL-адрес и внедрив это в апплете Siebel в одном из наших представлений. Но внешнее веб-приложение имеет анимацию перехода между страницами, что вызывает некоторые проблемы в Siebel (в частности, на нашей панели инструментов CTI).

Итак, мы удалили апплет из нашего представления и вместо этого открыли его как всплывающее окно. Чтобы заставить его работать как всплывающее окно, нам также пришлось изменить определение символического URL-адреса: вместо «IFrame» теперь он имеет «Перенаправление формы» SSO. Это работает... но это также доставляет нам некоторые проблемы (когда всплывающее окно открывается, все апплеты, основанные на одном и том же BC, начинают вести себя странно).

Поскольку мы больше не показываем веб-приложение, встроенное в Siebel, нам на самом деле не нужен символический URL-адрес, мы можем просто сделать window.open("http://example.com");. Но мы передаем в URL некоторые параметры, и один из них — пароль текущего пользователя. Имя для входа я могу получить с помощью TheApplication().LoginName(). Есть ли способ восстановить пароль?

Из моих исследований до сих пор ответ «нет». Это приводит к следующему вопросу: есть ли способ получить полный символический URL с сервера или скрипта браузера? Я не могу найти ничего похожего в справочнике по интерфейсу объектов, но, возможно, для этого есть недокументированный метод?

Или, может быть, есть другой способ реализовать это требование? Это просто открытие всплывающего окна в Siebel, но URL-адрес должен содержать пароль пользователя среди других параметров.


person AJPerez    schedule 02.11.2017    source источник


Ответы (1)


Хорошо, это было проще, чем ожидалось. Есть способ получить пароль текущего пользователя. Недокументировано, как обычно в Siebel, но все равно работает:

function getCurrentUserPassword() {
    var service = TheApplication().GetService("Web Engine HTTP TXN");
    var psIn = TheApplication().NewPropertySet();
    var psOut = TheApplication().NewPropertySet();

    service.InvokeMethod("GetAllRequestParameters", psIn, psOut);
    return psOut.GetProperty("SWEPassword");
}
person AJPerez    schedule 02.11.2017
comment
Я собирался напечатать этот ответ, и я вижу, что вы уже поняли это :) - person Ranjith R; 02.11.2017