Кастомизация
09
Май
11

Кнопка создания связанной записи

Чтобы создать запись связанного объекта, мы должны перейти к связанному (или вложенному) Представлению, а затем нажать кнопку Создать. Чтобы несколько облегчить жизнь Пользователей, создадим кнопку на Ленте формы (для примера, объекта Организация), которая будет сразу открывать форму создания записи связанного объекта (также для примера, Контакта), без необходимости переходить к связанному Представлению.

  • Создайте новый JS Веб-ресурс, с таким кодом:
    function contact_add() {
        var parent_entity_code = "1";
        var child_entity_code = "2";
        var parentRecordId = Xrm.Page.data.entity.getId();
        
        var url = "" +
            Xrm.Page.context.getServerUrl() +
            "/main.aspx?etc=" + child_entity_code +
            "&extraqs=%3f_CreateFromId%3d" + parentRecordId +
            "%26_CreateFromType%3d" + parent_entity_code +
            "%26etc%3d" + child_entity_code +
            "%26pagemode%3diframe" +
            "&pagetype=entityrecord";
    
        window.open(url, 'new', 'width=800,height=500,toolbar=no,menubar=no,resizable=yes,status=yes');
    }
    

    Тут мы задаем коды родительского и дочернего объекта, а также получаем GUID родительской записи Организации;

  • Далее создайте Решение из одной Организации и выгрузите ее из системы. Далее отредактируйте файл кастомизации и добавьте на ленту новую кнопку (не забудьте только создать Веб-ресурс рисунка для кнопки):
    <RibbonDiffXml>
      <CustomActions>
        <CustomAction Id="newContact.CustomAction"
                      Location="Mscrm.Form.account.MainTab.Save.Controls._children"
                      Sequence="31" >
          <CommandUIDefinition>
            <Button Id="newContact.Button"
                    LabelText="Добавить дочерний контакт"
                    ToolTipTitle="Добавить дочерний контакт"
                    ToolTipDescription="Добавить дочерний контакт"
                    TemplateAlias="o1"
                    Image32by32="$webresource:new_contact_add_32.png"
                    Command="newContact.Command" />
          </CommandUIDefinition>
        </CustomAction>
      </CustomActions>
      <Templates>
        <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
      </Templates>
      <CommandDefinitions>
        <CommandDefinition Id="newContact.Command">
          <EnableRules>
            <EnableRule Id="Mscrm.Enabled" />
          </EnableRules>
          <DisplayRules/>
          <Actions>
            <JavaScriptFunction Library="$webresource:new_contact_add.js" FunctionName="contact_add" />
          </Actions>
        </CommandDefinition>
      </CommandDefinitions>
      <RuleDefinitions>
        <TabDisplayRules/>
        <DisplayRules/>
        <EnableRules/>
      </RuleDefinitions>
      <LocLabels />
    </RibbonDiffXml>
    
  • Импортируем Решение обратно и идем пробовать…
    З.Ы. Подобным образом можно создать функцию клонирования, если связать объект с самим собой и настроить маппинг для этой связи.



Комментарии (11)
  • Родион 09.05.2012

    не по сабжу конечно, но спрошу..)
    вытаскиваем возможные сделки в ексель обычным экпортом и в цены добавляются лишние три нуля.
    т.е. ладно когда по 5-10 сделок вытаскивается, а когда 140 дак это проблема все удалить, покапался не понимаю откуда эти три нуля берутся..(
    есть предложения)?
    и да неплохо было бы борд сделать для вопросов таких «продвинутых» юзеров к вам))

  • slivka_83 09.05.2012

    Они добавляются к копейкам или к сумме?
    Если к копейкам, то пробовали настраивать формат полей в Excel для отсечения ненужных нулей?
    С форматом отображения чисел в CRM играться не пробовали?
    Ролап последний?

  • Родион 09.05.2012

    в том то и дело что к сумме, если б к копейкам то все просто было б.
    в црм отображется все правильно , а на экспорте такой косяк..
    ролап это обнова? если она то нет))

  • slivka_83 09.05.2012

    Да ролап это обновление. Я в каком то из них встречал что исправлен касяк с лишними нулями при экспорте.

  • Родион 09.05.2012

    понял, попробую поискать))спасибо)
    хочется новые статейки увидеть на сайте, а так же какой-нить борд чтобы вопросы задавать иногда;)

  • skfd 09.05.2012

    А где можно почитать про синтаксис и возможность url в CRM?

  • Родион 09.05.2012

    кстати ролапы поставили, проблема исчезла, да и много фичей появилось нужных:)

  • Игорь 09.05.2012

    Можете подсказать?
    Что не так сделал?
    Создал решение, добавил на него сущность «Организация». Решение — неуправляемое у меня получилось а внутри организация — управляемая сущность (я так понял). Далее сделал экспорт, при этом никакие компоненты дополнительные я не выбирал, о которых говорит мастер, указал, что это решение неуправляемое и все.в архиве всего 3 файла, кастомизейшн открыл и RibbonDiff который там был, заменил на тот что Вы выложили.
    Далее создал ресурс png и js…
    Далее в решениях сделал иморт, указал мой архив. Все импортировалось.. ошибок небыло. НА всякий случай нажал опубликовать. Но в организациях не появилось кнопки.
    Что я упустил?

  • slivka_83 09.05.2012

    Измененный файл кастомизации добавили в архив?
    Опубликовали все настройки? или просто опубликовали?

  • Игорь 09.05.2012

    Да, измененный архив подгружаю обратно. я первый раз пытался его загрузить не создав веб ресурc js и png… он мне ошибку выдал при попытке импортирования.
    Сначала нажимал «Опубликовать все настройки» в списке решений, потом уже заходил в само решение и нажимал там «опубликовать» 🙁
    Может как-то можно проверить, на чем затык может быть?

*

code