2012-02-08 44 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表中創建一個條目,並允許您查詢 。

不要忘記對廣告系列也做同樣的事情。

相關問題