我有15个单独的.cfm页面,这些页面在不同的夜间进程中安排。所有这些我想放在一个页面中,并包括所有其他页面一个接一个地运行。我尝试这样做,在ScheduleTask.cfm中我已经包括:
<cfinclude template="page1.cfm">
<cfinclude template="page2.cfm">
<cfinclude template="page3.cfm">
我试图把我的浏览器url放入ScheduleTask.cfm,但我得到了错误:
Detail The routine standardSelect has been declared twice in different templates.
Message Routines cannot be declared more than once.
我的每个包含都会从cfquery
生成excel页面。我是否应该试着围绕包括阻止我应该检查什么?
我也厌倦了使用struct和循环来解决这个问题:
<cftry>
<cfset rptCFMFiles = {
file1 = "page1.cfm",
file2 = "page2.cfm",
file3 = "page3.cfm",
}>
<cfloop collection="#rptCFMFiles#" item="key">
<cfoutput>
<cfinclude template="#rptCFMFiles[key]#">
</cfoutput>
</cfloop>
<cfcatch>
<cfdump var="#cfcatch#">
</cfcatch>
</cftry>
再次显示相同的错误:
Detail: The routine standardSelect has been declared twice in different templates.
Message: Routines cannot be declared more than once.
如果有人可以提供帮助,请告诉我。
答案 0 :(得分:2)
您的具体错误是至少有两个包含的文件具有或包含带有名为standardSelect
的函数的.cfm页面。你必须找到所有这些功能并做一些事情。你做什么取决于你发现的细节。
你的一般想法是我们实际做的事情。我们有一些您可能没有想过的细节。我们在<cfinclude
上展开了自定义标记。它不仅可以尝试/捕获,您可以想到它,但它会记录结果。如果作业成功执行,则会记录该作业。如果发生错误,则会记录详细信息。
但等等,还有更多。我们有其他预定的工作来读取这些日志。如果出现问题,会向可以对此采取行动的人员发送报告。事实上,今天早上我收到了其中一份报告。
答案 1 :(得分:1)
一种简单的方法是在一个cfm中多次使用cfhttp来调用每个URL。连载。你安排了一个运行所有cfhttp的cfm。