2011-12-23 29 views
2

私はCRMソリューションをカスタマイズしていますが、今日は問題が発生しています。私はOnSaveイベントによってトリガされるJavaScriptを持っています。このJavaScriptは、フォームのフィールドを更新し、再度保存しようとします。OnSaveイベントによってトリガされるフィールドの更新を保存する

スクリプトを実行すると、私は変更しようとしているフィールドを見ることができますが、フォームがリロードされると、そのフィールドには以前の値が残っています。私は以下のsudoコードを少し入れました。誰もこの問題を抱えていますか?

のOnSave

//Update field 
Xrm.Page.getAttribute("fieldname").setValue(value); 
//Set submit mode to always 
Xrm.Page.getAttribute.setSubmitMode("always"); 
//Force save 
Xrm.Page.data.entity.save(); 

答えて

4

あなたの投稿コードが何のコピー/貼り付けエラーがなければ、私はこの行が

Xrm.Page.getAttribute.setSubmitMode("always"); 

あなたの問題が発生する。これは、

Xrm.Page.getAttribute("fieldname").setSubmitMode("always"); 
+1

応答@ckellerに感謝します。私はその変更を加えましたが、私はまだ同じ問題を抱えています。私は何らかの競合状態が発生していると信じています。 onsaveを実行する非常に短いスクリプトを使用すると、更新されたフィールドが保存され、PostRetrieveに正しく表示されます。しかし、私がいくつかの他のエンティティを照会するより複雑なスクリプトを使用すると(そして時間がかかります)、PostRetrieveに更新が残っていません。 –

+0

私は実際にこれを回避する方法を考え出しました。 Saveイベントを防止し、更新されたフィールドがダーティかどうかを確認することで、値を更新した後で強制的に保存することができました。 –

+0

自分自身でこの問題に遭遇しましたが、これはAsync JSのために発生していると思いますか?誰もがこれを処理するより良い方法を認識していますか?保存を妨げてコールバックでコールを再コールする必要があるのは馬鹿だと思う。 – Ant

1

私の答えである必要がありましただと思いますそれは自分自身を助けるための叫びの答えはありません。ごめんなさい。

私が述べたように、私はsubmitmodeの設定と値の変更の順​​序をチェックします。表示されるので、submitmodeを最初に設定してから、値を割り当てる必要があります。

変更が保存されました。

関連する問題