Excellant, thank you very much, I will give it a go tommorrow and report back.
On Dec 16, 4:51 pm, "Killingsworth, Chad A" <chadkillingswo...@missouristate.edu> wrote: > Here's the full code for the Web Service (using .NET Framework 2.0): > > RDCMSXMLServer.asmx > > <%@ WebService Language="C#" Class="RDCMSXMLServer" %> > using System; > using System.Web; > using System.Web.Services; > using System.Web.Services.Protocols; > > [WebService(Namespace = "http://your.site.com/path/")] > //[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] > public class RDCMSXMLServer : System.Web.Services.WebService > { > [WebMethod] > public string Execute(string RQLQuery, ref string RQLError) > { > Type RdXmlServerType = > Type.GetTypeFromProgID("RDCMSServer.XmlServer"); > object RdXmlServer = Activator.CreateInstance(RdXmlServerType); > > object[] Arguments = { RQLQuery, RQLError }; > > return RdXmlServerType.InvokeMember("Execute", > System.Reflection.BindingFlags.InvokeMethod, null, RdXmlServer, > Arguments).ToString(); > } > > } > > Chad Killingsworth > Assistant Director of Web & New Media > Missouri State University > > > > -----Original Message----- > From: reddot-cms-users@googlegroups.com > [mailto:reddot-cms-us...@googlegroups.com] On Behalf Of TonyGayter > Sent: Wednesday, December 16, 2009 9:46 AM > To: RedDot CMS Users > Subject: Re: RQL Commands > > Im glad its not just me, surely Open Text have had numerous complaints > about this issue. Did your webservice interface with the dll I > presume, this might be a route I will have to take if no other option > is available. > > On Dec 16, 3:12 pm, "Killingsworth, Chad A" > <chadkillingswo...@missouristate.edu> wrote: > > To deal with this problem, I wrote my own version of the web service which > > is just a wrapper for the COM object. I had problems with getting all of > > the necessary information from the web service as well. Of course the last > > time I checked this was at version 7.1. > > > Chad Killingsworth > > Assistant Director of Web & New Media > > Missouri State University > > > -----Original Message----- > > From: reddot-cms-users@googlegroups.com > > [mailto:reddot-cms-us...@googlegroups.com] On Behalf Of TonyGayter > > Sent: Wednesday, December 16, 2009 8:39 AM > > To: RedDot CMS Users > > Subject: Re: RQL Commands > > > Yeah, both the session and rql services just send back the 101 > > error :'( > > > All Im asking reddot to do is what it says on the tin... I think Im > > probobly asking to much lol > > > On Dec 16, 2:34 pm, Kenley Capps <kenleyca...@gmail.com> wrote: > > > Have you tried simply sending the equivalent RQL over the webservices? The > > > RQL response sends back quite a bit of info. > > > > On Wed, Dec 16, 2009 at 8:24 AM, TonyGayter > > > <tonygay...@googlemail.com>wrote: > > > > > Thanks for the reply, This does seem to be the simplest solution (kind > > > > of) however it assumes the ability to have a free admin license to log > > > > in with. I cant guarantee the availability of multiple admin licenses > > > > to be able to do this (each session takes up 1). For example, if a > > > > client has purchased 2 admin licenses and one is locked to my user, > > > > and another to the admin of the site. How would I be able to log my > > > > user off and back on (or indeed just get the login id ans session id)? > > > > Using this method I would be stuck. > > > > > In the manual it says if the user account is locked out it should send > > > > the users details (login guid etc) in the response, which it does in > > > > certain circumstances (I can see the response I want in the common > > > > log). If this response was return correctly via web services there > > > > would be no problem at all. > > > > > It seems the web services have just been thrown together with no > > > > regards to what should actually be returned!! I cant believe this > > > > fundamental function does not work correctly. Its driving me crazy. > > > > > On Dec 16, 2:05 pm, Kenley Capps <kenleyca...@gmail.com> wrote: > > > > > Ack! Terribly sorry for the double post! This google group has been > > > > acting > > > > > very strangely for me, and Thunderbird decided to go ahead and send my > > > > email > > > > > out instead of saving as a draft! :)On Wed, Dec 16, 2009 at 8:02 AM, > > > > Kenley Capps <kenleyca...@gmail.com> wrote: > > > > > > Finally! My messages are going through! OK. > > > > > > > First off, let me preface that I currently use the webservices (for > > > > > > flexibility.) If you're using a page in SmartEdit or just a > > > > > > standalone > > > > page > > > > > > on the server, you can still make use of RQL to achieve the same > > > > > > thing. > > > > > > > LOGGING IN (WEBSERVICES) > > > > > > The guid is passed back as the response from the webservice, if > > > > successful. > > > > > > I'll use a .NET example (assuming you've added the webservice to > > > > > > your > > > > > > solution): > > > > > > > if (service == null) > > > > > > { > > > > > > service = new > > > > > > YourCompany.RedDot.CMS.RQL.SessionService.SessionService(); > > > > > > service.Timeout = SERVICE_TIMEOUT; > > > > > > } > > > > > > > guid = service.Login(username, password); > > > > > > Console.WriteLine("Successful login with loginid > > > > > > {0}", > > > > > > guid); > > > > > > > LOGGING IN (RQL) > > > > > > The guid is passed back along with some information when you send > > > > > > the > > > > > > proper request: > > > > > > > Login Request: > > > > > > <IODATA> > > > > > > <ADMINISTRATION action="*login*" name="*admin*" > > > > password="*password*"/> > > > > > > </IODATA> > > > > > > > Example response: > > > > > > <IODATA> > > > > > > <LOGIN guid="*[!guid_login!]*" server="*MyServer*" > > > > > > serverguid="*[!guid_server!]*" userkey="*[!key_user!]*" > > > > > > usertoken="*[!key_token!]*"/> > > > > > > <USER guid="*[!guid_user!]*" name="*admin*" fullname="*Admin*" > > > > id="*1*" > > > > > > flags1="*0*" flags2="*32768*" dialoglanguageid="*ENU*" > > > > > > dialogtextdirection="" languageid="*ENU*" showstarthelp="*0*" > > > > lcid="* > > > > > > 1031*" > > > > > > navigationtype="*0*" preferrededitor="*0*" > > > > > > invertdirectedit="*0*"> > > > > > > <MODULES> > > > > > > <MODULE guid="*[!guid_module!]*" id="*cms*" name="*0*"> > > > > > > <MODULES> > > > > > > <MODULE guid="*[!guid_module!]*" id="*smarttree*" > > > > name="*13769* > > > > > > "/> > > > > > > ... > > > > > > </MODULES> > > > > > > </MODULE> > > > > > > <MODULE guid="*[!guid_module!]*" id="*ccs*" name="*0*" > > > > repository="* > > > > > > xcms1*"> > > > > > > <MODULES> > > > > > > <MODULE guid="*[!guid_module!]*" id="*dms*" > > > > > > name="*13774*"/> > > > > > > ... > > > > > > </MODULES> > > > > > > </MODULE> > > > > > > ... > > > > > > </MODULES> > > > > > > <LASTMODULES> > > > > > > <MODULE project="*[!guid_project!]*" projectname="*Project > > > > > > name*" > > > > > > id="*smarttree*" guid="*[!guid_module!]*" > > > > > > lastid="*smarttree*" > > > > > > lastguid="*[!guid_!]*" last="*0*"/> > > > > > > ... > > > > > > </LASTMODULES> > > > > > > </USER> > > > > > > </IODATA> > > > > > > You're looking specifically for the value of guid attribute from > > > > > > that > > > > > > response. > > > > > > > OK. We've got our login guid. However, if our app ever crashes or > > > > leaves a > > > > > > session hanging, then we need to be able to log that stale session > > > > > > off! > > > > > > Unfortunately the only way to accomplish this is to increase the > > > > > > number > > > > of > > > > > > allowed concurrent sessions to 2 or more for the "RQL" user, so it > > > > > > can > > > > login > > > > > > and logoff the other concurrent sessions. Otherwise, you'll just > > > > receive an > > > > > > error back (from the webservices it says RDE101 if I recall > > > > > > correctly.) > > > > > > > So in order to do this, we have to perform the following (after > > > > > > logging > > > > > > in): > > > > > > 1. Get a list of all online users > > > > > > 2. Loop through and find the one that has the same username as you > > > > > > 3. Log that session off > > > > > > > STEP 1: List all online users: > > > > > > <IODATA loginguid="*[!guid_login!]*"> > > > > > > <ADMINISTRATION> > > > > > > <USERS action="*connectlist*"/> > > > > > > </ADMINISTRATION> > > > > > > </IODATA> > > > > > > > Example response: > > > > > > <IODATA> > > > > > > <USERS> > > > > > > <USER guid="*[!guid_user!]*" id="*1*" name="*name*" > > > > > > fullname="*First name Last name*" flags1="*0*" flags2="*0*" > > > > > > email="*n...@company.com*" maxlevel="*1*" > > > > dialoglanguageid="*ENU*" > > > > > > loginguid="*[!guid_login!]*" logindate="*37551,3837384259*"/> > > > > > > moduleid="*servermanager*" intern="*0*" > > > > > > moduledescription="*Server Manager*" > > > > > > projectname="*Up-And-Away*" > > > > > > projectguid="*[!guid_project!]*"/> > > > > > > ... > > > > > > </USERS> > > > > > > </IODATA> > > > > > > > Note that you can specify a specific userguid element on the > > > > > > request to > > > > > > list all online users to retrieve only the concurrent sessions for > > > > > > that > > > > > > user. However, since we don't necessarily have the guid of the > > > > > > current > > > > user > > > > > > (if we used the webservices), then we'll just list all online users > > > > > > and > > > > look > > > > > > for our specific ones. > > > > > > > STEP 2: Loop through all users in that result set, and find the one > > > > that > > > > > > matches your username > > > > > > I use the following process (actual snippet from a .NET wrapper I've > > > > worked > > > > > > on): > > > > > > > // In the Session class > > > > > > List<User> users = User.ListOnline(); > > > > > > foreach(User sessionUser in users) > > > > > > { > > > > > > if (sessionUser.Name == username) > > > > > > { > > > > > > > > ... > > read more »- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "RedDot CMS Users" group. To post to this group, send email to reddot-cms-us...@googlegroups.com. To unsubscribe from this group, send email to reddot-cms-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/reddot-cms-users?hl=en.