Service doesn't work after import the RODL from Service Builder

Hi,
I’m using Service Builder to import “ExtenderFileTransferLibrary.rodl” and save the existing RODL. Then I copy Intf.pas, Invk.pas and Impl.pas to project folder and add into the project. But it has the error from client as below. Am I missing something or procedure? If try to doing the “CodeGen”, existing “DataService” will overwrite and setting is lost. How to protect it or what is the correct steps? I’m review the Help that doesn’t mention how to keep the existing coding.

project

Sorry, I missed to upload the error
project2

It sounds like somehow your calling the wrong service — notice how it says DataService, not ExtendedFileTransferService.

Hi,
Is my steps wrong when I implement your demo “ExtendedFileTransferService”? I use the following code for testing.

ClientDataModule.ClientChannel.TargetURL := ‘http://localhost:7099/bin’;//edTargetURL.Text;
files := nil;
lvFileList.Items.BeginUpdate;
try
lvFileList.Items.Clear;
files := (ClientDataModule.RemoteService as IExtendedFileTransferService).GetFilesList;
for i := 0 to files.Count - 1 do begin
item := lvFileList.Items.Add;
item.Caption := files.Items[i].FileName;
item.SubItems.Append(IntToStr(files.Items[i].Size));
item.SubItems.Append(files.Items[i].TypeName);
end;
if lvFileList.Items.Count > 0 then begin
lvFileList.Selected := lvFileList.Items[0];
lvFileList.SetFocus;
end;
finally
if Assigned(files) then files.Free;
lvFileList.Items.EndUpdate;
end;

What services name is set for ClientDataModule.RemoteService?

Hi,
As you mention, I know I need to add 1 more TRORemoteService. I tried to add it and test it again. It has the other error. TRORemoteService can’t using the same “ClientChannel” and “Message”?

You need separate copies of those too, I believe.

Yes. You correct

1 Like

Hi,
How can I do if I want to import “ExtendedFileTransfer” demo into existing project? Could you provide the correct steps for my reference?

Hi,

if you have issue with

ClientDataModule.RemoteService as IXXXXService

I can recommend to replace this code with CoXXXXService.Create(message, channel) or with CoXXXXService.Create(url).
it is what ClientDataModule.RemoteService as IXXXXService does internally but this code is executed faster

Hi,
Should I using microservices to handle DB services, Files update services, Message notification services instead of combine all service in the same DA server?

Hi,

better to split one service to bunch of smaller by functionality.
for example sales department - one service, client support - another one.
another example - login and data services.

Also smaller services are better for serving - changing one service doesn’t have influence to others services.

Hi,
That means I create a few DA servers and application use the different services to connect all DA servers. Right? Any example for 1 client application connect to many DA servers?

Hi,

You should have personal TRORemoteService for each DA service if login service is present