12.03.2013, 16:21 | #1 |
Участник
|
Вызов плагина одной crm с риббона другой
Всем привет. Собственно пытаюсь реализовать штуку, которая при нажатии на кнопку на риббоне, в crm2011, вызывает плагин в crm 4. Пытаюсь отправить soap запрос на assign, но что то не получается. Вообще, такое реально сделать? При нажатии на кнопку, он просит ввести данные от crm 2011. И в каком направлении копать лучше? Заранее всем спасибо!
Вот soap запрос: X++: var xml = '<?xml version="1.0" encoding="utf-8"?>' + '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">' + '<soap:Header>' + ' <CrmAuthenticationToken xmlns=\"http://schemas.microsoft.com/crm/2007/WebServices\">' + ' <AuthenticationType xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">0</AuthenticationType>' + ' <OrganizationName xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">crm4</OrganizationName>' + ' <CallerId xmlns=\"http://schemas.microsoft.com/crm/2007/CoreTypes\">00000000-0000-0000-0000-000000000000</CallerId>' + ' </CrmAuthenticationToken>' + ' </soap:Header>' + '<soap:Body>' + '<Execute xmlns="http://schemas.microsoft.com/crm/2007/WebServices">' + '<Request xsi:type="AssignRequest">' + '<Target xsi:type="TargetOwnedDynamic">' + '<EntityName>opportunity</EntityName>' + '<EntityId>' + Xrm.Page.data.entity.getId() +'</EntityId>' '</Target>' + '<Assignee>' + '<PrincipalId xmlns="http://schemas.microsoft.com/crm/2006/CoreTypes">' + Xrm.Page.data.entity.attributes.get("ownerid").getValue()[0].id +'</PrincipalId>' + '<Type xmlns="http://schemas.microsoft.com/crm/2006/CoreTypes">User</Type>' + '</Assignee>' + '</Request>' + '</Execute>' + '</soap:Body>' + '</soap:Envelope>'; var xmlHttpRequest = new ActiveXObject('Msxml2.XMLHTTP'); xmlHttpRequest.Open('POST', '/mscrmservices/2007/CrmService.asmx', false); xmlHttpRequest.setRequestHeader('SOAPAction', 'http://schemas.microsoft.com/crm/2007/WebServices/Execute'); xmlHttpRequest.setRequestHeader('Content-Type', 'text/xml; charset=utf-8'); xmlHttpRequest.setRequestHeader('Content-Length', xml.length); xmlHttpRequest.send(xml); Последний раз редактировалось Taker1796; 12.03.2013 в 16:24. |
|
12.03.2013, 17:31 | #2 |
Участник
|
Не понятно, у вас установлены одновременно crm 4 и 2011 на одном сервере, или просто к 2011 вы пытаетесь обратится через вызов старого сервиса?
И при чем тут плагин? |
|
12.03.2013, 17:42 | #3 |
Участник
|
|
|
12.03.2013, 17:51 | #4 |
Участник
|
Вы обращаетесь к сервису по урл "/mscrmservices/2007/CrmService.asmx", который похоже указывает на тот же сервер где страница с риббоном.
Вы не путаете плагин и метод веб сервиса? Плагин нельзя вызвать напрямую, он вешается на события. Если у вас повешен плагин на assign, то при вызове метода assign в веб сервисе, плагин должен сработать. |
|
|
За это сообщение автора поблагодарили: Taker1796 (1). |
12.03.2013, 18:18 | #5 |
Участник
|
Цитата:
Сообщение от Anros
Вы обращаетесь к сервису по урл "/mscrmservices/2007/CrmService.asmx", который похоже указывает на тот же сервер где страница с риббоном.
Вы не путаете плагин и метод веб сервиса? Плагин нельзя вызвать напрямую, он вешается на события. Если у вас повешен плагин на assign, то при вызове метода assign в веб сервисе, плагин должен сработать. |
|
12.03.2013, 18:25 | #6 |
Участник
|
Цитата:
Только сервера должны находиться в одном домене, иначе ничего не получится из за политики безопасности. |
|
|
|