2012-02-08 40 views
5

在WFFM有一个选项,这样,当你认为被抛弃的形式,即在自身记录的形式输入,并且必须通过访问任何数据辍学报告。Sitecore的Web窗体的营销和DMS - 没有录制活动,目标和辍学信息

我有,我已经打开了分析,并打开了辍学特征的WFFM。不幸的是,我没有看到任何数据被记录在数据库中,并且Dropout Report可见,但是是空的。

我从包含在WFFM文件夹中的JavaScript代码中看到,一系列AJAX调用应该保存模糊事件上的字段 - 调用/ sitecore模块/ web/Web Forms for Marketing/Tracking.aspx

我试着调试Javascript代码,而是应该发布信息到/ Sitecore的模块/网页/ Web窗体的营销方法/ Tracking.aspx永远不会被调用。你能想到这个代码不起作用的任何原因吗?另外,有没有人知道这个信息应该记录在哪张表上?它是WFFM DB中的fields表吗?

最后,尽管我已经打开了分析这种特殊的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的项目等活动和目标)

任何意见将不胜感激!

感谢,

弗朗西斯

编辑

的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小部件初始化。它应该为所有输入字段,下拉菜单和文本区域绑定焦点和模糊更改事件。不幸的是,当我试图在这个方法中放置一个断点时,它永远不会被调用。

第二个编辑

有趣。我想通了,整个事情应该从这个行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中定义的UI小部件。调用_create的代码实际上在jQuery.UI库中。有点有道理,对吧?

最后,执行内部_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' 
}); 

什么没有意义,现在是,即使我终于可以看到每当我在WFFM表单中从一个字段到另一个字段进行标记时,都会调用trackEvents(为什么在对我来说是陌生的之前不工作),我没有看到WFFM DB中记录的任何数据。我甚至尝试在DB快速查询:

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本身是通过分析报告工作的? – 2012-02-08 15:49:38

+0

马克,DMS 2.0工作正常。如果我将广告系列和目标添加到除WFFM表单以外的任何其他页面,则它们会被记录得很好。我们刚刚从Sitecore 6.2升级到6.5并安装了DMS 2.0(我们曾经有OMS,但没有使用,所以我们从头开始安装了DMS 2.0)。我们还将WFFM升级到最新版本。 WFFM的工作原理是,它在表单提交时记录数据库中的内容,并在提交时执行各种操作(即保存到CRM等)。那些不起作用的东西只与DMS有关,至少这是目前看来的东西...... – 2012-02-08 16:36:43

回答

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>--> 

如果没有配置正确,我想知道,如果莫名其妙的数据被记录在一个地方而不是另一个?另外,我的另一个问题是问如果这是一个开发环境,你是否在实时模式下运行webforms?在我看来,这是一个配置问题。

+0

就像我上面所说的,“我看到与非WFFM Sitecore项目相关的其他活动和目标的条目”,所以是数据库在form.config文件的该部分中正确定义。 虽然你可能会做点什么。我们最近将DMS数据库移到了不同​​的服务器上。所有我改变的是在Sitecore connectionsStrings.config文件中的连接字符串...是否有另一个地方,我应该改变连接字符串? – 2012-02-09 14:40:23

+0

而且,要回答您的其他问题,请不要在现场模式下运行。我正在一个既有CM和CD服务器的QA环境中进行测试。特别是我从CD网站上测试。 – 2012-02-09 14:47:23

1

我们在6.5更新6和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. 然后在复习色带单击部署。
  5. 这将在pageeventdefinition表中创建一个条目,并允许您查询 。

不要忘记对广告系列也做同样的事情。

相关问题