2013-02-14 52 views
4

我需要使用Tridion 2009 SP1每周自动发布两次xml页面。根据我与SDL支持团队的讨论,没有可用的开箱即用功能。我也看到了2011年的解决方案,但不是2009年的SP1。你能帮我设置自动发布的一些指针吗?Tridion 2009 SP1:如何为重复出版计划内容页面?

+0

自动发布不是开箱即用,但您可以安排发布请求。其他方法可能正在考虑您是否有定期的CMS操作来触发更新,这可能会提示事件系统,或者您是否希望将来轻松安排多个日期(2009年相当于GUI扩展又名自定义页面)。 – 2013-03-06 03:09:57

回答

3

正如您发现的那样,开箱即无法做到这一点。最简单的方法是用powershell或.net编写一个小脚本,它通过Interop使用TOM调用发布操作,并使用您的CMS或发布服务器上的Windows任务计划程序进行调度。你也可以写一个Windows服务,但这可能是矫枉过正的。

如果迁移到2011年或2013年,你会很好地使用核心服务,而不是TOM。

+0

感谢Chris的快速反应。在我们的应用程序中,我们只使用基于Java的编程。那么是否有一种方法可以使用Java编程而不是.net编写此发布操作并使用Windows任务计划程序进行触发? – raniworld 2013-02-15 18:44:35

+0

不是真的,除非您尽快使用过时的Business Connector(但如果您尚未使用它,那将会是一个艰难的学习曲线)因为2009年没有Core Service。它应该只有大约5行代码虽然。让我知道你是否需要VBScript或C#示例。 – 2013-02-15 19:26:42

+0

如果您可以与我们分享样品,那么我们可以相应地进行修改并了解如何将其应用到我们的应用程序中,这将非常有帮助。谢谢。 – raniworld 2013-02-15 21:25:20

3

VBScript文件发布一个页面实际上只是几行。我现在不能测试此权利,但用外表套上对象模型文档(提示:这是一个CHM文件),你应该能够解决什么我错过了这一点:

Dim pageId, targetId 
Dim tdse, page 
pageId = "tcm:12-12-64" 
targetId = "tcm:0-1-65537" 
set tdse = CreateObject("TDS.TDSE") 
tdse.initialize() 
set page = tdse.GetObject(pageId, 1) 
call page.Publish(targetId, false, false, false) 

保存在一个.vbs文件,你可以用cscript filename.vbs执行。运行脚本的用户必须是具有足够权限的有效Tridion用户才能将页面发布到该目标。如果您使用的是LDAP,那么运行该脚本的用户必须是有效的模拟用户,并且您需要在创建TDSE对象后调用tdse.Impersonate(ValidUserName)

此外,pageIdtargetId值应该与您的页面和目标的TCM Uris相匹配。

相关问题