Для начала - когда Вы закрываете Возможную сделку event.Mode равнёется 5 (деактивация). Новое состояния, новый статус и информация о закрытии сделки можно увидеть вставив следующий скрипт в OnSave обработчик формы возможной сделки, затем сохранив форму и опубликовав сущность:
if (event.Mode == 5)
{
alert(crmFormSubmit.crNewState.value + '\n' + crmFormSubmit.crNewStatus.value + '\n' + crmFormSubmit.crActivityXml.value);
}
Создайте и закройте сделку с результатом Выигрыш:
Вы получите такой результат:
Если вы попытаетесь закрыть сделку со статусом проигрыш:
Вы увидите такой результат:
Как этом может быть использовано - например Вы хотите, чтобы поле описание было обязательным к заполнению когда сделка закрывается с результатом выигрыш, а поле Конкурент становилось обязательным когда сделка проиграна. Вставьте следующий код в OnSave обработчик карточки возможной сделки:
if (event.Mode == 5)
{
var status = crmFormSubmit.crNewState.value;
var xml = crmFormSubmit.crActivityXml.value;
var XmlDoc = new ActiveXObject("Microsoft.XMLDOM");
XmlDoc.async = false;
XmlDoc.loadXML(xml);
//If status is won
if (status == 1)
{
var descriptionnode = XmlDoc.selectSingleNode("//opportunityclose/description");
if (descriptionnode == null || descriptionnode.nodeTypedValue == "")
{
alert("Opportunity can't be closed!\nFill description field in Close Opportunity Dialogue");
event.returnValue = false;
return false;
}
}
else if (status == 2)
{
var competitornode = XmlDoc.selectSingleNode("//opportunityclose/competitorid");
if (competitornode == null || competitornode.nodeTypedValue == "")
{
alert("Opportunity can't be closed!\nFill competitor field in Close Opportunity Dialogue");
event.returnValue = false;
return false;
}
}
}
Сохраните форму и опубликуйте возможную сделку, затем попробуйте закрыть сделку.
Случай выигранной сделки:
Случай проигранной сделки:
Кастомизации такого рода не задокументированы, потому скорее всего они - неподддерживаемые...
Приветствую!
ОтветитьУдалитьИзвиняюсь за, возможно, глупый вопрос, но как можно найти этот OnSave обработчик карточки возможной сделки и достучаться до него?
У вас CRM 4.0 или версия старше?
УдалитьУ меня Dynamics 365, который самый актуальный.
УдалитьЕсли это последний, то это не сработает. Это работало для 4.0 и 2011. А чего именно вы хотите добиться от полученных данных? Валидации?
Удалить