2012-02-08 6 views
5

В WFFM есть опция, чтобы, когда кто-то отказывался от формы, любые данные, которые были введены в самой форме, записывались и должны быть доступны через Отчет о выпадении.Sitecore Web Forms для маркетологов и DMS - не записи кампаний, целей и информации о выезде

У меня есть WFFM, для которого я включил Google Analytics и включил функцию отсева. К сожалению, я не вижу никаких данных, записываемых в БД, и отчет о выпадении видим, но пуст.

Я вижу из кода javascript, включенного в папку WFFM, что серия вызовов AJAX должна сохранять поля при размывании событий - с вызовами/sitecore modules/web/Web Forms для маркетологов/Tracking.aspx

Я пробовал отлаживать код Javascript, но метод, который должен размещать информацию в/sitecore modules/web/Web Forms для Marketers/Tracking.aspx, никогда не вызывается. Можете ли вы придумать какие-либо причины для того, чтобы этот код не работал? Кроме того, кто-нибудь знает, какая таблица должна быть записана? Это таблица полей в базе данных WFFM?

Наконец, хотя я включил аналитику в этой конкретной форме WFFM, и я связал кампанию и цель представления формы, ни одна из них не записывается. Я вижу, что данные, введенные в форму, сохраняются успешно и отображаются в отчете данных, но информация о Кампании или цели не записывается в БД.

Я даже проверил вручную непосредственно в управлении DMS DB:

select top 10 
p.DateTime, p.UrlText, cp.CampaignName 
,i.Url, vi.VisitId 
from pages p 
inner join ItemUrls i on p.ItemId = i.ItemId 
inner join Visits vi on vi.VisitId = p.VisitId 
inner join GeoIps g on vi.Ip = g.Ip 
left join Campaigns cp on cp.CampaignId = vi.CampaignId 
order by p.DateTime desc 

Это один показывает, что страница, на которой визуализируется форма является хитом, но кампания не связана с визитом.

Тогда я попробовал следующее:

select pe.datetime, ped.Name, pg.UrlText from PageEvents pe 
inner join PageEventDefinitions ped on ped.PageEventDefinitionId = pe.PageEventDefinitionId 
inner join Pages pg on pg.PageId = pe.PageId 
order by pe.DateTime desc 

Но я не вижу никакой записи для этой конкретной кампании, ни для цели (в то время как я вижу записи для других кампаний и целей, связанных с не-WFFM Sitecore пунктов)

Любой совет будет рад!

Спасибо,

Франческо

EDIT

sc.webform.js файл содержит этот метод:

_create: function() { 
var self = this, 
    options = this.options; 
if (options.tracking) { 
    this.element.find("input[type!='submit'], select, textarea") 
    .bind('focus', function (e) { self.onFocusField(e, this) }) 
    .bind('blur change', function (e) { self.onBlurField(e, this) }); 

    this.element.find("select") 
     .change(function() { $scw.webform.controls.updateAnalyticsListValue(this) }); 

    this.element.find("input[type='checkbox'], input[type='radio']") 
     .click(function() { $scw.webform.controls.updateAnalyticsListValue(this) }); 
} 

this.element.find(".scfDatePickerTextBox").each(function() { $scw.webform.controls.datePicker(this) }); 
}, 

Это, как предполагается, будет называться по форме на Инициализация виджета sc.webform. Он должен связывать события смены фокуса и размытия для всех полей ввода, падений и текстовых областей. К сожалению, когда я пытался поставить точку останова внутри этого метода, он никогда не вызывается.

ВТОРОЙ EDIT

Интересно. Я понял, что все это должно начинаться с этой строки Javascript кода, встроенного в страницу, содержащую форму WFFM:

<script type="text/javascript"> 
$scwhead.ready(function() { 
    $scw('#form_A8BF483419174F97A2830E12CBCF7E4F').webform({formId: "{A8BF4834-1917-4F97-A283-0E12CBCF7E4F}",pageId: "{21C24144-B964-4FBA-8388-D9B90EBBC17C}",eventCountId: "pagecolumns_0_columncontent_0_bottomrow_0_form_A8BF483419174F97A2830E12CBCF7E4F_form_A8BF483419174F97A2830E12CBCF7E4F_eventcount",tracking: true}) 
}); 
</script> 

После того, как я поставил точку останова здесь, я, наконец, смог проследить в метод _create jQuery.Виджет пользовательского интерфейса, определенный в sc.webform.js. Код, который вызывает _create, фактически находится внутри библиотеки jQuery.UI. У Kinda есть смысл, не так ли?

Наконец, код внутри _create выполняется, то размытость события связаны с TrackEvents метод, также определены в виджете:

_trackEvents: function(events) { 
$scw.ajax({ 
    type: 'POST', 
    url: "/sitecore modules/web/Web Forms for Marketers/Tracking.aspx" + location.search, 
    data: {track: JSON.stringify(events)}, 
    dataType: 'json' 
}); 

Что не имеет смысла в том, что сейчас, хотя я могу, наконец, увидеть, как trackEvents вызывается всякий раз, когда я ввожу из поля в поле в форме WFFM (почему он не работал до того, как он стал мне мистером), я не вижу никаких данных, записанных в БД WFFM. Я даже попробовал быстрый запрос в БД:

select f.Timestamp, f.StorageName, fi.Value, fi.FieldName 
from Form f 
inner join Field fi on f.Id = fi.FormId 
order by f.Timestamp desc, FieldName 

Кто-нибудь знает, где Tracking.aspx предполагается сохранить захваченные информацию поля?

+0

Вы правильно установили модуль WFFM? Можете ли вы подтвердить, что сам DMS работает через отчеты аналитики? –

+0

Mark, DMS 2.0 работает нормально. Если я добавляю кампании и цели на любую другую страницу, отличную от формы WFFM, они записываются просто отлично. Мы только что обновили с Sitecore 6.2 до 6.5 и установили DMS 2.0 (у нас был OMS, но он не использовался, поэтому мы по существу установили DMS 2.0 с нуля). Мы также обновили WFFM до последней версии. WFFM работает в том смысле, что он записывает контент в БД при отправке формы и выполняет различные действия по отправке (т. Е. Сохранять в CRM и т. Д.).То, что не работает, связано только с DMS, по крайней мере, это то, что кажется до сих пор ... –

ответ

1

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

, как это использовать SQL:

<!-- MSSQL--> 

    <formsDataProvider type="Sitecore.Forms.Data.DataProviders.WFMDataProvider,Sitecore.Forms.Core"> 
    <param desc="connection string">Database=Sitecore_WebForms;Data Source=xxx;user id=xxx;password=xxx;Connect Timeout=30</param> 
</formsDataProvider> 

<!-- SQLite --> 

<!--<formsDataProvider type="Sitecore.Forms.Data.DataProviders.SQLite.SQLiteWFMDataProvider,Sitecore.Forms.Core"> 
    <param desc="connection string">Data Source=/data/sitecore_webforms.db;version=3;BinaryGUID=true</param> 
</formsDataProvider>--> 

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

+0

Как я уже сказал выше, «Я вижу записи для других кампаний и целей, связанных с элементами, отличными от WFFM Sitecore», поэтому да , DB определен правильно в этом разделе файла form.config. Возможно, вы можете что-то сказать. Недавно мы переместили базу данных DMS на другой сервер. Все, что я изменил, это строка соединения в файле Sitecore connectionsStrings.config ... есть ли другое место, где я должен изменить строку подключения? –

+0

И, чтобы ответить на ваш другой вопрос, нет, я не работаю в режиме реального времени. Я тестирую это в среде QA, где есть CM и CD-сервер. В частности, я тестирую сайт CD. –

1

Мы испытываем ту же самую проблему при обновлении 6,5 и версии WFFM 2.3.3 rev. 111209. Мы можем видеть асинхронные вызовы на сервер, включая, вероятно, хорошо сформированный объект json, содержащий правильное событие.

Пример:

track:[{"fieldId":"{E0A0BCDD-85E1-4D8D-9E76-5ABD240423C9}","type":"Field Completed","value":"test","formId":"{0F3B57C1-1B6A-43B9-A5A6-2E958C168B31}","pageId":"{025AFF68-62B9-42CE-B49F-0C36311E1976}","ticks":16}] 

Мы не видим какой-либо из бросивших поступают в базу данных, хотя ...

0

Вы сделали, что ваши кампании и цели были развернуты? Если вы включили базы данных, они могут и не быть. Для того, чтобы перераспределить это сделать:

  1. Для каждой цели в системе -> Маркетинг Центр -> Цели
  2. Изменение состояния рабочего процесса на проект
  3. Сохранить
  4. Затем в обзоре ленты нажмите Deploy.
  5. Это создаст запись в таблице pageeventdefinition и позволит запрашивать .

Не забудьте сделать то же самое для кампаний.

 Смежные вопросы

  • Нет связанных вопросов^_^