1

我想使用純Javascript從MS Dynamics CRM Online 2011添加/檢索數據。我搜索了整整一天,但只能找到與Dynamics SDK,C#,VB或JScript做到這一點。Javascript - 從MS Dynamics CRM Online中添加和檢索數據

有沒有什麼辦法可以在純JavaScript中做到這一點?我只需要找到一個Web服務來發送/獲取數據,但無法找到它。有沒有這樣的Web服務或API存在?請幫助我完全困惑!謝謝。

+0

你運行來自CRM本身的JavaScript?或者你是從另一個網站上做的嗎? – 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就好了,所以我不確定這是什麼)

解決此問題的常用方法是編寫自己的Web服務, CRM,然後使用SDK來檢索和更新數據,並以平靜的方式將其公開給您。

正如Guido所指出的那樣,您應該能夠使用來自Java的SOAP請求,但我也只是在CRM內部完成了這項工作,而且我不確定您將面臨什麼樣的身份驗證問題。

+0

這意味着我必須在任何情況下都使用Jscript和Dynamics SDK環境,並且純JavaScript沒有可用的API或Web服務。我對嗎? –

+0

OData端點在CRM上下文之外是不可用的,但這並不意味着不可能僅通過JavaScript查詢CRM,可以使用SOAP端點(當然不是簡單的方法) –

+0

@GuidoPreite您能否給我有些方向?現在我只需要「添加新的潛在客戶」和「獲取現有潛在客戶」以向用戶展示他們。 –

2

如果需要如他人所述,您可以使用SOAP進行連接(可能不推薦,但正如你想知道的那樣)。如果你不知道如何使用SOAP/JavaScript的話,我建議你閱讀本: Simplest SOAP example

要使用Office 365連接到在線CRM(所有的Windows Live帳戶遷移到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); 

更改端點引用地址需要根據您的CRM區域

這將返回兩個安全令牌和密鑰標識符。

然後你需要做你的添加和檢索。如果谷歌「CRM 2011 SOAP」和以下四個功能「創建」,「更新」,「檢索」和「RetrieveMultiple」你應該得到大量的肥皂樣本例如:

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

相關問題