Re: User-Defined Job: RQL to trigger a page to publish

292 views
Skip to first unread message

Tim D

unread,
Jul 13, 2012, 9:33:46 AM7/13/12
to reddot-c...@googlegroups.com
If a code sample isn't in the RQL Manual (available on KC) this may help. You can think of RQL like a macro programming language it can replicate things users would do. If you want it to publish a page, and you know the page GUID, you can find the page in SmartTree. Then select to publish the page. In the common/rdcms.log will be the RQL for the request and response from the server for that action.

Some actions may be more than one call. You can test these with RQL Console ( http://www.solutionexchange.info/RQLConsole.htm ) without writing any code.

Best,
Tim

On Thursday, July 12, 2012 1:51:19 PM UTC-4, Bonnie Cohen wrote:
For the first time, I am resorting to trying RQL. I have a page, which references a container on another page. I want the 1st page to automatically publish when a new item is added the container of the 2nd page. Checking publish Related Pages is not working.

Does anyone have an example of RQL to publish a specific page?

Thank you for your assistance.

Troy Landers

unread,
Jul 13, 2012, 12:40:13 PM7/13/12
to reddot-c...@googlegroups.com
The RQL manual is a little hard to follow on this, so here's some example RQL for publishing a page. As has already been suggested, publishing a few pages and looking at the RQL in the logs will help you understand all that is going on when publishing though.

  <PROJECT sessionkey="SESSION_KEY" guid="PROJECT_GUID">
    <PAGE guid="PAGE_GUID">
      <EXPORTJOB action="save" email="PUBLISH_USER_GUID" toppriority="0" generatenextpages="0" generaterelativepages="0" reddotserver="#SESSION_KEY" application="" generatedate="" startgenerationat="">
        <LANGUAGEVARIANTS action="checkassigning">
          <LANGUAGEVARIANT guid="LANG_VAR_GUID_1" checked="0"/>
          <LANGUAGEVARIANT guid="LANG_VAR_GUID_2" checked="1"/>
          <LANGUAGEVARIANT guid="LANG_VAR_GUID_3" checked="0"/>
        </LANGUAGEVARIANTS>
        <PROJECTVARIANTS action="checkassigning">
          <PROJECTVARIANT guid="PROJECT_VAR_GUID_1" checked="1"/>
          <PROJECTVARIANT guid="PROJECT_VAR_GUID_2" checked="0"/>
          <PROJECTVARIANT guid="PROJECT_VAR_GUID_3" checked="0"/>
          <PROJECTVARIANT guid="PROJECT_VAR_GUID_4" checked="1"/>
        </PROJECTVARIANTS>
      </EXPORTJOB>
    </PAGE>
  </PROJECT>

Set generatenextpages to 1 to publish following pages.
Set generaterelativepages to 1 to publish related pages.

Hope this solves your problem!
Troy

Jian Huang

unread,
Jul 16, 2012, 8:58:48 PM7/16/12
to reddot-c...@googlegroups.com, reddot-c...@googlegroups.com
Yes, if your login is set to have more than 1 session.  If default, no

Sent from my iPhone

On Jul 16, 2012, at 6:44 PM, Bonnie Cohen <freshw...@gmail.com> wrote:

OK... got an update. I had to clear out our log files via the Server Manager. It frozen my browser trying to get to the 1 file I needed. So, I was able to see the RQL for the force publish I did on the page I want. I got all the session keys, and the project GUID, which was different that the one I obtained via the project SmartTree.

Anyway, I'm still getting a login error. If I'm using my log in to create this job, can I actually be logged in when it needs to run? Or, do I need to be logged out for this to run successfully?

Thank you.

On Monday, July 16, 2012 12:40:53 PM UTC-7, Bonnie Cohen wrote:
Troy, thank you for your help. I was actually able to find some code like what you shared, but I'm getting an error. Here's what I've done:

* In the Server Manager, I created a User-Defined Job that's Event Controlled.
* I selected RQL command and entered the code below, entering all my GUIDs. (My user name & password checked "OK!")
* To get the Session Key for the Project node, I created a Info element, type Session Key, in a template and previewed the page to see the Session Key. (Not sure if that's the correct way?)
* I then went back into my project and created a workflow, and added my User-Defined Job as a reaction.

I ran a test of all this and received an error = "Please login"
Is this because of an incorrect Session Key? Also, I'm not sure what do to with "reddotserver="#SESSION_KEY"". Does the same Session Key go in there, as in the Project Node?

Thank you again for your help.

--
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/-/EQpXj3tZdzAJ.
To post to this group, send email to reddot-c...@googlegroups.com.
To unsubscribe from this group, send email to reddot-cms-use...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/reddot-cms-users?hl=en.

Jian Huang

unread,
Jul 17, 2012, 2:01:13 PM7/17/12
to reddot-c...@googlegroups.com
Hi Bonnie,

Can you paste in the RQL you are using?  I can double check the syntax for you.

Best,

-Jian

On Tuesday, July 17, 2012 1:19:31 PM UTC-4, Bonnie Cohen wrote:
I thought that might have been the case, so I tried using an Admin login to set up the User-Defined Job. (It checked "OK!") I still received the "Please login" error.

Is there anything else that can cause this? RedDot... I mean Open Text, is not responding to my support emails.

Thank you.


On Monday, July 16, 2012 5:58:48 PM UTC-7, Jian Huang wrote:
Yes, if your login is set to have more than 1 session.  If default, no

Sent from my iPhone
To post to this group, send email to reddot-cms-users@googlegroups.com.
To unsubscribe from this group, send email to reddot-cms-users+unsubscribe@googlegroups.com.

Bonnie Cohen

unread,
Jul 17, 2012, 2:34:03 PM7/17/12
to reddot-c...@googlegroups.com

<IODATA>

   <PROJECT guid="PROJECT_GUID" sessionkey="SESSION_KEY">

      <PAGE guid="PAGE_GUID">

        <EXPORTJOB action="save" email=" " toppriority="0" generatenextpages="1" generaterelativepages="0" reddotserver="#SESSION_KEY" application="" generatedate="" startgenerationat="">

          <LANGUAGEVARIANTS action="checkassigning">

              <LANGUAGEVARIANT guid="LANG_VAR_GUID" checked="1" />

          </LANGUAGEVARIANTS>

          <PROJECTVARIANTS action="checkassigning">

              <PROJECTVARIANT guid="PROJECT_VAR_GUID" checked="1" />

          </PROJECTVARIANTS>

       </EXPORTJOB>

     </PAGE>

  </PROJECT>

</IODATA>

I got the GUIDs and Session Key from the Common\RDCMS.log file after I published out the page I want.

Jian Huang

unread,
Jul 17, 2012, 3:43:29 PM7/17/12
to reddot-c...@googlegroups.com
Hi Bonnie,

The variable such as PROJECT_GUID, SESSION_KEY, etc are in the wrong format.

They should be [!guid_project], [!key]

For more information, you can check out this page within the RQL manual

RQL/ENG/684.htm

Best,

-Jian

Bonnie Cohen

unread,
Jul 17, 2012, 6:50:37 PM7/17/12
to reddot-c...@googlegroups.com
Thank you for your assistance. I downloaded the RQL manual and referred to that page. Using bogus numbers, this is what I've tried:

<PROJECT guid="[!29XXXXXXF403984E7XXXX861B4B!]" sessionkey="[!29XXXXXXF403984E7XXXX861B4B!]">

<PROJECT guid="29XXXXXXF403984E7XXXX861B4B" sessionkey="29XXXXXXF403984E7XXXX861B4B">

<PROJECT guid="[!29XXXXXXF403984E7XXXX861B4B]" sessionkey="[!29XXXXXXF403984E7XXXX861B4B]">

No matter what, I always get a login error... and I've checked the user credentials numerous times. It checks "OK!"

Do you know if there's something that needs to be changed on the server to allow user-defined jobs to run?

Jian Huang

unread,
Jul 17, 2012, 7:00:59 PM7/17/12
to reddot-c...@googlegroups.com
Hi Bonnie,

You are missing data with your IDATA tag.

<IODATA loginguid="[!guid_login]" session="[!key!]">
.
.
.
</IODATA>

Also, you don't need [! ] surrounding your user supplied guid.

Lastly, ensure the user account you are using is assigned to the project, and use it to login into the project and then log out.

I would suggest first testing out the RQL using RQLConsole within the project first (don't need IODATA tag as it is autoamtically supplied by the plugin).

-Jian

Bonnie Cohen

unread,
Jul 18, 2012, 12:25:35 PM7/18/12
to reddot-c...@googlegroups.com
Hi Jian. I downloaded and had our sys admins install the plugin for me. (Us developers are not allowed access to the servers.) Awesome!  I was able to test my RQL and get it working. I clicked the "i" information icon and was able to get the correct session key... which was seems to have been the issue. By the way - " You are missing data with your IDATA tag." I'm using the User-Defined job to run this RQL so, with hainv to enter the login credentials there, I read that I don't need to enter any of the IODATA.

So, now when I tried it today, that session key didn't work. I received the "Please login" error, HOWEVER... it published! It took a little longer, but it published the page I wanted. I checked the session key via the console today, and tried the current one. Of course - no error. 

So, my question is... how do I code the session key so it's dynamic?

Thank you for all your help.

Jian Huang

unread,
Jul 18, 2012, 2:18:25 PM7/18/12
to reddot-c...@googlegroups.com
Hi Bonnie,

When running the RQL from user-defined job, you need


<IODATA loginguid="[!guid_login]" session="[!key!]">
.
.
.
</IODATA>

just leave [!guid_login] and [!key] as it is because when the user defined job runs with the supplied user account, these variables will get replaced with actual guids.


You may ask why you don't have to include <IODATA> in RQLConsole.  Well, because I use RQLConsole a lot and I hate to type in IODATA a lot, so I have the plugin to add it in for me automatically.  There is an option in RQL manage for it not to automatically add it in.

Best,

-Jian
Message has been deleted

Bonnie Cohen

unread,
Jul 18, 2012, 2:39:16 PM7/18/12
to reddot-c...@googlegroups.com
This is the exact code I have in my user-defined job, with successfully authenticated username and password:

<IODATA loginguid="[!guid_login]" session="[!key!]">
<PROJECT guid="29BAB7B9616F403984E75B8986751B4B" sessionkey="">
<PAGE guid="952FCC4EB60747E898825B6DB8848370">
<EXPORTJOB action="save" email="" toppriority="0" generatenextpages="1" generaterelativepages="0" reddotserver="" application="" generatedate="" startgenerationat="">
<LANGUAGEVARIANTS action="checkassigning">
<LANGUAGEVARIANT guid="B4F85DFF85A849778D39A452F783FA35" checked="1"/>
</LANGUAGEVARIANTS>
<PROJECTVARIANTS action="checkassigning">
<PROJECTVARIANT guid="3527E359BBB44C69B959368DDE7F36F5" checked="1"/>
<PROJECTVARIANT guid="AFF9FD1C578D45D7AD83C868CA2CD710" checked="0"/>
</PROJECTVARIANTS>
</EXPORTJOB>
</PAGE>
</PROJECT>
</IODATA>

I re-tried it with entering sessionkey="[!key!]" in the PROJECT node. Both times I get a login error.

I tried the above code in the RQLConsole and unchecked "Automatically pad RQL with <IODATA>". I get the login error.

In the console, I remove the IODATA node and in the PROJECT node have sessionkey="" (empty quotes) -- this successfully runs and publishes my page.

Jian Huang

unread,
Jul 18, 2012, 4:48:41 PM7/18/12
to reddot-c...@googlegroups.com
Hi Bonnie,

In the user-defined job try to include this before your RQL

<IODATA loginguid="[!guid_login!]"><ADMINISTRATION action="validate" guid="[!guid_login!]"> <PROJECT guid="###project guid###" /> </ADMINISTRATION> </IODATA>

replace ###project guid### with actual project guid.

Bonnie Cohen

unread,
Jul 18, 2012, 5:23:59 PM7/18/12
to reddot-c...@googlegroups.com
Holy Moly! You are a life saver! It worked!!!!!! I have been in contact with someone at OpenText Support and he has not been able to help me. He started resorting to asking me to try things I had already told him I tried... like "CHECK the supplied user name credentials". 

Anyway, thank you very much again! You are awesome!!!

Best Regards,
Bonnie
Reply all
Reply to author
Forward
0 new messages