Как создать электронное письмо с несколькими адресами в Dynamics Online с помощью WebApi - PullRequest
0 голосов
/ 23 октября 2018

Мне было трудно понять, как создать шаблон электронной почты, а затем создать электронное письмо с несколькими адресами с помощью WebApi.

Я сталкивался со многими сообщениями, некоторые из которых были нацелены на более старые версии CRM, или они использовалиC #.В этом разделе приведены ответы на все вопросы о переходе к рабочему коду.

Вот некоторые из постов, на которые я ссылался: Создание действия по электронной почте с использованием конечных точек REST в CRM2011-2013

Веб-API Dynamics 365 для отправки по электронной почте (именно этот ответ: https://stackoverflow.com/a/47455785/44815)

1 Ответ

0 голосов
/ 23 октября 2018
  1. Чтобы использовать шаблон электронной почты для автоматической генерации содержимого электронной почты, необходимо использовать действие " InstantiateTemplate ".

Действие принимает в качестве входного объектакоторый выглядит следующим образом:

var instantiateTemplateRequest = {
        TemplateId: templateId,
        ObjectType: objectType,
        ObjectId: objectId,

        getMetadata: function () {
            return {
                boundParameter: null,
                parameterTypes: {
                    "TemplateId": {
                        "typeName": "Edm.String",
                        "structuralProperty": 1
                    },
                    "ObjectType": {
                        "typeName": "Edm.String",
                        "structuralProperty": 1
                    },
                    "ObjectId": {
                        "typeName": "Edm.String",
                        "structuralProperty": 1
                    }
                },
                operationType: 0,
                operationName: "InstantiateTemplate"
            };
        }
    };

Который затем может быть передан:

Xrm.WebApi.online.execute (instantiateTemplateRequest)

Theвозвращаемый объект имеет 2 свойства: тему и описание.

Чтобы создать сообщение электронной почты из шаблона:

Вам необходимо создать запись электронной почты, используя метод CreateRecord Он принимает в качестве входных данных объект следующего типа:

var activityParties = [];
        activityParties.push({
            participationtypemask : participationTypeMasks.From,
            "partyid_queue@odata.bind" : "/queues("+ queueId+ ")"
        });
        //setup 2 send-to addresses
        activityParties.push({
            participationtypemask : participationTypeMasks.To,
            "partyid_account@odata.bind" : "/accounts(" + accountIdTo1 + ")"
        });
        activityParties.push({
            participationtypemask : participationTypeMasks.To,
            "partyid_account@odata.bind" : "/accounts(" + accountIdTo2 + ")"
        });

        //examples of using contacts        
        // activityParties.push({
        //     participationtypemask : participationTypeMasks.To,
        //      "partyid_contact@odata.bind" : "/contacts(00000000-0000-0000-0000-000000000000)"
        //  });

        //examples of using the current user as the from address
        //  var currentUserId = Xrm.Page.context.getUserId().replace("}", "").replace("{", "");
        //  activityParties.push({
        //     participationtypemask : participationTypeMasks.From,
        //      "partyid_systemuser@odata.bind" : "/systemusers("+currentUserId+")"
        //  });

        var email = {
            subject: emailTemplate.subject,
            description: emailTemplate.description,
            email_activity_parties: activityParties,
            "regardingobjectid_incident@odata.bind" : "/incidents(" + incidentId + ")"
        };

Возвращение - это просто идентификатор объекта созданной записи.

У меня есть полный образец кода, доступный по адресу: https://github.com/rajrao/CRM-Tools/tree/master/JavaScript/CreateEmail

...