Обычно мы отменяем событие Сохранить , используя preventDefault()
, выполняем необходимые шаги и переиздаем Сохранить , как , обсужденное здесь .
В вашем сценарии специальная кнопка Save & Route
обеспечивает сохранение, а также действие Apply Routing Rule . В этой последовательности нет режима сохранения, чтобы использовать getSaveMode
для перехвата и переиздания. Ссылка
Но вы можете попробовать пользовательскую кнопку Сохранить и маршрут , используя инструментальные средства ленты, и вызвать пользовательское действие Javascript для выполнения:
- Проверка вашей заметки проверка записи с использованием fetchXML / web api
- Сохранение записи
- Вызов действия
ApplyRoutingRule
с использованием webapi Подробнее
Не забывайте, что Xrm.WebApi
всегда асинхронный, вы должны выполнять цепочку вызовов внутри успешного обратного вызова или использовать XMLHttpRequest
для синхронного режима. Подробнее
Обновление : я создал этот фрагмент с помощью CRM REST Builder, попробуйте его.
var parameters = {};
var target = {};
target.incidentid = "00000000-0000-0000-0000-000000000000";
target["@odata.type"] = "Microsoft.Dynamics.CRM.incident";
parameters.Target = target;
var applyRoutingRuleRequest = {
Target: parameters.Target,
getMetadata: function() {
return {
boundParameter: null,
parameterTypes: {
"Target": {
"typeName": "mscrm.crmbaseentity",
"structuralProperty": 5
}
},
operationType: 0,
operationName: "ApplyRoutingRule"
};
}
};
Xrm.WebApi.online.execute(applyRoutingRuleRequest).then(
function success(result) {
if (result.ok) {
//Success - No Return Data - Do Something
}
},
function(error) {
Xrm.Utility.alertDialog(error.message);
}
);