2016-08-05 4 views
0

私は、動的に表示される質問とそれに答える能力を含むカスタムエンティティ用のコードをいくつか作成しました。私は以前に回答した質問を表示し、回答を更新できるようにすることに取り組んでいます。これを行うために、私はカスタムエンティティフォームのonLoadとfire onSaveという特定の関数を呼び出します。Dynamics CRM - onLoadとOnSaveのイベントをフォームスクリプトで処理する

私の問題は、保存が行われるたびにonLoadコードが実行され、onSaveコードの出力を効果的に消去することです。フォームを初めて読み込んだときにonLoadコードを実行するだけです。それ以外の場合は、onSaveを実行したいコードが他のすべてを処理する必要があります。

私が解決しようとした方法は、Xrm.Page.ui.getFormType();を使用していました。これは、1または2の値を返します.1は作成中のレコードに対応し、2は更新中のレコードに対応します。これは1つのシナリオで機能しました。カスタムエンティティの新しいレコードが作成されたときにonLoadコードを実行したくない場合、getFormType()がこれを解決しました。しかし、レコードを保存したときに戻り値が変更され、OnLoadコードでOnSaveが実行されてしまいました。

これを解決する方法についてのアイデアはありますか?私はgetFormType()のようなものを見いだすことはできますが、私は物事をどうやって行かせるかについて少し損失があります。ありがとう!

答えて

1

onChangeイベントハンドラをmodifiedon属性に追加すると、この値はレコードの保存後に変更されます。グローバルパラメータを設定してその値を設定し、その値を使用してonLoadの再起動を停止します。

var canRunOnLoadCode = true; 

//form onLoad function 
function onLoad() { 
if(!canRunOnLoadCode) return; 
//on load code below 
} 

//register the below function on change of modified on 
function afterOnSave(){ 
canRunOnLoadCode = false; 
} 
+0

ありがとうございます。それは素晴らしい仕事でした。 –

関連する問題