如何以编程方式正确创建javascript webresource

时间:2012-08-29 10:36:53

标签: javascript dynamics-crm-2011 webresource

我是个新手,所以请原谅我的误解或不幸事件。

我正在尝试以编程方式创建一个使用OrganizationServiceproxy的早期绑定的webresource(javascript或jscript是准确的),就像这样

          var context = new OrganizationServiceContext(service);

          var resource = (from wr in context.CreateQuery<WebResource>()
                          where wr.Name == name && wr.ComponentState.Value == 0
                          select wr).FirstOrDefault();

                if (resource == null)
                {
                  WebResource javascriptWebResource = new WebResource()
                        {
                            Name = name,
                            Description = name,
                            LogicalName = name,
                            DisplayName = value,
                            Content = Convert.ToBase64String(fileBytes),
                            WebResourceType = new OptionSetValue(3)

                        };
                    //context.AddObject(javascriptWebResource);
                    //context.SaveChanges();
                     service.Create(javascriptWebResource);
                }
                else
                {
                 //update the webresource
                 }

我的问题是 - 我是否需要设置比我目前为成功创建网络资源而设置的更多实体元数据?

创建代码不会引发任何错误,但是我无法在指定解决方案中的crm服务器上找到我新创建的javascript webresource。我猜想它是在默认解决方案中添加网络资源,因此我搜索了网页,并在sdk中看到了这样的样本

  Guid theGuid = _serviceProxy.Create(wr);

                //If not the "Default Solution", create a SolutionComponent to assure it gets
                //associated with the ActiveSolution. Web Resources are automatically added
                //as SolutionComponents to the Default Solution.
                if (ActiveSolution.UniqueName != "Default")
                {
                    AddSolutionComponentRequest scRequest = new AddSolutionComponentRequest();
                    scRequest.ComponentType = (int)componenttype.WebResource;
                    scRequest.SolutionUniqueName = ActiveSolution.UniqueName;
                    scRequest.ComponentId = theGuid;
                    var response = (AddSolutionComponentResponse)_serviceProxy.Execute(scRequest);
                }

我的问题是 - 如果我检索解决方案序列,那么它是否会在相应的解决方案中创建Web资源,我将能够在crm服务器上看到javascript web资源?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我知道这已经很晚了但是如果js系统中不存在js,或者如果js已经存在则将js与特定解决方案相关联,我通过发送createrequest来解决它。顺便说一下,当你在crm中创建一个js时,它会被添加到默认解决方案和你想要更新的解决方案中。