06.09.2018, 15:31 | #1 |
Участник
|
Run action from javascript
Привет!
Давно не использовать экшены и в новой версии не знаю, как правильно их вызывать. Вернее надо с кастомной страницы вызвать экшен, который по определенной логике вышлет письма. Изначально был и есть диалог с этой логикой подвязанный под акаунт. Вопрос вот в чем: - если буду его вызывать с 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); } } |
|
|
|