Dynamics CRM 4.0 のセキュリティロールの設定はそこそこ柔軟に行えるのですが、特定のエンティティのフォームでのみメモを追加できなくする方法を調べる機会があったため、その方法の覚書を記載します。

サンプルでは、取引先担当者(contact) の 詳細フォームの メモタブの非表示と、詳細フォームのメニューのその他の操作→メモの追加と、ファイルの添付 メニューを非表示にしています。メモタブは一瞬表示されてしまいます。本記事のスクリプトが実施している処理はノンサポートの操作です。

動作確認は、Dynamics CRM 4.0 UR 11 を適用したオールインワン環境で行っています。クライアントはIE8を使用しました。

1. フォームのカスタマイズ

取引先担当者の詳細フォームを表示すると下図のようにメモタブと、メニューにメモの追加、ファイルの添付メニューが表示されます。(もちろん権限が必要です)。

取引先担当者を例として、メモ関連のメニューとメモタブを非表示にしてみます。ナヴィゲーションペインの設定→カスタマイズを選択し、エンティティのカスタマイズ画面を表示します。取引先担当者のフォームのカスタマイズ画面を表示し、フォームのプロパティダイアログを表示します。フォームプロパティ画面のイベントタブでOnLoadを選択し、Editボタンをクリックします。イベントを有効にするチェックボックスをチェックし、以下のようにscriptを入力します。

// Notes(メモ) タブ非表示
tab3Tab.style.display = 'none'
// 表示する場合//tab3Tab.style.display = 'inline'
//メモの追加,ファイルの添付メニューを非表示にする
if(document.all._MIlocAddObjTo5 != undefined){
  document.all._MIlocAddObjTo5.style.display = "none";
}
// ファイルの添付
if(document.all._MIlocAddFileTo5 != undefined){
  document.all._MIlocAddFileTo5.style.display = "none";
}
if(document.all._MBlocAddFileTo5 != undefined){   
  document.all._MBlocAddFileTo5.style.display = "none";   
}

スクリプトでtab3Tabと指定しているメモタブのIDは tabnTab (n:0ベースのtabの位置)となります。タブを追加、削除している場合はIDが異なる可能性があるので適宜修正してください。

 下図のように編集したらOKボタンをクリックします。

カスタマイズを公開します。

2. 動作確認

既存のcontact(取引先担当者)レコードをダブルクリックして表示すると、メモタブとメモの追加、ファイルの添付メニューが表示されなくなることを確認できます。

3. まとめ

説明は以上です。メモは一瞬表示されてしまいますが、メモタブを非表示にできます。また、その他の操作(Actions)からメモの追加、ファイルの添付メニューを非表示にできます。