TRSWCM模板触发发布相关说明
最后更新时间:2021年07月27日 人气:...

1.何为触发发布

  网站制作发布过程中,通常发布一篇文档,需要自动更新使用到此文档的栏目或者站点首页,而这样的首页可能有很多,为了保证细览页面和概览页面更新的实时性和高效性,这些首页概览页面不需要手工去操作发布,而是在发布细览的同时,会自动触发其发布。

2.触发发布场景说明

2.1 静态触发关系

  在WCM发布逻辑中,如果新闻中心栏目首页模板包含如下内容:

 <TRS_Documents ID="娱乐新闻">
                  ......
 </TRS_Documents>

  那么娱乐新闻栏目首页更新时,新闻中心栏目就会同时也发布更新。

新闻中心与娱乐新闻栏目之间的触发关系,我们称之前静态触发关系,在模板保存时,系统将进行自动分析并进行保存。

2.2 动态触发关系

  为了减少模板的撰写量,同时也为了做专题,一般也都会按照下面的方式撰写模板:

<!-- 获取当前栏目的第一个子栏目的文档 -->      
 <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>

  以上情况的模板都有一个共同特性,就是随着WCM的使用,可能会建立新的栏目,而此时发布时,用户期望提取新栏目的内容,但在模板保存时,这些栏目当时还是没有新建的,这种触发关系我们称之为动态触发关系,动态关系不会在模板新建或修改时建立,而需要后期手工运行触发发布分析工具。


2.3 动态触发发布置标场景汇总

2.3.1 以下置标指定了childIndex属性

"TRS_OUTLINE", "TRS_DOCUMENTS", "TRS_VIEWDATAS"

2.3.2 以下置标指定了parentchannelid属性

TRS_ROLLDOCUMENTS

2.3.3 包含在TRS_Channels置标中的以下置标

"TRS_ROLLDOCUMENTS", "TRS_OUTLINE", "TRS_DOCUMENTS","TRS_VIEWDATAS

2.3.4 触发指定模板的发布

TRS_PAGEGENERATE

3.通过工具建立触发关系

  前面提到,静态触发关系在模板新建或修改时系统将自动建立,而动态触发关系需要手工运行工具建立,运行该工具后,将建立触发关系。

工具使用方式:

  以管理员身份进入WCM工具台,手工执行触发发布关系创建工具

http://<WCM服务器IP + 端口>/wcm/wcm_use/

4.如何查看当前系统中的触发关系

  通过wcm工具可以查看当前系统的触发关系,包括静态和动态的触发关系。 以管理员身份进入WCM工具台,手工执行触发发布相关工具:

http://<WCM服务器IP + 端口>/wcm/wcm_use/

  点击栏目触发分析工具,查看触发关系已经建立

5.其他

  对于一些特殊的需求,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触发的为站点


热门评论