09.10.2008, 00:00 | #1 |
Участник
|
Деактивация интереса с помощью SubmitCrmForm
CRM 4.0
На тулбаре интереса делаю кнопку и вставляю в нее следующий код: Код: crmForm.SubmitCrmForm(5, true, true, false); // 5=Deactivate Кто-нибудь знает почему не срабатывает код и как тогда деактивировать интерес? |
|
09.10.2008, 08:32 | #2 |
Moderator
|
Вопрос в другом, чем не устраивает стандартная кнопка "Преобразовать интерес"?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
09.10.2008, 12:38 | #3 |
Участник
|
Необходимо добавить еще одно преобразование интереса - в кастомную сущность.
На сколько я понимаю стандартные преобразования зашиты в библиотеку. Поэтому есть идея разделить код стандартного окна преобразования инетреса: если происходит стандартное преобразование - выполнять стандартные действия; если нестандартное - выполнять свой веб-сервис и деактивировать интерес. Начал подходить к задаче с конца - с деактивации интереса. Можно было бы конечно декстивировать его тем же самым своим веб-сервисом, но наткнулся на SubmitCrmForm. Если бы оно работало то было бы все намного проще. Последний раз редактировалось ZooY; 09.10.2008 в 12:45. |
|
09.10.2008, 13:03 | #4 |
Moderator
|
Сдается мне, что закрытие интереса - это уже последний этап. Вам так или иначе потребуется создавать в коде нужные объекты, переносить в эти записи данные из интереса и т.д. Там же интерес и закроете. Из скрипта главное OnLoad пальнуть, чтобы формачка обновилась.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
09.10.2008, 14:47 | #5 |
Участник
|
Да это понятно что там еще действий навалом и закрытие - это последнее. Но я с этой байдой целый день просидел и вопрос теперь уже принципиальный - почему не работает
Кстати, а почему для обновления - OnLoad? Я всегда считал что OnLoad выполняется при открытии формы... |
|
09.10.2008, 15:39 | #6 |
Moderator
|
А как иначе? Событие отрисовки формы. Оно и после OnSave зовется.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
09.10.2008, 17:59 | #7 |
Участник
|
в 4-ке интерес деактивирует вод такой ансаппортный код:
Код: unqualifyLead(4); ZooY, у меня к Вам другой вопрос: Код: crmForm.SubmitCrmForm(5, true, true, false); // 5=Deactivate |
|
09.10.2008, 18:02 | #8 |
Moderator
|
Вот, случайно наткнулся на статью, как программно преобразовать интерес в контакт или организацию. Вполне возможно, что она вам поможет:
http://www.codeproject.com/KB/cs/CRM...tyMoniker.aspx Сейчас нет возможности проверить, как этот код работает с кастом-сущьностью, возможно посмотрю на работе. И последнее, насколько я понял, приведённый в коде пример только преобразует объект один в другой (вероятно, используя правила сопоставления атрибутов). После вызова InitializeFromResponse rps = (InitializeFromResponse)Service.Execute(req); Полученый объект нужно еще сохранить! service.Create(rps.Entity); Информация из блога Ronald Lemmen
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
09.10.2008, 18:04 | #9 |
Moderator
|
Денис, а ваш откуда?
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
09.10.2008, 18:08 | #10 |
Участник
|
2 Артём:
Как обычно, поработал со скальпелем над CRM. |
|
09.10.2008, 19:13 | #11 |
Участник
|
У меня совершенно аналогичная ситуация. Приведенную мною строку можно увидеть в файле SFA/leads/edit.aspx (только код режима там не 5 - Deactivate, а 16 - LeadQualify). Дальше поиски в инете дали некое понимание того, что делает SubmitCrmForm. Номера режимов есть в SDK (статья "Form Event: OnSave").
|
|
09.10.2008, 19:16 | #12 |
Участник
|
Кстати, Денис, а откуда информация о значениях параметра unqualifyLead?
|
|
10.10.2008, 12:10 | #13 |
Участник
|
Сори, насчет unqualifyLead туплю, нашел
|
|
10.10.2008, 17:01 | #14 |
Участник
|
Да, тут вообщем-то ничего сложного:
unqualifyLead принимает в качестве параметра statuscode, значения которого можно посмотреть в соответствующем атрибуте Интереса для State=Дисквалифицирован. А почему про SubmitCrmForm спрашивал - в 3-ке действительно можно деактивировать объекты кодом, который вы привели с двумя НО: 1. Код работает только для custom сущностей. 2. Это не весь код. Полный код выглядит так: Код: oAcStateCode = createHiddenInput('acStateCode', 1); oAcStatusCode = createHiddenInput('acStatusCode', 2); if(!crmForm.SubmitCrmForm(5, true, true, false)) { deleteInput(oAcStateCode); deleteInput(oAcStatusCode); } Кстати, в 4-ке этот код тоже будет работать, только они поменяли у инпутов префиксы с "ac" на "new". Вот... Ну, удачных выходных! |
|
10.10.2008, 18:56 | #15 |
Участник
|
То-есть по идее вот такой вот код должен закрывать интерес со статусом "Квалифицирован"
Код: oAcStateCode = createHiddenInput('newStateCode', 2); oAcStatusCode = createHiddenInput('newStatusCode', 3); if (!crmForm.SubmitCrmForm(5, true, true, false)) { deleteInput(oAcStateCode); deleteInput(oAcStatusCode); } Последний раз редактировалось ZooY; 10.10.2008 в 19:07. |
|
13.10.2008, 14:36 | #16 |
Участник
|
Разумеется.
С интересом всё по-другому. Если уж совсем интересно, то unqualifyLead выглядит так: Код: function unqualifyLead( unqualifyStatus ) { var oNewStatus = createHiddenInput( "ulNewStatus", unqualifyStatus ); if(!crmForm.SubmitCrmForm(15, true, true, false)); { deleteInput( oNewStatus ); } } |
|