1

Я хочу добавить/получить данные из MS Dynamics CRM Online 2011 с использованием чистого Javascript. Я искал весь день, но мог найти это только с помощью Dynamics SDK, C#, VB или JScript.Javascript - добавление и извлечение данных из MS Dynamics CRM Online

Есть ли способ сделать это в чистом javascript? Мне просто нужно найти веб-сервис для отправки/получения данных в/из, но не смог найти его. Существует ли такая веб-служба или api? Пожалуйста, помогите, я полностью смущен !!! Благодарю.

+0

Использует javascript из самого CRM? Или вы делаете это с другого сайта? – Daryl

+0

На самом деле я не хочу делать это из мобильного приложения, где пользователь будет вводить данные и отправлять их в CRM Online. Я использую Appcelerator Titanium. –

ответ

0

Два способа взаимодействия с Javascript и CRM - через службы OData или SOAP. Самый простой способ - использовать OData, если это возможно.

Проблема, с которой вы столкнетесь, - это аутентификация с помощью Odata. OData Access is not supported outside of CRM javascript and Silverlight. (Хотя я использую LinqPad для создания моих запросов Odata, и он запрашивает CRM с ним просто отлично, поэтому я не уверен, что это такое)

Общим методом обойти это является создание собственного веб-сервиса, который аутентифицируется на CRM, а затем использует SDK для извлечения и обновления данных, подвергая их вам спокойным образом.

Как указывает Гвидо, вы должны использовать SOAP-запросы от Java, но я только делал это изнутри CRM, и я не уверен, какие проблемы с проверкой подлинности вы столкнетесь.

+0

Это означает, что я должен использовать среду Jscript и Dynamics SDK в любом случае, и нет чистого api или веб-сервиса для чистого javascript. Я прав? –

+0

Конечная точка OData недоступна вне контекста CRM, но это не означает, что невозможно запросить CRM только с помощью JavaScript, SOAP endopoint может использоваться (конечно, не самый простой способ) –

+0

@GuidoPreite Можете ли вы дать мне в каком-то направлении? Пока я должен просто «добавить новые лидеры» и «Получить существующие лидеры», чтобы показать их пользователю. –

2

При необходимости, как упоминалось другими, вы МОЖЕТЕ подключиться с помощью SOAP (возможно, не рекомендуется, но, как вы хотите знать). Если вы не знаете, как использовать SOAP/JavaScript, то я предлагаю вам прочитать: Simplest SOAP example

Для подключения к CRM Online с помощью Office 365 (все Текущие счета для Windows переходят на Office 365), то вам необходимо получить безопасности то жетоны используют это для ваших запросов.

Ниже приведен запрос для токенов в PHP, которые вы должны иметь возможность рефакторировать для JavaScript.

$TokenSOAP = '<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> 
           <s:Header> 
           <a:Action s:mustUnderstand="1">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue</a:Action> 
           <a:MessageID>urn:uuid:%s</a:MessageID> 
           <a:ReplyTo> 
            <a:Address>http://www.w3.org/2005/08/addressing/anonymous</a:Address> 
           </a:ReplyTo> 
           <a:To s:mustUnderstand="1">%s</a:To> 
           <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
            <u:Timestamp u:Id="_0"> 
            <u:Created>%sZ</u:Created> 
            <u:Expires>%sZ</u:Expires> 
            </u:Timestamp> 
            <o:UsernameToken u:Id="uuid-cdb639e6-f9b0-4c01-b454-0fe244de73af-1"> 
            <o:Username>%s</o:Username> 
            <o:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">%s</o:Password> 
            </o:UsernameToken> 
           </o:Security> 
           </s:Header> 
           <s:Body> 
           <t:RequestSecurityToken xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust"> 
            <wsp:AppliesTo xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"> 
            <a:EndpointReference> 
             <a:Address>urn:crmapac:dynamics.com</a:Address> 
            </a:EndpointReference> 
            </wsp:AppliesTo> 
            <t:RequestType>http://schemas.xmlsoap.org/ws/2005/02/trust/Issue</t:RequestType> 
           </t:RequestSecurityToken> 
           </s:Body> 
          </s:Envelope>'; 

     $TokenSOAP = sprintf($TokenSOAP, self::gen_uuid(), 'https://login.microsoftonline.com/RST2.srf', self::getCurrentTime(), self::getNextDayTime(), $username, $password); 

Изменение Endpoint Reference адрес, как требуется в зависимости от вашего региона УРК

Это вернет два маркера безопасности и идентификатор ключа.

Затем вам необходимо добавить и восстановить. Если вы Google «CRM 2011 SOAP» и следующие четыре функции «Создать», «Обновить», «Извлечь» и «RetrieveMultiple» вы должны получить много образцов SOAP, например:

http://www.mscrmconsultant.com/2012/07/create-update-delete-record-using.html