通过JavaScript编辑Dynamics CRM 365系统表单WebResource遇问题
Dynamics 365 CRM表单动态添加WebResource的布局异常问题
我最近在尝试通过代码动态编辑Dynamics CRM 365的系统表单,实现WebResource的添加、删除和编辑操作。其中WebResource对应的XML结构示例如下:
<row> <cell id="{8e331865-dcbd-4820-03e6-edb908641d02}" showlabel="false" colspan="1" auto="false" rowspan="15"> <labels> <label description="Test" languagecode="1033" /> </labels> <control id="WebResource_Test" classid="{9FDF5F91-88B1-47f4-AD53-C11EFC01A01D}"> <parameters> <Url>a24_/DocumentUpload/index.html</Url> <Data>dfsfsdfsfsdfsfds</Data> <PassParameters>false</PassParameters> <ShowOnMobileClient>false</ShowOnMobileClient> <Security>false</Security> <Scrolling>auto</Scrolling> <Border>true</Border> <WebResourceId>{315563AC-5C70-E711-80D7-00155D10673A}</WebResourceId> </parameters> </control> <events> <event name="onload" application="false"> <dependencies /> </event> </events> </cell> </row>
目前删除和编辑操作都能正常工作,但添加新WebResource时遇到了棘手的问题:代码层面看起来没什么错误,但打开CRM的客户表单这类系统表单后,布局完全异常;更糟的是,要是尝试在CRM表单编辑器里调整后再发布,表单经常会损坏,甚至直接打不开。查看表单XML后发现,里面多了一些新增的占位元素,还有无法点击的行/元素。
我现在有两个核心疑问:
- Dynamics 365 CRM是否支持在表单编辑器之外通过代码直接编辑表单?
- 是不是我在添加WebResource的时候遗漏了某些关键要点?
我已经考虑到的要点有:
- 所有WebResource控件都使用了固定的classid:
{9FDF5F91-88B1-47f4-AD53-C11EFC01A01D} - WebResourceId使用的是CRM数据库中WebResource实体的真实ID
- 每次修改表单后都会通过代码执行发布操作
还有一些不确定是否需要考虑的要点:
- 没有为WebResource设置的rowspan创建对应数量的空行(比如当rowspan=6时,是否需要额外创建5个空行来填充布局?)
- Cell的id只是生成了新的GUID,但不确定这个ID是否需要关联其他实体,或者有没有合规性要求
内容的提问来源于stack exchange,提问作者Milos
相关产品推荐
相关产品推荐

