Webcenter sites Approved and Publish Problem—发布失败
问题描述:
在使用sites Mirror to server发布内容方式时,发现有一些资产处于暂挂状态,于是点进资产去重新批准,一般出现这种情况是因为当前资产有相关联的子资产未进行审批造成的,此时只要将相关的子资产审批通过后,就可以将当前资产脱离暂挂状态,则可批准成功。
但是,我在使用发布过程中遇到如下问题,明明已经将关联的资产全部发布过去了,但是需要发布的资产还是暂挂状态,并且如下图显示的详细信息。
英文版:
Approved, but approval for publish to destination was based on versions of the child assets that no longer exist
点击批准,却得出批准失败状态。
知识背景:
在flex asset中,一般以Attribute结尾的表中存的是此种flex asset中定义的所有Attribute,_Mungo结尾的表中存放的则是一个flex asset资产实例中对应flex asset Attribute 的值。
造成原因:
原PageDefinition中引用了一个PageAttribute,PageAttribute为asset类型,后因种种原因,将此PageAttribute从PageDefinition移除并将它删除。
并且发现,批准失败的资产都是基于曾经对被删除的PageAttribute引用过的PageDefinition。
在sites中,flex asset都是多表关联的结构,所以,一个flex asset的实例是存放在多个表中的,如果我们删除了flex asset引用的Attribute,sites只会删除相应资产以Attribute结尾的表中的记录,并不会去删除以_Mungo结尾的表中实例对该属性的引用,而审批系统则会去根据这里的信息去查找需要被审批的资产,所以会造成如上发布失败的情况。
解决方案:
找到相应flex assets的_Mungo表:
点击cs_attrid属性,将数据排序,这里存放的是当前flex asset实例引用的flex attribute的ID,如果这里的ID值不存在在该资产以Attribute(例:PageAttribute)表中,则将该数据删除,这样,之前不能批准的资产就可以批准成功了。
发表评论
Want to join the discussion?Feel free to contribute!