Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Create a reusable part called ExternalWindowsUserServices.Image Removed

 Image Added 

Adjust the reusable part definition to inherit ExternalWindowsServiceBase you defined earlier.Image Removed

 Image Added 

Now redefine the SetupUrlBuilder method to add the path component for the user services.

Recall the URL of the user services:

     http://localhost:9001/user/Image Removed

The base URL for user services' path has an additional path component 'user'. So in the SetupUrlBuilder method of the ExternalWindowsUserServices, you need to append 'user' to the URL:Mthroutine

     Mthroutine Name(SetupUrlBuilder) Options(*REDEFINE)
           * Invoke the ancestor's SetupUrlBuilder first
           #COM_ANCESTOR.SetupUrlBuilder UrlBuilder(#UrlBuilder)
           * Now this class' implementation
           #UrlBuilder.AddPathComponent( 'user' )
Endroutine     Endroutine

Let's now implement the Authenticate method in our RDMLX reusable part.

Mthroutine      Mthroutine Name(Authenticate)
           * Parameters
           Define_Map For(*INPUT) Class(#PRIM_DC.UnicodeString) Name(#Domain)
           Define_Map For(*INPUT) Class(#PRIM_DC.UnicodeString) Name(#UserName)
           Define_Map For(*INPUT) Class(#PRIM_DC.UnicodeString) Name(#Password)
           Define_Map For(*RESULT) Class(#PRIM_DC.UnicodeString) Name(#Result)
           * Variables
           Define_Com Class(#XPRIM_UriBuilder) Name(#Url)
           Define_Com Class(#XPRIM_HttpRequest) Name(#Request)
           Define_Com Class(#XPRIM_RandomAccessJsonReader) Name(#Json)
           * Setup the URL's base properties
           #COM_SELF.SetupUrlBuilder Urlbuilder(#Url)
           * Add the 'authenticate' path component
           #Url.AddPathComponent Pathcomponent('authenticate')
           * Add the form parameters
           #Url.AddQueryString( 'domain' 'syd' )
           #Url.AddQueryString( 'username' 'tony' )
           #Url.AddQueryString( 'password' 'test' )
           * Execute the HTTP request
           #Request.DoGet Url(#Url)
           * Get the authentication result
           #Json.SetSourceHttpResponse( #Request.Response )
           #Result := #Json.ReadStringWithName( 'result' )
Endroutine     Endroutine

Next: Retrieving Error Messages after Service Invocation