Expand my Community achievements bar.

Dive into Adobe Summit 2024! Explore curated list of AEM sessions & labs, register, connect with experts, ask questions, engage, and share insights. Don't miss the excitement.

Referencing the version of the soap service in the WSDL call

Avatar

Former Community Member

I'm wondering if you can call the version of the soap service in the wsdl call. That way you can have different sources using different version of the service.

Cheers,

6 Replies

Avatar

Level 10

Yes you can.

If  you take a look at the WDSL from the default endpoints:

http://localhost:8080/soap/services/etechTests/Processes/CallGuide?wsdl&lc_version=9.0.0&;version=1.0

You can see that the version is included as a query string parameter.

Jasmin

Avatar

Level 2

Hi,

Just for clarity, are you asking how to run a specific version of the same process?  It sounds like it.  If so, while what Jasmin said is correct, keep in mind that a WSDL that is returned only represents the service interface (i.e. inputs and outputs).  If your versions don't differ at the interface/endpoint the WSDL isn't going to help you with versioning.

Basically, if you change the workflow/process but not the interface/endpoint the WSDL will look the same.  To the best of my knowledge when you make a call to the service/process LC uses the definition of the call (which is based on the WSDL) to run the right process version.   So, if you have services/processes that have the same WSDL definition even though there are multiple versions of the process, which one does it run?  I believe it runs the newest version.  This will create an interesting challenge to support legacy systems.

I'm willing to admit that the above is my understanding from dealing with web services in general so maybe there is something extra to the way LC can handle calling a specific process when the interfaces are the same.  Or maybe I'm just completely wrong!

Interested in confirmation on this myself.  Thanks!

Avatar

Former Community Member

My group consumes the services in .NET by creating a web reference in the code. This generates a proxy to use the service.

In order to do what fireworks12 is saying, we need to say 'use this version of the service and not that one'.

I tried giving the version in the wsdl call in the brower, but it doesn't seem to really work. I gave it a version is that was not active, and no error was given. I assuming that it gave the most active version instead.

Help on this would be great.

Avatar

Level 2

Good example.  It's not really clear what the best practices are with respect to versioning the processes, and what possible usage scenarios are.

Should we be following SOA practices (i.e. UDDI), or is maintaining multiple active versions not advised?  Is the idea to create a new process if the workflow changes but the interface doesn't? That way your versioning the endpoints safely for legacy systems?

I'd love to clear this up.

Avatar

Former Community Member

I know that creating a new process from an existing one would work, but the maintainence for keeping track off all the version by name, would need to be tracked outside of LC.

How do forms reference version of services? I have not dont forms work, but is there a way to use different version in forms?

One would think that if LC allows for more than one active service at a time, that you could reference them.

Avatar

Level 2

Yup, tracking them 'outside' is SOAish.  Specifically something like UDDI is designed to deal with that problem.

THe only benefit that versioning of the processes provides, that I'm aware of, is between processes.  Externally, I think the expectation is that the processes are strongly related to a business workflow/form.