我们有许多用VBScript为SDL Tridion 5.2编写的自定义脚本。这些脚本使用TOM API在Tridion对象上执行许多批量操作。在SDL Tridion 2011中运行VBScript自定义页面
在最近升级到2011 SP1之后,我们现在需要更改大量组件模板中使用的组件模板,并且最好的方法是运行脚本来更新必要的页面和组件演示。
以前,我们可以运行一些类似于下面代码的VBScript来进行这种更改。在2011年,我们是否仍然可以运行这些脚本来进行这种更改?
这与在Content Manager服务器(Windows 2008 R2)上启用传统ASP一样简单吗?
<%
'##### CREATE TRIDION API OBJECTS #####
Set TDSE = Server.CreateObject("TDS.TDSE")
Call TDSE.Initialize()
'##### CALL FUNCTION - PASS IN STRUCTURE GROUP STARTING POINT #####
Call UpdateComponentTemplates(TDSE.GetObject("tcm:44-39929-4", OpenModeEditWithFallback, "tcm:0-44-1"))
Sub UpdateComponentTemplates(arg_strStructureGroup)
'##### GET ALL ITEMS WITHIN SPECIFIED STRUCTURE GROUP #####
For Each objItem In arg_strStructureGroup.GetItems
'##### IF ITEM IS A STRUCTURE GROUP #####
If TypeName(objItem) = "StructureGroup" Then
'##### CALL THE FUNCTION AGAIN, PASSING IN THE STRUCTURE GROUP #####
Call UpdateComponentTemplates(objItem)
End If
'##### IF ITEM IS A PAGE #####
If TypeName(objItem) = "Page" Then
For Each objComponent In objItem.ComponentPresentations
'##### CHECK EXISTING COMPONENT TEMPLATE & UPDATE WITH THE NEW ONE #####
If objComponent.ComponentTemplate.ID = "tcm:44-493-32" Then
'objComponent.ComponentTemplate = "tcm:44-216181-32"
'objItem.Save(True)
'##### OUTPUT STATUS MESSAGE #####
Response.Write(objItem.Title & " ......................... UPDATED<br />") & vbCrlf
Response.Flush()
End If
Next
End If
Next
End Sub
Response.Write("<p>Job Done!!!</p>") & vbCrlf
'##### CLEAN UP OBJECTS #####
Set TDSE = Nothing
%>
我知道这很可能使用的核心服务可以做到,但没有这个代码或.Net的知识,它仍然可以使用VBScript来做到这一点?
你为什么不试试呢?还是你尝试过,有问题吗? –