2

私は CRM 初心者なので、誤解や誤解を許してください。

このような 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
                 }

私の質問は、Web リソースを正常に作成するには、現在設定しているものよりも多くのエンティティ メタデータを設定する必要がありますか?

作成コードはエラーをスローしていませんが、指定されたソリューションの crm サーバーで新しく作成した JavaScript Web リソースを見つけることができません。デフォルトのソリューションにWebリソースを追加していると推測したため、Webを精査し、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);
                }

私の質問は、solutionuniquename を取得すると、適切なソリューションで Web リソースが作成され、crm サーバーで JavaScript Web リソースを表示できるでしょうか?

よろしくお願いします。

4

1 に答える 1

0

私はこれがかなり遅いことを知っていますが、jsがcrmシステムに存在しない場合はcreaterequestを送信するか、jsがすでに存在する場合はjsを特定のソリューションに関連付けることで解決しました。ちなみに、crmでjsを作成すると、デフォルトのソリューションと更新するソリューションの両方に追加されます。

于 2012-11-01T06:24:51.030 に答える