Hi Neil, I think/hope, this might help. Just save the code as a file with the name "JobDeleteKeywords.asp" under \program files\reddot\cms\asp\plugins\DeleteKeywords\. Then create a user defined job and select that you wish to call a url. If you place the asp file under the mentioned path then you could enter "http://localhost/cms/plugins/DeleteKeywords/DeleteKeywords.asp" as the url of the job. After that you should modify the constants mentioned in the file. Whenever you need to perform something similar you could use the file. Just delete the page search part and the part where the keywords are deleted and put in other stuff that you'd like to execute.
If the script doesn't work then just drop me a line and I'll try to help. Best regards, Manuel P.S.: I tested the script with WSM 10.1 and it worked. If you wish to use it with V11 then you will have to modify it slightly. <%@ LANGUAGE="VBSCRIPT" %> <% Option explicit %> <% Server.ScriptTimeout = 36000 response.buffer = true '****************************************************************** '** All rights reserved. ** '** Developer: M.Schnitger ([email protected]) ** '** Company: OpenText Software GmbH, Munich, Germany ** '** Date: 12/2012 ** '** Project: "general" ** '** Modulname: DeleteKeywords.asp ** '** WSM-Version: 10.x ** '** Release: 1.0 ** '** Copyright (c) OpenText Corporation 2012 ** '** Don't try this at home ;-) ** '****************************************************************** %> <font face="courier" size="2"> <% '*************************** '* declare constants '*************************** const sName = "admin2" const sPassword = "admin2" const sProjectGuid = "A02EA0F99D834FC9A481E625518C9AF3" const sKeywordGuid = "B4580DCBBB9F4DA9BB485B33D67144D4" '************************************** '* log on '************************************** dim sLoginGuid sLoginGuid = Login(sName,sPassword) response.write "<br>LoginGuid: " & sLoginGuid & "<br>" session("LoginGuid") = sLoginGuid '************************************** '* validate '************************************** dim sSessionKey sSessionKey = Validate(sLoginGuid,sProjectGuid) response.write "<br>Sessionkey: " & sSessionKey & "<br>" session("SessionKey") = sSessionKey '************************************** '* search pages based on a specific keyword '************************************** dim aPageList, a aPagelist = PageSearch (sKeywordGuid) for a = 1 to ubound(aPageList) response.write aPageList(a,2) & "<br>" '************************************** '* search pages based on a specific keyword '************************************** call DeleteKeywords(aPageList(a,0),sKeywordGuid) next '************************************** '* log off '************************************** Logout sLoginGuid '********************************************************************************************************************************************************** '* RQL Functions ---RQL Functions ---RQL Functions ---RQL Functions ---RQL Functions ---RQL Functions ---RQL Functions ---RQL Functions ---RQL Functions ---RQL Functions --- '********************************************************************************************************************************************************** '************************************************************************* '* search for all pages having a specific keyword '************************************************************************* function DeleteKeywords(sPageGuid,sKeywordGuid) dim RQLObject,RQLStatement,RQLRequest,sError set RQLObject = Server.CreateObject("RDCMSAsp.RdPageData") RQLObject.XmlServerClassName = XmlServerClassName const XmlServerClassName = "RDCMSServer.XmlServer" const DhtmlClassName = "RDCMSAsp.RdPageData" RQLStatement = "<IODATA loginguid=""" & sLoginGuid & """ sessionkey=""" & sLoginGuid & """>" & _ "<PROJECT>" & _ "<PAGE guid=""" & sPageGuid & """ action=""assign"">" & _ "<KEYWORDS>" & _ "<KEYWORD guid=""" & sKeywordGuid & """ delete=""1"" changed=""1""/>" & _ "</KEYWORDS>" & _ "</PAGE>" & _ "</PROJECT>" & _ "</IODATA>" response.write server.htmlencode(RQLStatement) RQLRequest = RQLObject.ServerExecuteXml(RQLStatement, sError) if sError>"" then Response.write "Delete keyword. An error has occured:</BR></BR>"+sError end function '******************************* '******************************* '************************************************************************* '* search for all pages having a specific keyword '************************************************************************* function PageSearch (sKeywordGuid) dim XMLDomSearchResult, RQLObject, RqlStatement,RQLRequest,sError,XMLDomSearchPages ,i set XMLDomSearchResult = Server.CreateObject("RDCMSAspObj.RdObject") set RQLObject = Server.CreateObject("RDCMSAsp.RdPageData") RQLObject.XmlServerClassName = XmlServerClassName const XmlServerClassName = "RDCMSServer.XmlServer" const DhtmlClassName = "RDCMSAsp.RdPageData" RqlStatement = "<IODATA sessionkey=""" & sSessionKey & """>"&_ "<PAGE action=""xsearch"">"&_ "<SEARCHITEMS>"&_ "<SEARCHITEM key=""keyword"" value=""" & sKeywordGuid & """ operator=""eq"" />"&_ "</SEARCHITEMS>"&_ "</PAGE>"&_ "</IODATA>" RQLRequest = RQLObject.ServerExecuteXml(RQLStatement, sError) if sError>"" then Response.write "List pages. An error has occured:</BR></BR>"+sError Call XMLDomSearchResult.LoadXML (RQLRequest) Set XMLDomSearchPages = XMLDomSearchResult.ObjectByQuery ("//PAGES") redim aPages(XMLDomSearchPages.objects.count,2) for i = 1 to XMLDomSearchPages.objects.count aPages(i,0) = XMLDomSearchPages.objects(i)("guid") aPages(i,1) = XMLDomSearchPages.objects(i)("id") aPages(i,2) = XMLDomSearchPages.objects(i)("headline") next PageSearch = aPages end function '******************************* '******************************* '********************************************************************************* '* Login '********************************************************************************* function Login(sName,sPassword) '*************************** '* declare variables '*************************** dim XmlDom dim RQLObject dim RQLStatement dim RQLRequest dim sError dim sLoginGuid '*************************** '* initialize objects '*************************** set XmlDom = Server.CreateObject("RDCMSAspObj.RdObject") set RQLObject = Server.CreateObject("RDCMSAsp.RdPageData") RQLObject.XmlServerClassName = XmlServerClassName const XmlServerClassName = "RDCMSServer.XmlServer" const DhtmlClassName = "RDCMSAsp.RdPageData" RQLStatement = "<IODATA>" & _ "<ADMINISTRATION action=""login"" name=""" & sName & """ password=""" & sPassword & """/>" & _ "</IODATA>" RQLRequest = RQLObject.ServerExecuteXml(RQLStatement, sError) if sError>"" then Response.write "Login Error:</BR></BR>"+sError XMLDOM.LoadXml cstr(RQLRequest) sLoginGuid = XMLDOM.objects("LOGIN")("guid") Login = sLoginGuid end function '********** '********** '********************************************************************************* '* Validate '********************************************************************************* function Validate(sLoginGuid,sProjectGuid) '*************************** '* declare variables '*************************** dim XmlDom dim RQLObject dim RQLStatement dim RQLRequest dim sError dim sSessionKey '*************************** '* initialize objects '*************************** set XmlDom = Server.CreateObject("RDCMSAspObj.RdObject") set RQLObject = Server.CreateObject("RDCMSAsp.RdPageData") RQLObject.XmlServerClassName = XmlServerClassName const XmlServerClassName = "RDCMSServer.XmlServer" const DhtmlClassName = "RDCMSAsp.RdPageData" RQLStatement = "<IODATA loginguid=""" & sLoginGuid & """>"&_ "<ADMINISTRATION action=""validate"" guid=""" & sLoginGuid & """ checkonly=""1"" useragent=""script"" >"&_ "<PROJECT guid=""" & sProjectGuid & """ />"&_ "</ADMINISTRATION>"&_ "</IODATA>" RQLRequest = RQLObject.ServerExecuteXml(RQLStatement, sError) if sError>"" then Response.write "An error has occured:</BR></BR>"+sError XMLDOM.LoadXml cstr(RQLRequest) sSessionKey=XMLDOM.objects("SERVER")("key") Validate = sSessionKey end function '********** '********** '********************************************************************************* '* Logout '********************************************************************************* function Logout(sLoginGuid) '*************************** '* declare variables '*************************** dim XmlDom dim RQLObject dim RQLStatement dim RQLRequest dim sError '*************************** '* initialize objects '*************************** set XmlDom = Server.CreateObject("RDCMSAspObj.RdObject") set RQLObject = Server.CreateObject("RDCMSAsp.RdPageData") RQLObject.XmlServerClassName = XmlServerClassName const XmlServerClassName = "RDCMSServer.XmlServer" const DhtmlClassName = "RDCMSAsp.RdPageData" RQLStatement = "<IODATA loginguid=""" & sLoginGuid & """>"&_ "<ADMINISTRATION>"&_ "<LOGOUT guid=""" & sLoginGUID & """ />"&_ "</ADMINISTRATION>"&_ "</IODATA>" RQLRequest = RQLObject.ServerExecuteXml(RQLStatement, sError) if sError>"" then Response.write "Logout Error"+sError end function '********** '********** %> On Monday, December 17, 2012 4:56:11 PM UTC+1, Neil Fegen wrote: > > Hi guys > > I'd like to call a user-defined job to look for pages of template X and > remove keyword Y if the page was created between certain dates. > > I have the following RQL working in a SmartEdit page - what changes do I > need to make to call it as a user-defined job .asp file? I presume changing > the login guid/session key calls (to what?) but what else? > > <% > set objIO = Server.CreateObject("RDCMSAsp.RDPageData") > objIO.XmlServerClassName = "RDCMSServer.XmlServer" > set XMLDomPage = Server.CreateObject("Microsoft.XMLDOM") > > xmlData = "<IODATA loginguid=""<%inf_loginGuid%>"" sessionkey=""< > %inf_SessionKey%>"">" & _ > "<PAGE action=""search"" templateguid=""30422810663E41BFB6CF5C03CBC8B6F4"" > projectguid=""<%inf_projectGuid%>"" createdatefrom=""40544"" > createdateto=""40908"" keyword=""2011"" flags=""1"" maxrecords=""200""/>" & > _ > "</IODATA>" > xmlData = objIO.ServerExecuteXml(xmlData,sError) > if sError>"" then Response.write "An error has occurred with listing the > pages:<br />" & sError & "<br /><br />" End if > Call XMLDomPage.LoadXML(xmlData) > set pageData = XMLDomPage.getElementsByTagName("PAGE") > > For n = 0 to (pageData.Length-1) > xmlData = "<IODATA loginguid=""<%inf_loginGuid%>"" sessionkey=""< > %inf_SessionKey%>"">" & _ > "<PROJECT>" & _ > "<PAGE guid=""" & pGuid & """ action=""assign"">" & _ > "<KEYWORDS>" & _ > "<KEYWORD guid=""8F303AE60F0F41659F58DF56B8809117"" delete=""1"" > changed=""1""/>" & _ > "</KEYWORDS>" & _ > "</PAGE>" & _ > "</PROJECT>" & _ > "</IODATA>" > xmlData = objIO.ServerExecuteXml(xmlData,sError) > if sError>"" then Response.write "An error has occurred with removing the > keywords:<br />" & sError & "<br /><br />" End if > Call XMLDomPage.LoadXML(xmlData) > Next > > set XMLDomPage = nothing > set objIO = nothing > set xmlData = nothing > %> > > Many thanks > > Neil > -- You received this message because you are subscribed to the Google Groups "RedDot CMS Users" group. To view this discussion on the web visit https://groups.google.com/d/msg/reddot-cms-users/-/DaebDtKLh7sJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/reddot-cms-users?hl=en.
