2012-02-08 1 views
5

WFFMでは、フォームを放棄すると、フォーム自体に入力されたすべてのデータが記録され、ドロップアウトレポートマーケターとDMSのためのSitecore Webフォーム - キャンペーン、目標、ドロップアウト情報を記録しない

私はAnalyticsをオンにし、ドロップアウト機能を有効にしたWFFMを持っています。残念ながら私はDBに記録されているデータは一切表示されず、ドロップアウト・レポートは表示されますが空です。

WFFMフォルダに含まれるJavaScriptコードから、一連のAJAX呼び出しがblurイベントのフィールドを保存することになっていることがわかります。/ sitecore modules/web/Web Forms for Marketingers/Tracking.aspx

Javascriptコードをデバッグしようとしましたが、マーケティング担当者/ Tracking.aspxの/ sitecoreモジュール/ web/Webフォームに情報を投稿するはずのメソッドは呼び出されません。このコードが動作しない理由は何ですか?また、誰がこの情報が記録されるはずのテーブルを知っていますか? WFFM DBのフィールドテーブルですか?

最後に、この特定のWFFMフォームでアナリティクスを有効にしていて、キャンペーンと目標をフォームの提出に関連付けましたが、いずれも記録されていません。フォームに入力されたデータが正常に保存され、データレポートに表示されていますが、キャンペーンや目標に関する情報はDBに記録されていません。

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

この1つは、フォームがレンダリングされたページがヒットされていることを示しているが、何のキャンペーンが訪問に関連付けられていません。

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サイトコアの項目に関連する他のキャンペーンとの目標のためのエントリを参照しながら、私は(この特定のキャンペーンのためにも、目標のいずれかのエントリが表示されない:

は、それから私は、次のことを試してみました)

アドバイスをいただければ幸いです!

おかげで、

フランチェスコ

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ウィジェットの初期化。これは、すべての入力フィールド、ドロップダウン、およびテキスト領域のフォーカスおよびブラー変更イベントをバインドする必要があります。残念ながら、このメソッドの中にブレークポイントを置くと、決して呼び出されません。

SECOND EDIT

興味深いです。私は、全体の事はWFFMフォームを含むページに埋め込まれたJavaScriptコードのこの行から開始することを考え出し:

<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自体が機能していることを確認できますか? –

+0

Mark、DMS 2.0は正常に動作しています。 WFFMフォーム以外のページにキャンペーンや目標を追加すると、うまく記録されます。 Sitecore 6.2から6.5にアップグレードし、DMS 2.0をインストールしました(以前はOMSを使用していましたが、DMS 2.0は基本的にゼロからインストールしていません)。また、WFFMを最新バージョンにアップグレードしました。 WFFMは、フォームが送信されたときにDBにコンテンツを記録し、送信時にさまざまなアクションを実行する(つまり、CRMに保存するなど)という意味で機能しています。実際に動作していないものはDMSのみに関連しています。少なくともこれはこれまでのようです... –

答えて

1

これは愚かなことかもしれませんが、WFFMのデータソースを正しく設定しましたか?つまり、明らかにWFFMを使用しています。しかし、SQLを使用するように設定されているか、WFFMがデータベースとしてデフォルトで使用する「ファイル」を使用しています。あなたが正しくそれを設定しない場合は何らかの形でデータが別のものを一つの場所に記録されていないが、されている場合、私は思ったんだけど

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

:このような

は、SQLを使用するには?また、別の質問は、これが開発環境かどうかを尋ねることです。ウェブフォームをライブモードで実行していますか?これは構成上の問題であるように思えます。

+0

上記のように、「WFFM以外のSitecoreアイテムに関連する他のキャンペーンや目標のエントリが表示されます。 DBは、form.configファイルのそのセクションで正しく定義されています。 あなたは何かに乗っているかもしれません。最近、DMSデータベースを別のサーバーに移動しました。私が変更したのは、SitecoreのconnectionsStrings.configファイルの接続文字列でした...接続文字列を変更するはずの別の場所がありますか? –

+0

そして、あなたの他の質問に答えるために、私はライブモードで走っていません。私はCMとCDサーバーの両方を利用できるQA環境でこれをテストしています。特に私はCDのウェブサイトからテストしています。 –

1

6.5アップデート6とWFFM 2.3.3 revで全く同じ問題が発生しています。正しいイベントを含む、おそらくうまく形成された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テーブルにエントリを作成し、 を照会できるようにします。

キャンペーンでも同じことを忘れないでください。