Аддоны
24
Июл
2

CustomEntityMerger

CustomEntityMerger – это аддон который позволит Вам выполнять слияние записей Вам сливать (почти) любых объектов (в том числе и кастомных). Также как это работает с Контактами, Организациями и Интересами.

Установка:

  1.  Скачайте и импортируйте в систему Решение CustomEntityMerger;
  2. Решение добавит в систему новую сущность – Custom Entity Merge Configuration Record. Для каждого объекта, которому нужна подобная функциональность создайте запись этого объекта и укажите в ней два параметра: название объекта и значение StatusCode для записи, которая будет деактивирована.
    Примечание:

    •  Для корректной работы Вам понадобится английский языковой пакет;
    • При создании этой записи в целевой объект будет добавлено новое (служебное) поле (cem_mergexml), а также зарегистрирован шаг плагина;
  3. Создайте в CRM подобные кнопки на Представлениях нужных объектов (можно как основного так и связанного Представления):
    <CustomActions>
      <CustomAction Id="CRM.HomepageGrid.new_test.MainTab.Management.Merge.CustomAction"
                    Location="Mscrm.HomepageGrid.new_test.MainTab.Management.Controls._children"
                    Sequence="41">
        <CommandUIDefinition>
          <Button Id="CRM.HomepageGrid.new_test.MainTab.Management.Merge"
                  Command="CRM.HomepageGrid.new_test.MainTab.Management.Merge.Command"
                  Sequence="120"
                  ToolTipTitle="$Resources:Ribbon.HomepageGrid.account.Record.Merge.MergeRecords"
                  LabelText="$Resources:Ribbon.HomepageGrid.account.Record.Merge.MergeRecords"
                  ToolTipDescription="$Resources:Ribbon.Tooltip.Merge"
                  TemplateAlias="isv"
                  Image16by16="\_imgs\Ribbon\MergeRecords_16.png"
                  Image32by32="\_imgs\Ribbon\MergeRecords_32.png" />
        </CommandUIDefinition>
      </CustomAction>
    </CustomActions>
    <Templates>
      <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
    </Templates>
    <CommandDefinitions>
      <CommandDefinition Id="CRM.HomepageGrid.new_test.MainTab.Management.Merge.Command">
        <EnableRules>
          <EnableRule Id="new_test.OfflineStateRule" />
          <EnableRule Id="new_test.SelectionCountRule" />
        </EnableRules>
        <DisplayRules>
          <DisplayRule Id="new_test.MergePrivilegeRule" />
          <DisplayRule Id="new_test.WritePrivilegeRule" />
        </DisplayRules>
        <Actions>
          <JavaScriptFunction FunctionName="CEM_Launch" Library="$webresource:cem_/merger/launch.js">
            <CrmParameter Value="SelectedEntityTypeName" />
            <CrmParameter Value="SelectedControlSelectedItemIds" />
          </JavaScriptFunction>
        </Actions>
      </CommandDefinition>
    </CommandDefinitions>
    <RuleDefinitions>
      <TabDisplayRules />
      <DisplayRules>
        <DisplayRule Id="new_test.WritePrivilegeRule">
          <EntityPrivilegeRule EntityName="new_test" PrivilegeDepth="Basic" PrivilegeType="Write" />
        </DisplayRule>
        <DisplayRule Id="new_test.MergePrivilegeRule">
          <MiscellaneousPrivilegeRule PrivilegeName="Merge" />
        </DisplayRule>
      </DisplayRules>
      <EnableRules>
        <EnableRule Id="new_test.OfflineStateRule">
          <CrmOfflineAccessStateRule State="Offline" InvertResult="true" />
        </EnableRule>
        <EnableRule Id="new_test.SelectionCountRule">
          <SelectionCountRule Maximum="2" Minimum="2" AppliesTo="SelectedEntity" />
        </EnableRule>
      </EnableRules>
    </RuleDefinitions>
    

    Помимо самой кнопки тут 2 правила отображения (проверка, можно ли пользователи изменять записи текущего объекта и наличие разрешения на слияние) и 2 правила включения (проверка на количество выделенных записей и находимся ли мы офлайн);

Можно сливать… 🙂



Комментарии (2)
  • brian 24.07.2013

    How do i get theis solution to work on Opportunities?

  • slivka_83 24.07.2013

    It is difficult…

*

code