リボン ボタンが押されたときにエンティティ属性値を null に設定する単純な関数を作成しようとしています。今私が直面している問題は、エンティティに加えた変更が保存されず、フォームがリロードされ、以前の値が返されることです。
ボタン イベントには、'Task' アクティビティ属性 'actualend' を渡します。「実際の終了」フィールドはデフォルトで無効になっています。
ClearField: function (field) {
if (Xrm.Page.getAttribute(field) == null) return;
Xrm.Page.ui.controls.get(field).setDisabled(false);
Xrm.Page.getAttribute(field).setSubmitMode("always");
Xrm.Page.getAttribute(field).setValue(null);
if (Xrm.Page.data.entity.getIsDirty()) {
Xrm.Page.data.entity.save(); //also tried addOnSave(function)
}
}
デバッガーに続いて、すべての変更が正しく行われたことを追跡できましたが、save() メソッドでそれらが「破棄」され、フォームが以前の値でリロードされることを除きます。このコードは CRM UR8 では問題なく動作しますが、CRM UR13 では動作しません。
何か不足していますか?