RPC HELP Tutorial Step 11

From VistApedia
Revision as of 20:39, 5 July 2015 by Kdtop (talk | contribs)
Jump to: navigation, search

RPC Broker Help Home Tutorial Home

Tutorial: Register RPCs

Up until now, it has been assumed that the only user of your application is you, and that you have programmer access and the XUPROGMODE key in the account where your RPCs are accessed.

Under any other circumstance, any RPCs that your application uses must be registered for use by your application on the host system. Registration authorizes the RPC(s) for use by your client based on user privileges.

To register the RPCs used by the tutorial application:

1. Create an option of type "B" (Broker). For example, create an option called ZxxxTT TERMTYPE for the tutorial application.

2. In the "B"-type option's RPC multiple, make one entry for each RPC your application calls. In the case of this tutorial, there should be two entries: one for ZxxxTT LIST and one for ZxxxTT RETRIEVE.

3. Follow the steps in How to Register an RPC to create an application context, using the ZxxxTT TERMTYPE option. Essentially, add a line of code that calls the CreateContext function, and terminates the application if False is returned. The code for Form1's OnCreate event should now look like:

   procedure TForm1.FormCreate(Sender: TObject);
   var 
     ServerStr: String;
     PortStr: String;
   begin
     TermTypeList:=TStringList.Create;
     // Get the correct port and server from Registry.
     if GetServerInfo(ServerStr,PortStr)<> mrCancel then begin  {connectOK begin}    
       brkrRPCBroker1.Server:=ServerStr;
       brkrRPCBroker1.ListenerPort:=StrToInt(PortStr);
       // Establish a connection to the RPC Broker server.
       try
         brkrRPCBroker1.Connected:=True;
         // Check security.
         if not brkrRPCBroker1.CreateContext('ZxxxTT TERMTYPE') then
           Application.Terminate;
       except
         On EBrokerError do begin  {error begin}          
           ShowMessage('Connection to server could not be established!');
           Application.Terminate;          
         end;  {error end}        
       end;  {try end}        
     end {connectOK end}
     else begin
       Application.Terminate;
     end;
   end;

4. Compile and run your application. Try running it both with and without the XUPROGMODE security key assigned to you. Without XUPROGMODE, you won't be able to run your application unless the ZxxxTT TERMTYPE option is assigned to your menu tree.