2016-09-27 10 views
0

私が行ったカスタムアクティビティのためにMARK COMPLETEリボンボタンをオーバーライドする必要があります。カスタムアクティビティのためのMARK COMPLETEリボンボタンをオーバーライド

アクティビティを完了させるためにフィールドを設定する必要があります。

私は天気のフィールドをチェックしなければなりません。

フィールドをチェックしてアクティビティを完了するためのJS関数を作成し、この関数をRIBBON WORKBENCHを使用してリボンボタンに適用する予定です。

質問があります: - アクティビティを完了するJSコマンドがありますか? - この関数をリボンボタンに追加すると、デフォルトの 'complete'関数をオーバーライドするか、この関数を何とか無効にする必要がありますか?

この質問を詳細に説明する必要があるかどうかは自由に感じてください。

答えて

1

デフォルトの動作を上書きしないで、すぐにCUが適用されたときやCRMがアップグレードされたときのやり方に戻ります。

OnSaveは、この事実を利用してOnSaveをトリガーします。なぜ、OnSaveで保存モードの値を探しませんか? Save Mode 58 on activities are Save as Completedとあなたのタスクを実行しますか?

function onSave(executionContext) { 
    var eventArgs = executionContext.getEventArgs(); 
    var saveMode = eventArgs.getSaveMode(); 
    if (saveMode === 58) { //Mark as complete 
     //do something 

     //checks failed,don't want the user to mark as complete? 
     eventArgs.preventDefault(); 
     return false; 
    } 
}; 
+0

これはおそらく私の問題を解決するでしょう。私は今それを実装します。私はこの機能をどこに適用するのか尋ねるだけでいいですか?フォーム、フィールド、またはリボンボタンなどに追加する必要があります。私はCRMが初めてで、いくつかのことは私のために多くの混乱を招く。 –

+1

CRM - >カスタマイズ - >フォームプロパティ - >イベントハンドラ - >フォームOnSaveイベント - 上記の関数名を持つイベントハンドラを追加し、「実行コンテキストを最初のパラメータとして渡す」チェックボックスをオフにします。 – dynamicallyCRM

0

私はあなたの応答に基づいていくつかの機能を作った。これが仕事をすることを願っています。

function onSave(executionContext) { 
    var eventArgs = executionContext.getEventArgs(); 
    var saveMode = eventArgs.getSaveMode(); 
    if (saveMode === 58) { 
     var sendDate = Xrm.Page.getAttribute("ad_sampleproductssenton"); 
     Xrm.Page.ui.clearFormNotification('sampleId'); 

     if((sendDate=== null)||(sendDate==="undefined")){ 
      Xrm.Page.ui.setFormNotification("You have to populate 'Sample Product Sent On' field!", "ERROR", 'sampleId'); 
      eventArgs.preventDefault(); 
      return false; 

     }else{ 
      Xrm.Page.ui.clearFormNotification('sampleId'); 
     } 

    } 
}; 
関連する問題