CRM 2011 では、アカウントの下に接続を追加する機能があります。[接続の追加] をクリックすると、デフォルトで「連絡先」に設定されている名前を参照/検索できます。選択ボックスを切り替えることなく、デフォルトで「連絡先」を「アカウント」に切り替える方法はありますか?
3 に答える
どうやらこれをやっているようです:
document.getElementById("record2id").setAttribute("defaulttype", "1");
しかし、私は少し検索を行い、これは接続のダイアログでは機能しません。この代替案を確認してください。
これは接続では機能しません。
接続では、ルックアップのオブジェクト タイプ コードは、Microsoft Dynamics CRM\CRMWeb_static\entities\connection.js の Mscrm.Connection.preSelectObjectType 関数で設定されます。
のような行があります。
$v_2.set_defaultType($v_3);
オブジェクトの種類を設定します。$v_3 は、選択したロールに応じて設定されます。
したがって、次のように変更する必要があります
$v_2.set_defaultType(Mscrm.EntityTypeCode.Account.toString());
ただし、ロール ベースのルックアップ構成は失われるため、変更することをお勧めします。さらに、これはサポートされていないため、connection.js を変更する新しいロールアップをインストールするときは、更新動作を考慮する必要があります (つまり、更新されたシステムから新しい connection.js ファイルを手動でコピーし、再度カスタマイズします)。
ここに 2 つのアプローチがあります。どちらも機能しますが、最初の例では、空であってもタイプ レコード アイコンがルックアップ フィールドに追加されます。2 番目はそれを行いませんが、内部メソッド名に依存するため、少し危険です。
1番目の方法:
if (IsNull(Xrm.Page.getAttribute('record2id').getValue())) {$("#record2id")[0].DataValue = [{ "type": scrm.EntityTypeCode.SystemUser.toString() }];}
2番目の方法
document.original_preSelectObjectType = Mscrm.Connection.preSelectObjectType;
Mscrm.Connection.preSelectObjectType = function (roleLookup, peerRoleLookup) {
if (IsNull(roleLookup.DataValue) && IsNull(peerRoleLookup.DataValue) && !window.event.srcElement.DataValue) {
var $v_0 = window.event.srcElement;
$v_0.defaulttype = Mscrm.EntityTypeCode.SystemUser.toString();
$v_0.DefaultViewId = "";
$v_0.Lookup(true, false, null, false);
}
else {
document.original_preSelectObjectType(roleLookup, peerRoleLookup); }}