私は 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 リソースを表示できるでしょうか?
よろしくお願いします。