0

CRM ソリューションをカスタマイズ中です。タイムゾーンが異なるため、ケースまたはタスクの期日が一貫していないことがあります。したがって、タイムゾーンが異なると、期日が 1 日前後する可能性があります。

これを修正するために、期日フィールド (論理名 = "followupby" ) のデフォルト時間を午後 7 時に設定しています。次のように、Java スクリプト関数を使用して期日フィールドの OnChange イベントを作成しています。ライブラリと関数名を設定する「ハンドラのプロパティ」ダイアログで、「実行コンテキストを最初のパラメータとして渡す」オプションをチェックします。したがって、以下の私の関数では、「コンテキスト」パラメーターを受け取っています。

setCaseDueDate: function (context) {

    var oField = context.getEventSource().getValue();
    var sTmp = oField;

    var hours =19;
    var minutes = 0;
    var seconds = 0;

    if (typeof (oField) != "undefined" && oField != null) {

        var newTime = new Date(sTmp.getFullYear(), sTmp.getMonth(), sTmp.getDate(), hours, minutes, seconds);
        context.getEventSource().setValue(newTime);
    }        
},

しかし、「このフィールドのカスタマイズされたイベントでエラーが発生しました。エラー 'setCaseDueDate' は未定義です。」というエラーが表示され続けます。

関数の特定の値が定義されていない可能性がありますか、それとも「コンテキスト」パラメーターを正しく取得していない可能性がありますか?

ありがとうございました。

** *更新* ** * ** * ** *

これを気にしないでください...私は自分の関数を既存のJavascript関数のコレクションに入れていましたが、別の新しいWebリソースに入れることにしましたが、現在は機能しています...奇妙ですが機能します。

ありがとう。

4

1 に答える 1

0

JavaScript 関数を定義するコードが間違っています。試してみてください

function setCaseDueDate(context) {
// rest of the code
}

日付を変更するには、コンテキストは必要ありません。たとえば、次のようになります。

function setCaseDueDate() {
   var fieldName = "followupby";
   var sTmp = Xrm.Page.getAttribute(fieldName).getValue();
   if (currentDate != null) {
      var newTime = new Date(sTmp.getFullYear(), sTmp.getMonth(), sTmp.getDate(), 19, 0, 0);
      Xrm.Page.getAttribute(fieldName).setValue(newTime);        
   }
}
于 2013-11-13T17:22:47.830 に答える