私は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();
応答@ckellerに感謝します。私はその変更を加えましたが、私はまだ同じ問題を抱えています。私は何らかの競合状態が発生していると信じています。 onsaveを実行する非常に短いスクリプトを使用すると、更新されたフィールドが保存され、PostRetrieveに正しく表示されます。しかし、私がいくつかの他のエンティティを照会するより複雑なスクリプトを使用すると(そして時間がかかります)、PostRetrieveに更新が残っていません。 –
私は実際にこれを回避する方法を考え出しました。 Saveイベントを防止し、更新されたフィールドがダーティかどうかを確認することで、値を更新した後で強制的に保存することができました。 –
自分自身でこの問題に遭遇しましたが、これはAsync JSのために発生していると思いますか?誰もがこれを処理するより良い方法を認識していますか?保存を妨げてコールバックでコールを再コールする必要があるのは馬鹿だと思う。 – Ant