Привет!
Давно не использовать экшены и в новой версии не знаю, как правильно их вызывать.
Вернее надо с кастомной страницы вызвать экшен, который по определенной логике вышлет письма. Изначально был и есть диалог с этой логикой подвязанный под акаунт.
Вопрос вот в чем:
- если буду его вызывать с JS то делать глобальным и прокидывать параметры нужные процессу - акаунт и контакт;
- указать сущность акаунт и тогда при вызове просто прокидывать один лишь контакт, но тут мне не ясно как указать что все будет осуществляться в контексте данного акаунта, там можно как это инициализировать?
Код:
function CallCustomAction() {
try {
var reqName = "new_sendfollowupemail";
var clientUrl = Xrm.Page.context.getClientUrl();
var parameters = {
"Account":
{
"@odata.type": "Microsoft.Dynamics.CRM.account",
"accountid": "C4CA0B66-59B9-E611-8106-C4346BDC0E01",
"name": "Account Test",
"accountnumber": "123"
}
"Contact":
{
"@odata.type": "Microsoft.Dynamics.CRM.contact",
"contactid": "C4CA0B66-59B9-E611-8106-C4346BDC0E01",
"name": "Contact Test",
"accountnumber": "321"
}
};
//Create request
var req = new XMLHttpRequest();
req.open("POST", clientUrl + "/api/data/v8.2/" + reqName, true);
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.onreadystatechange = function () {
if (this.readyState == 4 /* complete */) {
req.onreadystatechange = null;
if (this.status == 200 || this.status == 204) {
//success callback
console.log("Success");
} else {
//error callback
console.log("Error");
}
}
};
req.send(JSON.stringify(parameters));
} catch (e) {
alert(e.message);
}
}