How can I disable enumeration prefixing?

There's an option in the service builder, it's per enumeration and called Prefix enum values (Delphi Only), that allows you to decide if the enum will need prefixing or not.

Note: You should only disable prefixes if the enumeration's values are unique enough within Delphi.

How can I use a service that has a property named Type?

There's a menu option in Service Builder named Tools|Escape Reserved Words in Identifiers. If you select this, all reserved words (including Type) should get escaped with one underscores (_Type). This should solve the problem.

The one underscore is handled in a special way by the SOAP framework, so when building the actual SOAP request that gets sent out, they will be removed and the name in the data packet will be correct, i.e. "Type".

When creating a RODL, the code built in the Service Builder does not have the correct interface.

The code that you see in the Service Builder is for display purposes only. There's no need to copy it, since the RO preprocessor automatically renews the intf and invk files when you compile your server project.

So, basically, the only thing you need to do is start a new project and recompile it when you change the RODL using the Service Builder. If you add methods or change their signatures, Delphi will complain that the class in your impl unit doesn't implement the interface of the server correctly. At that time, you can use Ctrl+Space (a standard Delphi wizard) to add the new methods, followed by Ctrl+Shift+C (another Delphi wizard) to create implementation stubs.

Note: This was fixed in 4.0.11.

Why is not supplied the source for ROServiceBuilder and ROServiceTester?

ROServiceBuilder and ROServiceTester are built using many internal and third party libraries. Even if we did ship all the source, it would be extremely difficult for you to rebuild them successfully.