CRM 2011エンティティフォームのカスタムリボンボタンをクリックすると、外部リンクを呼び出すJavascriptを作成しています。 JavaScriptでフォームが汚れているかどうかチェックしています。フォームが汚れている場合(ユーザーによっていくつかのフィールドが変更されたことを意味します)、JScriptはXrm.Page.data.entity.save()を使用して強制的にフォームを保存します。しかし、強制フィールドが満たされていない場合、強制保存は行われず、これらのフィールドを埋めるためのカスタムメッセージを表示し、制御の流れを終了させ、外部リンクを開くべきではありません。フォームが保存されているかどうかを取得する方法..以下のようにコードのフォームが保存されていることを確認してください。CRM 2011 Javascript
ワンピース:
function buttonOnClick() {
if (Xrm.Page.data.entity.getIsDirty())
{
Xrm.Page.data.entity.save();
}
else
{
window.open('http://www.google.com', 'name', 'width=900,height=800');
}
}
これを試しましたか?私はCRMがあなたのためにそれを行い、完了していない必須フィールドに関する標準エラーを表示して、保存を防止すると思います。 – glosrob
はい、警告メッセージを表示しますが、実行を終了しません。フォームが保存されていないことがわかると、手動で実行を終了できます。 –
私は必要なフィールドを無視して、とにかくそれを保存することに驚いています - これは、dbの整合性を破るだろうか?彼らは間違いなく「必須」であり、「推奨」されていませんか? – glosrob