1、需求描述
在WCM发布逻辑中,如果新闻中心栏目首页模板包含如下内容:
<TRS_Documents ID="娱乐新闻"> ...... </TRS_Documents>
那么娱乐新闻栏目首页更新时,新闻中心栏目就会同时也发布更新,为了减少模板的撰写量,同时也为了做专题,一般都会这么写模板:
<!-- 获取当前栏目的第一个子栏目的文档 --> <TRS_Documents ChildIndex="0"> ...... </TRS_Documents> <!-- 分别获取当前栏目的各个子栏目的文档 --> <TRS_Channels> <TRS_Documents> ...... </TRS_Documents> </TRS_Channels>
从WCM52发布体系调整以后,WCM都会鼓励在模板中聚合内容,不推荐采用检索栏目或者自动分发的方法聚合内容,所以项目中会有很多TRS_RollDocuments的灵活使用,解决用户各种发布需求,一般直接指定ChannelIds都可以正常触发发布,但是对于如下情况,不能自动触发:
<!-- 将新闻中心下的各级子栏目的文档都显示 --> <TRS_RollDocuments ParentChannelId="新闻中心" ChildLevel="5" AutoTrigger="true"> ........ </TRS_RollDocuments> <!-- 将分别将站点下一级子栏目下的各级子栏目的文档都显示 --> <TRS_Channels> <TRS_RollDocuments ParentChannelId="新闻中心" ChildLevel="5" AutoTrigger="true"> ........ </TRS_RollDocuments> </TRS_Channels>
2、安装部署
有以上情况的项目,并且需要自动触发发布,请按照以下步骤进行更新
适用范围:WCM52、WCM60
1、 停止系统,备份WCM应用目录中的WEB-INF/classes/com目录
2、 解压附件,直接拷贝目录到WCM应用目录中
3、 启动系统,使用管理员身份登录,访问产生触发关系的工具:
http://<WCMIP>:<WCM端口>/wcm/wcm_use/childindex_quote_analyer.jsp
确定栏目ID,查看他会触发那些首页生成的工具:
http://<WCM访问方式>/wcm/wcm_use/folders_quoted_list.jsp?ChannelId=114
3、强制建立触发关系
对于一些特殊的需求,WCM分析不出引用的情况(一般可以分析出来,分析不出的项目请将站点导出以回复方式附上,我们可以协助诊断),系统还支持手工强行加入触发发布的关系。
例如:
用户要求娱乐新闻栏目一旦有更新以后,新闻中心栏目必须同时更新,系统分析不出他们的触发关系,假定娱乐新闻ID为10,新闻中心ID为4,那么执行以下SQL即可:
insert into WCMChannelChildIndexQuote(TemplateId, FolderType, FolderId, QuoteChannelId) values(0, 101, 4, 10);
用户要求娱乐新闻栏目一旦有更新以后,XXX站点必须同时更新,系统分析不出他们的触发关系,假定娱乐新闻ID为10,XXX站点ID为2,那么执行以下SQL即可:
insert into WCMChannelChildIndexQuote(TemplateId, FolderType, FolderId, QuoteChannelId) values(0, 103, 2, 10);
注意FolderType的值为103,栏目10触发的为站点
4、注意事项
1、这个是解决结合栏目的结构信息和模板内容动态分析出触发发布逻辑,如果模板的文档列表置标内容进行了修改,有类似这样的关键变化(加了TRS_Channels或者修改Childex等等);以及模板配置在了新的栏目上,那么都需要执行一次这个JSP
2、这个JSP执行不能有异常抛出,如果有异常,需要根据情况修正模板,然后再重新分析
3、如果感觉模板写对了,但是发布栏目A的时候,但是栏目B还是不被更新,可以执行分析以后使用SQL查询是否有记录确认是否可以分析得出:
select * from WCMChannelChildIndexQuote where QuoteChannelId=<栏目A的ID> and FolderType=101 and FolderId=<栏目B的ID>;
5、总结
栏目之间是否触发发布,只要是看两张表
[1] WCMTemplateQuote:模板引起的触发发布表
[2] WCMChannelChildIndexQuote:系统根据系统已有的栏目信息动态分析出的触发发布关系