MSCRM4.0 为实体添加附件功能

本文介绍了一种方法来修复CRM实体中不慎删除或未考虑到的附件功能,包括备份数据库、新建实体、对比XML、调整配置、导入并发布修改后的XML等步骤,确保实体能够重新支持添加附件和注释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有的时候我们在创建完实体之后发现,由于自己的不小心,在创建实体关系选项中删除了注释(包括附件)的功能,或者由于之前考虑的不周到,没想到该实体将来会使用到附件的功能,这样的话,如果实体简单,可以通过删除新建然后完成,如果实体中字段过多,这个过程就相当的麻烦了。下面是我使用的一种方法,用来改变这个状态。

 

首先请备份数据库

 

  1. 新建两个实体new_noattachment,new_attachment。new_noattachment建立的时候将关系中的附件勾去掉,new_attachment这个保留
  2. 导出这两个实体的XML,使用XML对比工具(例如:ExamXML),对比一下这两个实体有什么地方是不一致的
  3. 发现不一致的地方主要有两个:FormXml这个节点里面的tabs里面少一个tab(这个tab就是用来添加注释或者附件的);在EntityRelationships节点里面少了一个关系,关系是和实体Annotation对应起来的。上面两个不一样的地方比较容易对比出来,但是还有一个比较隐蔽的地方,因为实体的不一直,可能你会在意不到,但是如果这个地方不改动的话更改完成导入之后会有错误产生:The entity relationship role of the referencing entity is required when creating a new one-to-many entity relationship new_noattachment_Annotations。   这个需要注意的地方就是在EntityInfo节点里面的HasRelatedNotes这个节点的值,如果是False请修改为True
  4. 修改HasRelatedNotes节点的值,将False修改为True
  5. FormXmltabs里面添加一个tab,tab如下:          

                <tab id="{4f91fc75-4667-4e75-a628-212b09a6257e}" IsUserDefined="0">
                  <labels>
                    <label description="注释" languagecode="2052" />
                  </labels>
                  <sections>
                    <section showlabel="true" showbar="true" locklevel="1" id="{84de336e-7eaa-49a3-b119-d4190792e6d9}" IsUserDefined="0" height="auto">
                      <labels>
                        <label description="注释" languagecode="2052" />
                      </labels>
                      <rows>
                        <row>
                          <cell colspan="2" showlabel="false" rowspan="5" auto="true" id="{46a7d824-10c2-4476-906a-d8efaea4f5df}">
                            <labels>
                              <label description="注释文字" languagecode="2052" />
                            </labels>
                            <control id="notescontrol" classid="{06375649-c143-495e-a496-c962e5b4488e}" />
                          </cell>
                        </row>
                        <row />
                        <row />
                        <row />
                        <row height="auto" />
                      </rows>
                    </section>
                  </sections>
                </tab>


6.   在EntityRelationships节点里面添加一个新的关系,XML如下:

 

<EntityRelationship Name="new_noattachment_Annotations">
      <EntityRelationshipType>OneToMany</EntityRelationshipType>
      <ReferencingEntityName>Annotation</ReferencingEntityName>
      <ReferencedEntityName>new_noattachment</ReferencedEntityName>
      <CascadeAssign>Cascade</CascadeAssign>
      <CascadeDelete>Cascade</CascadeDelete>
      <CascadeReparent>Cascade</CascadeReparent>
      <CascadeShare>Cascade</CascadeShare>
      <CascadeUnshare>Cascade</CascadeUnshare>
      <ReferencingAttributeName>objectid</ReferencingAttributeName>
      <RelationshipDescription>
        <Descriptions>
          <Description description="与注释关联的对象的唯一标识符。" languagecode="2052" />
        </Descriptions>
      </RelationshipDescription>
      <field name="objectid" requiredlevel="none" imemode="auto" lookupstyle="single" lookupbrowse="0">
        <displaynames>
          <displayname description="关于" languagecode="2052" />
        </displaynames>
      </field>
    </EntityRelationship>

 

7.   完成上面步骤之后将对应的CRM中的原有实体删除

8.   导入修改过的XML,导入成功之后发布,查看新导入的时候是否已经修改为可添加附件和注释的实体。

 

我改动的方法大致就是上面这样,如果还有其他更好的方法请大家提出来共同学习

 

谢谢


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值