Добрый день, имеется развернутый локально Creatio. Хочу добавить лэндинг(чтобы можно было к примеру перейти на localhost/landing/index.aspx) с формой, у которой есть поле phone и данные введенные в поле будут попадать в контакты -> мобильный телефон уже к имеющемуся контакту.
Что уже сделал?
Сейчас контакт выглядит следующим образом

Как описано в документации добавил лэндинг. Сжато он выглядит так:

После чего в папке ../0/Nui/ создал папку Landing с файлом index.aspx в котором лежит следующий код:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <!--ШАГ 2-->
    <!--Эту часть необходимо скопировать из поля ШАГ 2 страницы редактирования лендинга-->
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
    <script src="https://webtracking-v01.bpmonline.com/JS/track-cookies.js"></script>
    <script src="https://webtracking-v01.bpmonline.com/JS/create-object.js"></script>
    <script>
 
    var config = {
        fields: {
            "Subject": "#subject-field",
            "Email": "#email-field",
            "Name": "#name-field",
            "MobilePhone": "#phone-field",
        },
        landingId: "54a57d16-e7b6-4c7d-9c38-237cfcf6512d",
        serviceUrl: "http://localhost/0/ServiceModel/GeneratedObjectWebFormService.svc/SaveWebFormObjectData",
        redirectUrl: "yandex.ru"
    };
 
    function createObject() {
        landing.createObjectFromLanding(config)
    }
    </script>
    <!--ШАГ 2-->
</head>
<body>
<h1>Landing web-page</h1>
<div>
    <h2>Case form</h2>
    <form action="localhost/0/ServiceModel/GeneratedObjectWebFormService.svc/SaveWebFormObjectData" method="POST" class="mainForm" name="landingForm" onSubmit="createObject(); return false">
        Subject:<br>
        <input type="text" name="subject" id="subject-field"><br>
        Email:<br>
        <input type="text" name="Email" id="email-field"><br>
        Name:<br>
        <input type="text" name="Name" id="name-field"><br>
        Phone:<br>
        <input type="text" name="Phone" id="phone-field"><br><br>
        <input type="submit" value="Submit">
        </font>
    </form>
</div>
</body>
</html>

Если я правильно понял для того чтобы POST запрос прошел корректно должен отработать файл GeneratedObjectWebFormService.svc. Нужно ли его создавать по документации или он является дефолтным? При попытки отправки запроса возникает 403 ошибка. Как сделать это рабочим и какие ошибки я совершил?

Нравится

5 комментариев
Лучший ответ

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

 

Как минимум, у Вас неправильный адрес стандартного веб-сервиса GeneratedWebFormService, к которому пытались обратиться со страницы. Поскольку он анонимный, там не нужен /0/. См. тут, как выглядит и где настраивается путь к нему.

 

Если нужно сделать отдельную страницу на сервере с этой формой, можно поднять в IIS ещё один сайт из одной HTML-страницы, где и настроить по инструкции связь с лендингом.

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

 

Как минимум, у Вас неправильный адрес стандартного веб-сервиса GeneratedWebFormService, к которому пытались обратиться со страницы. Поскольку он анонимный, там не нужен /0/. См. тут, как выглядит и где настраивается путь к нему.

 

Если нужно сделать отдельную страницу на сервере с этой формой, можно поднять в IIS ещё один сайт из одной HTML-страницы, где и настроить по инструкции связь с лендингом.

Зверев Александр,

Добрый день, подскажите как разрешить службу? Так полагаю что это что-то связанное с настройками приватности функции или что-то вроде того.

Нет, дело не в этом. Посмотрите второй абзац прошлого ответа.

Зверев Александр,
исправил без /0/ теперь следующую проблему не могу побороть 

политика CORS дефолтная и выглядит так:

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

Показать все комментарии

Добрый день!

Кто-нибудь настраивал получение данных из Google form (по аналогии лидов из Landing page)?

В целом, JS в среде Google Script выполняется (GS это, по сути, несколько доработанный JS). Но так как код выполняется не в браузере, в на сервере Google, то о таких объектах как "document", "window" можно забыть, ибо их просто нет. 
А так как стандартный скрипт BPMOnline расчитан на исполнение именно в браузере, он использует массу таких вот несовместимых с Google Script моментов.

То есть тут либо тот же функционал реализовывать на Google Script (но тогда нужна хотя бы спецификация того, что ожидает BPMOnline, ибо реверс-инженерить хоть и можно, но очень уж долго), либо какой-то корректный workaround

Или есть другие варианты?

Нравится

1 комментарий

Добрый вечер.

GoogleForms пишет ответы пользователей в GoogleSheets, а у GoogleSheets есть api по которому можно считать данные.

https://developers.google.com/sheets/api/guides/values

Показать все комментарии

Тема настройки веб-формы подымалась не один раз. И все же, в разных версиях Windows есть отличия. В данном блоге я хочу предоставить цикл поднятия веб-формы на операционных системах с ядром Windows 7 (Windows 7, Windows Server 2008 R2 и выше).
И так, начнем с самого основного – компоненты Windows. В блоге предоставляется основной набор установленных компонентов Windows. Также, здесь описано как работать с веб-формой с помощью доменной авторизации. В связи с добавлением этой функциональности, список минимально необходимых компонентов расширяется.

  1. Добавим/проверим список установленных компонентов
  2. Добавим пользователя, который должен входить в группу IIS_IUsrs
  3. Регистрируем Terrasoft от имени заведенного нами пользователя (в нашем случае – TSWebFormUser)
  4. Настраиваем конфигурацию
  5. Копирование Config.xml
  6. После того, как конфигурация настроена и проверена, нам нужно скопировать файл с Config.xml из папки пользователя TSWebFormUser в папку Settings установленного Terrasoft’а
    В моем случае Terrasoft установлен в папку C:\Terrasoft, поэтому я буду его копировать в C:\Terrasoft\Settings из папки пользователя С:\Users\TSWebFormUser\appdata\Roaming\Terrasoft\3.4.0\Settings

  7. Редактирование RunSettings
  8. Открываем файл RunSettings.xml (в моем случае C:\Terrasoft\Settings\RunSettings.xml) и указываем новый путь к файлу Config.xml

  9. Открываем оснастку Internet Information Service (IIS) Manager
  10. Проверяем ISAPI and CGI Restrictions

  11. Если у вас в списке нету ASP NET v4.0.x, то необходимо установить Framework 4 (при установке скорее всего появится диалог Remove\Repair, нужно сделать Repair или из командной строки выполнить:
    %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i
    %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe –i)

  12. Добавляем новый Application Pool
  13. Настраиваем запуск от имени нашего заведенного пользователя TSWebFormUser
  14. Устанавливаем разрешение на запуск 32-х битных приложений (в 2008 R2 x64 у меня заработало без этого разрешения, но скорость меньше)
  15. Добавляем приложение (именно приложение, Virtual Directory работать не будет) и указываем пользователя, от которого оно будет запускаться
  16. Тестируем подключение
  17. Добавляем страницу Login.aspx как страницу по умолчанию
  18. В Application Settings настраиваем подключение к конфигурации
  19. В секции TSLogin нужно указать пользователя, который имеет права на соответствующие разделы

На этом этапе Вы получаете работоспособную Web-форму, но без доменной авторизации. Для того чтобы включить доменную авторизацию необходимо:

  1. Установить значение параметра TSAllowWindowsAuthentication в True
  2. Авторизация
  3. Анонимную авторизацию выключить, а Windows Authentication - включить (если она отсутствует в списке, то вы не выполнили 1-й пункт, а именно не включили компонент Windows Authentication)

Вот собственно все, что требуется для настройки Web-формы на Windows 7 и Windows 2008 R2

Нравится

Поделиться

0 комментариев
Показать все комментарии

IE - лучший браузер в мире

Проблема заключается в том что пользователь логинится на веб-форму и после нажатия на кнопку "Войти" попадает опять на ту же форму логина! Т.е. невозможно даже войти.

При этом такая проблема воспроизводилась только в IE, во всех версиях, во всех других браузерах работа была нормальной.

Проблема

После тщательного анализа выяснили, что если в названии хоста или домена есть символ подчеркивания, "_", например http: //your_host.com/Login.aspx - то IE не сохранит данные ваших сессий, любые другие переменные в куки. И это несмотря на то, что данных хост\домен добавлен в список доверенных, в IE настроена политика принимать куки с любого сайта (даже из списка запрещенных), отключена любая безопасность и т.д!!!

Выдержка с блога msdn:

Q5: IE won’t set a cookie when the hostname/domain contains an underscore?

A: Correct. Technically, underscore is not a DNS character, and while Windows will let you use an underscore when naming your machine, it warns you that doing so may cause problems. One such problem is that WinINET blocks attempts to set cookies on such domains.

Существует также множество других серьезных глюков в IE, поэтому рекомендую также ознакомиться со всей статьей, запись в официальном блоге Microsoft:
http://blogs.msdn.com/b/ieinternals/archive/2009/08/20/wininet-ie-cookie-internals-faq.aspx

Решение

Если у вас такая проблема - не используйте IE - наверно лучшее решение :).

Ну а если серьезно, варианты решений:

  1. Переименовать имя сервера на имя не содержащее символы подчеркивания
  2. Настроить DNS переадресацию, например:
    • a. На каждом клиентском компьютере добавить в файл hosts запись вида: ip-адрес_сервераимя_сервера (пример: 10.5.6.6 WebForm) – после этого обращаться к веб-форме можно будет с помощью адреса http://WebForm/Login.aspx - при этом имя домена уже не будет содержать символ подчеркивания и все будет отлично работать.
    • b. Если в локальной сети используется DNS-маршрутизация, есть DNS-сервер, то необходимо сделать для web-сервера синоним, не содержащий подчеркивания. Сделать это нужно в одном месте (не на каждом клиентском компьютере), поэтому это решение правильнее. После этого нужно перезагрузить DNS и обращаться к веб-форме используя синоним. Это должен делать администратор сети.

Приятной разработки :)

Нравится

Поделиться

3 комментария

Да. IE - это зло. С выходом новых версий ничего не меняется, если кто-то хочет понять причины: http://paulirish.com/2011/browser-market-pollution-iex-is-the-new-ie6/

IE всё правильно делает:


The LDH rule, as updated, provides that the labels (words or strings
separated by periods) that make up a domain name must consist of only
the ASCII [ASCII] alphabetic and numeric characters, plus the hyphen.
No other symbols or punctuation characters are permitted, nor is
blank space.

RFC 3696

"Зверев Александр" написал:IE всё правильно делает:

В этом случае, частично согласен, НО!

1. IIS мог бы как-то сказать видя, что хост называется не по правилам FQDN, а он принимает все как есть и в итоге IE не работает
2. Если есть настройки - от кого принимать куки, то должна быть настройка - "принимать куки даже если в имени есть подчеркивание" или хотя бы что-то в документации к IE или какая-то возможность это отключить и т.д. С точки зрения пользователя - вы разрешили для всех сайтов использовать куки. Но для некоторых они все же не используются. Почему??

Показать все комментарии

Продолжение настройки таймаута для web-формы. В прошлый раз осуществлялась настройка IIS 7.0. На это раз опишу как настроить IIS версии 6.0.

  • Сначала заходим в свойства сайта, на котором настроена web-форма
  • Заходим на закладку ASP.NET и нажимаем кнопку "Edit Configuration"
  • В открывшемся окне переходим на закладку "Stae Management" и в поле "Session timeout (minutes)" устанавливаем нужное значение таймаута web-формы
  • Дальше нужно настроить пул приложений. Находим тот пул, который использует наш сайт и вызываем его свойства
  • На закладке "Perfomance" в поле "Shutdown worker processes after being idle for (time in minutes)" указываем нужный таймаут
  • И последнее, настройка таймаута сессии. Снова открываем настройки web-формы и на закладке "Home Directory" нажимаем кнопку "Configuration..."
  • На закладке "Options" устанавливаем нужное значение поля "Session timeout"

Нравится

Поделиться

0 комментариев
Показать все комментарии

Для входа пользователя через интерфейс веб-формы нужно ввести свой логин и пароль, где логин - это e-mail. Если веб-форма используется для доступа клиентов к своим инцидентам -- то все отлично.

С недавних пор большие компании испытывают потребность использовать веб-форму для своих многочисленных сотрудников. И логично возникло желание использовать при этом доменную авторизацию, чтобы пользователи автоматически заходя на веб-форму видели свои инциденты без необходимости вводить логин и пароль: это и удобно и лучше с точки зрения безопасности.

Поэтому такой функционал был реализован. Начиная с 3.3.2.143. Теперь окно логина выглядит так:

обратите внимание на новую опцию "Использовать доменную авторизацию". При ее установке поле Логин автоматически заполняется именем пользователя текущего сеанса Windows. Один раз установив эту опцию пользователь всегда будет автоматически логинится на веб-форму при каждом входе (пока не нажмет на "Выход").

Также для этого был доработан раздел "Web-пользователи", чтобы можно было добавлять доменных пользователей и импортировать их из домена (подобно как в разделе "Администрирование"):

Для активизации такой возможности нужно не много:

  1. Сборка веб-формы не ниже 3.3.2.143;
  2. Изменения конфигурации в разделе Web-пользователи (там всего 8 сервисов)
  3. В файле web.config установить опцию TSAllowWindowsAuthentication в значение True;
  4. При настройке IIS отключить анонимный доступ.

Также хочу отметить, что попутно веб-форма была переведена на Microsoft .NET Framework 4. Со временем также будет сделана отвязка от сборки бинарных файлов.

Запросы на новую сборку можете направлять в отдел технической поддержки.
С удовольствием отвечу все на вопросы

Нравится

Поделиться

1 комментарий

Нашел один нюанс, при настройке веб-формы с доменной авторизацией на Windows Server 2003. Нужно обязательно включить NTLM провайдер:

To work around this behavior if you have multiple application pools that run under different domain user accounts, you must force IIS to use NTLM as your authentication mechanism if you want to use Integrated Windows authentication only. 

Нужно из папки C:\Inetpub\Adminscripts выполнить:

cscript adsutil.vbs set w3svc/NTAuthenticationProviders "NTLM"
Показать все комментарии

На данный момент для использования веб-формы установленной на сервере с 64-х битной ОС необходимо активировать 32-х битную версию ASP.NET 2.0.

Для запуска 32-х битной версии ASP.NET 2.0 необходимо выполнить следующие шаги:

  1. Нажать Start -> Run ввести cmd, и нажать OK.
  2. Для включения 32-х битного режима введите следующую команду:
    cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
  3. Активация этого режима для IIS выполняется следующей командой:
    %SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
  4. Убедиться, что ASP.NET версии 2.0.50727 (32-х битный) разрешен для использования в списке Web service extension на IIS.
  5. Перезапустить IIS.

С полной инструкцией можно ознакомиться, перейдя по ссылке: http://support.microsoft.com/kb/894435

Нравится

Поделиться

0 комментариев
Показать все комментарии