none
MSCRM2011 关于从Internet用web service更新crm数据的问题 RRS feed

  • 问题

  • 大家好,

    我想问下在MSCRM2011里怎么从Internet用web service更新远程crm服务器上的数据,对于webservice需要特殊的验证吗,是不是有什么对应的webservice初始化的实例吗,在crm4中我知道可以借助IFD的部署用ticket验证对应的webservice,不知道crm2011是怎样的,希望能够得到大家的帮助,先谢谢大家了~~


    crm4.0学步
    2011年1月27日 16:09

答案

全部回复

  • 在SDK的samplecode\js\restendpoint\jscriptrestdataoperations\jscriptrestdataoperations\scripts文件夹下有样例代码jscriptrestdataoperations.js,下面是摘抄的一段,希望对你所有帮助

    var ODataPath;
    var startTime; //So that the duration time can be captured.
    var accountName = "Sample Account";
    var serverUrl;

    function init() {
     // Set Global Variables
     var context = GetGlobalContext(); //GetGlobalContext function exists in ClientGlobalContext.js.aspx
     serverUrl = context.getServerUrl();
     ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
     startTime = new Date();
     createAccountRecord(accountName);
    }

    function createAccountRecord(Name) {
     showMessage("createAccountRecord function START");
     var account = new Object();
     account.Name = Name;
     var jsonAccount = window.JSON.stringify(account);

     var createAccountReq = new XMLHttpRequest();
     createAccountReq.open("POST", ODataPath + "/AccountSet", true);
     createAccountReq.setRequestHeader("Accept", "application/json");
     createAccountReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
     createAccountReq.onreadystatechange = function () {
      createAccountReqCallBack(this);
     };
     createAccountReq.send(jsonAccount);
     showMessage("createAccountRecord function END");
    }


    daemon lin
    2011年1月27日 16:15
  • 你好,我的需求是我现在有两个公司A和B,A和B是两个不一样的系统,B公司有MSCRM 2011,我现在需要在A公司限存系统下用CRM的Web Service通过Internet访问B公司的MSCRM 2011来更新MSCRM 2011的本地数据。你的意思是不是在这种情况下使用Web Service和同一个域内使用CRM Web Service是一样的,如果不一样最好能有C#的示例,先谢谢了~~
    crm4.0学步
    2011年1月28日 9:55
  • 我的理解,你的这种情况,必须使用C#代码来实现了,以为使用JQuery是必须基于同一个CRM系统内的,否则会出现认证的问题。如果是C#代码,那么就是在创建OrganizationServiceProxy时,注意传入的ClientCredentials参数,分别能够正确对应到相应组织的用户信息。其他的应该没有什么了。


    daemon lin
    2011年1月29日 17:39
  • 我的理解,你的这种情况,必须使用C#代码来实现了,以为使用JQuery是必须基于同一个CRM系统内的,否则会出现认证的问题。如果是C#代码,那么就是在创建OrganizationServiceProxy时,注意传入的ClientCredentials参数,分别能够正确对应到相应组织的用户信息。其他的应该没有什么了。


    daemon lin


    你好,谢谢,你能说的再具体点吗,"注意传入的ClientCredentials参数,分别能够正确对应到相应组织的用户信息。其他的应该没有什么了。"你的意思是不是就是跟普通情况下初始化Web Service一样吗,如果不是最好能给出相应的初始化实例,先谢谢了~~


    crm4.0学步
    2011年1月31日 9:56
  •             Uri orgServiceUri = new Uri("http://crm2011rc/<orgname>/xrmservices/2011/organization.svc");
                IServiceConfiguration<IOrganizationService> orgConfigInfo =
                                ServiceConfigurationFactory.CreateConfiguration<IOrganizationService>(orgServiceUri);
                var creds = new ClientCredentials();
                creds.Windows.ClientCredential = new NetworkCredential("administrator", "password","demo");
                OrgService = new OrganizationServiceProxy(orgConfigInfo, creds);
                var osp = OrgService as OrganizationServiceProxy;
                WhoAmIRequest req = new WhoAmIRequest();
                var response = OrgService.Execute(req) as WhoAmIResponse;
                MessageBox.Show("You are connected as userid " + response.UserId.ToString());


    刀客 | MSN:caims@techsun.com | BLOG:http://caims.cnblogs.com | 提供微软CRM高级开发顾问外包
    2011年2月1日 4:11
    版主
  • 非常感谢,也就是对于crm2011来说,初始化时跟普通情况下访问web cervice一样,不需要像部署过ifd的crm4那样还要先取得ticket。再补问确认下,是不是"Uri orgServiceUri = new Uri("http://crm2011rc/<orgname>/xrmservices/2011/organization.svc");"中的url只要用部署过IFD后在外网访问的地址就行了~~

    crm4.0学步
    2011年2月1日 10:56
  • 是的,你可以在IE上先打开

    http://crm2011rc/<orgname>/xrmservices/2011/organization.svc


    刀客 | MSN:caims@techsun.com | BLOG:http://caims.cnblogs.com | 提供微软CRM高级开发顾问外包
    2011年2月14日 2:43
    版主