0

現在、少数のエンティティを除くすべてのエンティティの一括編集を無効にすることを検討しています。そのうちの 1 つは「キャンペーン レスポンス」エンティティです。

これを達成するために、次のことを行いました。

  • グローバル レベルで OOTB 編集ボタンを非表示にします (私の知る限り、この方法で OOTB リボン ボタンを編集することはできません)。
  • グローバル レベルで新しいカスタム編集ボタンを作成します (SelectionCountRule ノードを除く)。
  • 一括編集が必要なエンティティごとに:
    • カスタム編集リボン ボタンを非表示にする
    • SelectionCountRule ノードで新しいカスタム編集ボタンを作成します。

これで、任意のエンティティのアクティビティ サブグリッドに移動するまで、すべて正常に動作します。私がこの問題に取り組んだ方法により、アクティビティ フォームに 2 つの編集ボタンが表示されるようになりました (1 つは通常の編集ボタン用で、もう 1 つはキャンペーン レスポンスの編集ボタン用です)。

これを正確に修正する方法はわかりませんが、助けが必要なアイデアがあります:

  • 「一括編集」編集ボタンを削除する
  • グローバル レベルで、カスタム編集ボタンの選択ルールに JavaScript を追加します
    • JavaScript は、選択されたエンティティの論理名を取得します (すべてのサブグリッドで)
    • エンティティがキャンペーンの反応である場合は、SelectionCountRule をリボンに有効化 (または追加?)

これが可能かどうかはわかりません。主に、JavaScript をリボンに有効にするルールで何が許可されているかについてはわかりません

4

1 に答える 1

0

皆さん、気にしないでください。

私がしなければならなかったのは、OOTB ボタンをオーバーライドすることだけでした (ここに示すように: http://howto-mscrm.blogspot.com.au/2011/04/how-to-series-6-how-to-overrideenable.html ) いくつかの単純な XML:

<EnableRule Id="sample.AllGrids.AllEntities.MainTab.Management.Edit.Command.EnableRule.CustomRule">
  <CustomRule FunctionName="canBulkEdit" Library="$webresource:new_sample_generic_functions_javascript_library">
    <CrmParameter Value="SelectedControlSelectedItemCount" />
    <CrmParameter Value="SelectedEntityTypeName" />
  </CustomRule>
</EnableRule>

およびいくつかの JavaScript:

canBulkEdit = function (oSelectedControlSelectedItemCount, oSelectedEntityTypeName) {
    var canBulkEditEntity = false;
    if (oSelectedControlSelectedItemCount < 2 || oSelectedEntityTypeName == "campaignresponse")
        canBulkEditEntity = true;

    return canBulkEditEntity;
}

また、ActivityPointer "Entity" にいくつかの追加調整を行う必要がありました。activitypointer には別の一括編集ボタンがあることがわかりました

于 2012-07-12T03:25:54.170 に答える