Кастомизация
03
Ноя
0

Предзаполнение электронной почты

В CRM есть функциональность, позволяющая в один клик открыть форму создания нового письма в предпочитаемом почтовом клиенте (например, в Outlook’е). Дилемма в том, что это форма всегда открывается пустая, а было бы неплохо автоматически предзаполнять ее какими-либо данными.

Чтобы «исправить» это создадим свою кнопку (для объекта Контакт), которая будет выполнять требуемый функционал…

  • Создайте JS Веб-ресурс emailContact.js с таким кодом:
    emailContact = function () {
        // Кому
        var to = Xrm.Page.getAttribute("emailaddress1").getValue();
    
        // Тема
        var sSubject = 'Контакт - ' + Xrm.Page.getAttribute("firstname").getValue() + ' ' + Xrm.Page.getAttribute("lastname").getValue();
    
        // Содержимое письма
        var sCustomer = '';
        if (Xrm.Page.getAttribute("parentcustomerid").getValue().length > 0) {
            sCustomer = escape('\n\n') + 'Организация:' + escape('\t') + Xrm.Page.getAttribute("parentcustomerid").getValue()[0].name;
        }
        var sJobtitle = '';
        if (Xrm.Page.getAttribute("jobtitle").getValue()) {
            sJobtitle = escape('\n\n') + 'Должность:' + escape('\t') + Xrm.Page.getAttribute("jobtitle").getValue();
        }
        var sRptID = Xrm.Page.data.entity.getId().replace('{', '').replace('}', '');
        var sLink = escape('\n\n') + "http://crm2011:5555/userdefined/edit.aspx?id=" + sRptID + "&etc=10011";
        var sBody = '---' + sCustomer + sJobtitle + sLink;
    
        // Формируем и открываем письмо
        var sMailTo = 'mailto:' + to + '?subject=' + sSubject + '&body=' + sBody;
        parent.location = sMailTo;
    }
    

    Этот код формирует из полей формы ссылку mailto и открывает ее;

  • Добавьте на форму Контакта такую кнопку:
    <RibbonDiffXml>
      <CustomActions>
        <CustomAction Id="createEmail.CustomAction"
                      Sequence="1"
                      Location="Mscrm.Form.contact.MainTab.Collaborate.Controls._children">
          <CommandUIDefinition>
            <Button Id="createEmail.Button"
                    Command="createEmail.Command"
                    Sequence="1"
                    LabelText="Отправить письмо"
                    ToolTipTitle="Отправить письмо"
                    ToolTipDescription="Отправить письмо"
                    TemplateAlias="o1"
                    Image32by32="$webresource:new_icon_createemail_32.png" />
          </CommandUIDefinition>
        </CustomAction>
      </CustomActions>
      <Templates>
        <RibbonTemplates Id="Mscrm.Templates"></RibbonTemplates>
      </Templates>
      <CommandDefinitions>
        <CommandDefinition Id="createEmail.Command">
          <EnableRules>
            <EnableRule Id="Create.Disable"/>
          </EnableRules>
          <DisplayRules />
          <Actions>
            <JavaScriptFunction Library="$webresource:new_emailContact.js" FunctionName="emailContact" />
          </Actions>
        </CommandDefinition>
      </CommandDefinitions>
      <RuleDefinitions>
        <TabDisplayRules />
        <DisplayRules />
        <EnableRules>
          <EnableRule Id="Create.Disable">
            <FormStateRule State="Create" InvertResult="true" />
          </EnableRule>
        </EnableRules>
      </RuleDefinitions>
      <LocLabels />
    </RibbonDiffXml>
    

    Здесь простая кнопка, которая вызывает JS-функцию. Срабатывает она для любой формы кроме Создания. Не забудьте добавить соответствующий Веб-ресурс рисунка в систему.

Готово – открываем и заполненный Контакт и жмем…




Комментарии (0)

*

code