This does not seems to be true that they are backward compatible. New features are added with every release to the web services. For instance look at the link below
If you are using any of the new feature then it will not be backward compatible. Also check the URL for the web services for r7.0 and r8.2. I guess they are different.
You may have to tweak your code to fit this requirement.
Thanks for the quick reply to my question. I was hoping for a different answer. I don't mind tweaking my code, but I was hoping I would not have to maintain one set of code for r7 and another one for r8.2. I have customers who use both versions of Primavera, so I need to support both versions of P6.
My developer isn't very familiar with P6, so it took him a long time to build the r7 integration. Do you know if there are any companies or contractors who have P6 technical expertise who I might be able to hire to do this coding?
You could architect your application so you use a common interface that is smart enough to make use of either the v7 or v8 client stubs, which will be different.
The endpoint URLs will be different so you will need a method to handle that. You could make use of a config file to identify which one is in use or you could attempt a readDatabaseInstances message using the v7 version of the URL and if it failed use the v8 version of the URL. One of them should work if everything is OK (correct username, password, domain and port for server). Then you will know whether you are dealing with v8 or v7.
When deploying, you'll need to know which P6 Web services client to package with your application. Any decent Java developer would know what to do. In fact they could probably dynamically load the correct P6 Web Service client stub too.